namespace VECV_WebApi.Models.Ticket
{
#region Namespaces
using DBHelper;
using DocumentFormat.OpenXml.ExtendedProperties;
using LoggingHelper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Npgsql;
using Org.BouncyCastle.Utilities.Collections;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Entity.Infrastructure;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Script.Serialization;
using System.Xml;
using System.Xml.Linq;
using VECV_WebApi.Common;
using VECV_WebApi.Models.Authorization;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.ServiceEngineer;
using VECV_WebApi.Models.Tracking;
using VECV_WebApi.Models.Util;
using VECV_WebApi.Models.Vehicle;
#endregion
#region Repository Class
///
/// This class contain method for ticket manipulation
///
public class TicketRepository
{
#region Global Variables
///
/// making object of LoggingUtility class available to this class
///
LoggingUtility objLog = new LoggingUtility();
PushData UdanPushData = new PushData();
///
/// making the data-log file path available to this class
///
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
///
/// making data log file path available to this class
///
string logtf = (ConfigurationManager.AppSettings["Log"]);
///
/// making error log file path available to this class
///
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
///
/// making the Database connection string available to this class
///
private string _connStr;
///
/// making Customer Repository object available to this class
///
CustomerVehicleModel objCustomerVehicleModel;
///
/// making Authentication Repository object available to this class
///
AuthenticationRepository objAuthorization;
#endregion
#region Contructors
///
/// Default constructor intialize connection string of tracking database
///
public TicketRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
///
///CMS customer login
///
///
///
public List GetCustomerOpenadnCloseTicketDetail(string ticketAlias)
{
List objCustDetail = new List();
try
{
string ticketId = "";
string ticketType = "";
DataSet ds = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inticketid_alias", ticketAlias);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticketid_by_ticketalias"], nSqlParam);
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
ticketId = ds.Tables[0].Rows[0][0].ToString();
ticketType = ds.Tables[0].Rows[0][1].ToString();
nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketId);
if (ticketType == "open")
{
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam);
}
else
{
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_ticket_full_details_ticket_wise"], nSqlParam);
}
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
objCustDetail = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketFullDetailTicketWise
{
AssignedTo = s.Field("assigned_to"),
BreakdownLocation = s.Field("breakdown_location"),
ChassisNo = s.Field("chassis_no"),
CustomerContactNo = s.Field("customer_contact_no"),
CustomerCustomerName = s.Field("_customer_name"),
DealerCode = s.Field("dealer_id"),
DealerContactNumber1 = s.Field("dealer_contact_number1"),
DealerOrServiceEnggContactNumber = s.Field("contact_number"),
Dealerdealer_name = s.Field("dealer_dealer_name"),
KmCovered = Convert.ToString(s.Field("km_covered")),
ModelNumber = s.Field("_model_number"),
OpenCloseStatus = ticketType,
ProductVarient = s.Field("vehicle_tagging"),
TicketIdAlias = s.Field("_ticket_id_alias"),
TripStart = !string.IsNullOrEmpty(s.Field("_trip_start").ToString()) ? Convert.ToDateTime(s.Field("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : "-",
TripEnd = !string.IsNullOrEmpty(s.Field("_trip_end").ToString()) ? Convert.ToDateTime(s.Field("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : "-",
VehicleRegisterNumber = s.Field("vehicle_register_number"),
}).ToList();
}
}
}
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetCustomerOpenadnCloseTicketDetail", Ex.Message, path, errorlogtf);
}
return objCustDetail;
}
///
/// To get customer details
///
/// device and ticket info
/// status and customer details
public List GetCustomerDetails(CustomerVehicleModel model)
{
List objList = new List();
try
{
objCustomerVehicleModel = new CustomerVehicleModel();
objCustomerVehicleModel.Status = 1;
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet ds = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3];
nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber);
nSqlParam[1] = new NpgsqlParameter("inmobile_number ", model.CustomerMobile1);
nSqlParam[2] = new NpgsqlParameter("inticket_number ", model.TicketNo);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail"], nSqlParam);
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new CustomerVehicleModel
{
CustomerVehicleIsOwnwer = s.Field("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field("_customer_id"),
CustomerName = s.Field("_customer_customer_name"),
CustomerAlias = s.Field("_customer_alias"),
CustomerMobile1 = s.Field("_customer_mobile_number_1"),
CustomerMobile2 = s.Field("_customer_mobile_number_2"),
CustomerMobile3 = s.Field("_customer_mobile_number_3"),
CustomerAddress = s.Field("_customer_address"),
CustomerEmailId = s.Field("_customer_email_id"),
CustomerCity = s.Field("_customer_city"),
CustomerState = s.Field("_customer_state"),
CustomerVehicleCustomerId = s.Field("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field("_customer_vehicle_vehicle_id"),
VehicleId = s.Field("_vehicle_id"),
VehicleRegistrationNumber = s.Field("_vehicle_registration_number"),
VehicleNumberPlate = s.Field("vehicle_number_plate"),
VehicleModelNumber = s.Field("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field("_vehicle_vehicle_type")
}).ToList();
}
}
else
{
NpgsqlParameter[] nSqlParamDBM = new NpgsqlParameter[2];
if (model.VehicleRegistrationNumber == null || model.VehicleRegistrationNumber == "")
{
if (model.TicketNo != "" || model.TicketNo != null)
{
nSqlParamDBM[0] = new NpgsqlParameter("inticket_number ", model.TicketNo);
nSqlParamDBM[1] = new NpgsqlParameter("inchassis_number ", null);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_by_dbm_ticketno"], nSqlParamDBM);
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new CustomerVehicleModel
{
CustomerVehicleIsOwnwer = true,//s.Field("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field("_customer_id"),
CustomerName = s.Field("_customer_customer_name"),
CustomerAlias = s.Field("_customer_customer_name"),
CustomerMobile1 = s.Field("_customer_mobile_number_1"),
CustomerMobile2 = s.Field("_customer_mobile_number_1"),
CustomerMobile3 = s.Field("_customer_mobile_number_1"),
CustomerAddress = s.Field("_customer_address"),
//CustomerEmailId = s.Field("_customer_email_id"),
CustomerCity = s.Field("_customer_city"),
CustomerState = s.Field("_customer_state"),
CustomerVehicleCustomerId = s.Field("_customer_vehicle_customer_id"),
//CustomerVehicleVehicleId = s.Field("_customer_vehicle_vehicle_id"),
//VehicleId = s.Field("_vehicle_id"),
VehicleRegistrationNumber = s.Field("_vehicle_registration_number"),
VehicleNumberPlate = s.Field("vehicle_number_plate"),
VehicleModelNumber = s.Field("_customer_vehicle_model_name"),
Status = 1,
VehicleType = s.Field("_vehicle_type")
}).ToList();
}
}
}
else
{
nSqlParamDBM[0] = new NpgsqlParameter("inregistration_number ", null);
nSqlParamDBM[1] = new NpgsqlParameter("inchassis_number ", model.CustomerMobile1);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_By_DBM"], nSqlParam);
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new CustomerVehicleModel
{
CustomerVehicleIsOwnwer = true,//s.Field("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field("_customer_id"),
CustomerName = s.Field("_customer_customer_name"),
CustomerAlias = s.Field("_customer_alias"),
CustomerMobile1 = s.Field("_customer_mobile_number_1"),
CustomerMobile2 = s.Field("_customer_mobile_number_2"),
CustomerMobile3 = s.Field("_customer_mobile_number_3"),
CustomerAddress = s.Field("_customer_address"),
CustomerEmailId = s.Field("_customer_email_id"),
CustomerCity = s.Field("_customer_city"),
CustomerState = s.Field("_customer_state"),
CustomerVehicleCustomerId = s.Field("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field("_customer_vehicle_vehicle_id"),
VehicleId = s.Field("_vehicle_id"),
VehicleRegistrationNumber = s.Field("_vehicle_registration_number"),
VehicleNumberPlate = s.Field("vehicle_number_plate"),
VehicleModelNumber = s.Field("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field("_vehicle_vehicle_type")
}).ToList();
}
}
}
}
else
{
nSqlParamDBM[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber);
nSqlParamDBM[1] = new NpgsqlParameter("inchassis_number ", null);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_By_DBM_registration_number"], nSqlParam);
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new CustomerVehicleModel
{
CustomerVehicleIsOwnwer = true,// s.Field("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field("_customer_id"),
CustomerName = s.Field("_customer_customer_name"),
CustomerAlias = s.Field("_customer_alias"),
CustomerMobile1 = s.Field("_customer_mobile_number_1"),
CustomerMobile2 = s.Field("_customer_mobile_number_2"),
CustomerMobile3 = s.Field("_customer_mobile_number_3"),
CustomerAddress = s.Field("_customer_address"),
CustomerEmailId = s.Field("_customer_email_id"),
CustomerCity = s.Field("_customer_city"),
CustomerState = s.Field("_customer_state"),
CustomerVehicleCustomerId = s.Field("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field("_customer_vehicle_vehicle_id"),
VehicleId = s.Field("_vehicle_id"),
VehicleRegistrationNumber = s.Field("_vehicle_registration_number"),
VehicleNumberPlate = s.Field("vehicle_number_plate"),
VehicleModelNumber = s.Field("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field("_vehicle_vehicle_type")
}).ToList();
}
}
}
}
}
else
{
objCustomerVehicleModel.Status = 0;
objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objList;
}
catch (Exception Ex)
{
objCustomerVehicleModel = new CustomerVehicleModel();
objCustomerVehicleModel.Status = 0;
objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
objLog.ErrorLogFile("TicketRepository GetCustomerDetails", Ex.Message, path, errorlogtf);
return objList;
}
}
///
/// To get customer open ticket history
///
/// device and ticket info
/// status and customer open ticket history
public List GetCustomerOpenTicketHistory(CustomerVehicleModel model)
{
List objTicketModel = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet dsClose = new DataSet();
DataSet dsOpen = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3];
nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber);
nSqlParam[1] = new NpgsqlParameter("inmobile_number ", model.CustomerMobile1);
nSqlParam[2] = new NpgsqlParameter("inticket_number ", model.TicketNo);
dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket"], nSqlParam);
if (dsOpen.Tables.Count > 0)
{
if (dsOpen.Tables[0].Rows.Count > 0)
{
objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new TicketOpenModel
{
AssignedTo = s.Field("assigned_to"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLatitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
BreackDownLatitude = s.Field("breakdown_lattitude"),
BreackDownLongitude = s.Field("breakdown_longitude"),
BreakDownLocation = s.Field("breakdown_location"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
CutomerScore = s.Field("customer_score"),
Description = s.Field("description"),
EstimatedTimeForJobComplition = s.Field("estimated_time_for_job_completion"),
EstimatedTimeForJobComplitionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Id = s.Field("id"),
IsDeclined = s.Field("isdeclined"),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Priority = s.Field("priority"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
TotalTicketLifeCycleTimeSlab = s.Field("total_ticket_lifecycle_time_sla"),
VehicleRegistrationNo = s.Field("vehicle_registration_number"),
EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
ActivityTicketsOpenCreatedBy = s.Field("activity_tickets_open_created_by"),
ActivityTicketsOpenCreationTime = s.Field("activity_tickets_open_creation_time"),
Remarks = s.Field("remarks"),
TicketActivityStatus = s.Field("ticket_activity_status"),
TicketStatusAlias = s.Field("ticket_status_alias"),
TicketStatusSequenceOrder = s.Field("ticket_status_sequence_order"),
TicketStatusStatusName = s.Field("ticket_status_status_name"),
UserId = s.Field("user_id"),
AuthEngineId = s.Field("auth_engine_id"),
UserName = s.Field("user_name"),
Designation = s.Field("designation"),
ObjectId = s.Field("object_id"),
OrganizationId = s.Field("organization_id"),
City = s.Field("city"),
State = s.Field("state"),
Region = s.Field("region"),
Language = s.Field("language"),
TimezoneId = s.Field("timezone_id"),
DisplayName = s.Field("display_name"),
OffsetInMinutes = s.Field("offset_in_minutes"),
DisplayId = s.Field("display_id"),
UserOrganizationName = s.Field("user_organization_name"),
UserOrganizationAlias = s.Field("user_organization_alias"),
UserOrganizationCity = s.Field("user_organization_city"),
UserOrganizationState = s.Field("user_organization_state"),
UserAsorganizationCountry = s.Field("user_asorganization_country"),
UserOrganizationDescription = s.Field("user_organization_description"),
UserOrgPath = s.Field("user_org_path"),
UserOrgDepth = s.Field("user_org_depth"),
UserOrgColor = s.Field("user_org_color"),
UserOrganizationRegion = s.Field("user_organization_region"),
DealerId = s.Field("_dealer_id"),
DealerOrganizationId = s.Field("_dealer_organization_id"),
DealerDealerName = s.Field("_dealer_dealer_name"),
DealerCity = s.Field("_dealer_city"),
DealerState = s.Field("_dealer_state"),
DealerDealerDefaultLattitude = s.Field("_dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("_dealer_dealer_default_longitude"),
VanId = s.Field("_van_id"),
VanAlias = s.Field("_van_alias"),
VanVanDefaultLattitude = s.Field("_van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field("_van_van_default_longitude"),
VanCity = s.Field("_van_city"),
VanState = s.Field("_van_state"),
VanVanModel = s.Field("_van_van_model"),
VanRegistrationNumber = s.Field("_van_registration_number"),
VanVanRegisteredAs = s.Field("_van_van_registered_as"),
DealerVanOrganizationName = s.Field("dealer_van_organization_name"),
DealerVanOrganizationOrganizationAlias = s.Field("dealer_van_organization_organization_alias"),
DealerVanOrganizationOrganizationCity = s.Field("dealer_van_organization_organization_city"),
DealerVanOrganizationOrganizationState = s.Field("dealer_van_organization_organization_state"),
DealerVanOrganizationOrganizationCountry = s.Field("dealer_van_organization_organization_country"),
DealerVanOrganizationOrganizationDescription = s.Field("dealer_van_organization_organization_description"),
DealerVanOrganizationOrganizationPath = s.Field("dealer_van_organization_organization_path"),
DealerVanOrganizationOrganizationDepth = s.Field("dealer_van_organization_organization_depth"),
DealerVanOrganizationOrganizationColor = s.Field("dealer_van_organization_organization_color"),
DealerVanOrganizationOrganizationRegion = s.Field("dealer_van_organization_organization_region"),
ServiceEngineerId = s.Field("_service_engineer_id"),
ServiceEngineerName = s.Field("service_engineer_name"),
ServiceEngineerAlias = s.Field("_service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field("_service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field("_service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field("_service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field("_service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field("_service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field("_service_engineer_pin_password")
}).ToList();
}
}
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf);
throw Ex;
}
}
///
/// To get customer close ticket history
///
/// device and ticket info
/// status and customer close ticket history
public List GetCustomerCloseTicketHistory(CustomerVehicleModel model)
{
List objTicketModel = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet dsClose = new DataSet();
DataSet dsOpen = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3];
nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber);
nSqlParam[1] = new NpgsqlParameter("inmobile_number ", model.CustomerMobile1);
nSqlParam[2] = new NpgsqlParameter("inticket_number ", model.TicketNo);
dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket"], nSqlParam);
if (dsOpen.Tables.Count > 0)
{
if (dsOpen.Tables[0].Rows.Count > 0)
{
objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new TicketCloseModel
{
AssignedTo = s.Field("assigned_to"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLatitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
BreackDownLatitude = s.Field("breakdown_lattitude"),
BreackDownLongitude = s.Field("breakdown_longitude"),
BreakDownLocation = s.Field("breakdown_location"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
CutomerScore = s.Field("customer_score"),
Description = s.Field("description"),
EstimatedTimeForJobComplition = s.Field("estimated_time_for_job_completion"),
EstimatedTimeForJobComplitionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Id = s.Field("id"),
IsDeclined = s.Field("isdeclined"),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Priority = s.Field("priority"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
TotalTicketLifeCycleTimeSlab = s.Field("total_ticket_lifecycle_time_sla"),
VehicleRegistrationNo = s.Field("vehicle_registration_number"),
EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
ActivityTicketsOpenCreatedBy = s.Field("activity_tickets_open_created_by"),
ActivityTicketsOpenCreationTime = s.Field("activity_tickets_open_creation_time"),
Remarks = s.Field("remarks"),
TicketActivityStatus = s.Field("ticket_activity_status"),
TicketStatusAlias = s.Field("ticket_status_alias"),
TicketStatusSequenceOrder = s.Field("ticket_status_sequence_order"),
TicketStatusStatusName = s.Field("ticket_status_status_name"),
UserId = s.Field("user_id"),
AuthEngineId = s.Field("auth_engine_id"),
UserName = s.Field("user_name"),
Designation = s.Field("designation"),
ObjectId = s.Field("object_id"),
OrganizationId = s.Field("organization_id"),
City = s.Field("city"),
State = s.Field("state"),
Region = s.Field("region"),
Language = s.Field("language"),
TimezoneId = s.Field("timezone_id"),
DisplayName = s.Field("display_name"),
OffsetInMinutes = s.Field("offset_in_minutes"),
DisplayId = s.Field("display_id"),
UserOrganizationName = s.Field("user_organization_name"),
UserOrganizationAlias = s.Field("user_organization_alias"),
UserOrganizationCity = s.Field("user_organization_city"),
UserOrganizationState = s.Field("user_organization_state"),
UserAsorganizationCountry = s.Field("user_asorganization_country"),
UserOrganizationDescription = s.Field("user_organization_description"),
UserOrgPath = s.Field("user_org_path"),
UserOrgDepth = s.Field("user_org_depth"),
UserOrgColor = s.Field("user_org_color"),
UserOrganizationRegion = s.Field("user_organization_region"),
DealerId = s.Field("_dealer_id"),
DealerOrganizationId = s.Field("_dealer_organization_id"),
DealerDealerName = s.Field("_dealer_dealer_name"),
DealerCity = s.Field("_dealer_city"),
DealerState = s.Field("_dealer_state"),
DealerDealerDefaultLattitude = s.Field("_dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("_dealer_dealer_default_longitude"),
VanId = s.Field