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("_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 GetCustomerCloseTicketHistory", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get ticket details base on Divice alias. /// /// device info and ticket info /// status and ticket details base on Divice alias public List GetTicketDetailOnDeviceAlias(TicketOpenModel 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("indevice_alias ", model.DeviceAlias); nSqlParam[1] = new NpgsqlParameter("inieminumber", model.Ieminumber); nSqlParam[2] = new NpgsqlParameter("inticket_status ", model.TicketStatus); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_devicealiaswise"], 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"), 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("_tickets_open_created_by"), CreationTime = Convert.ToDateTime(s.Field("_tickets_open_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), CutomerScore = s.Field("_customer_score"), Description = s.Field("_description"), EstimatedTimeForJobComplition = s.Field("_estimated_time_for_job_completion"), Id = s.Field("_id"), IsDeclined = s.Field("_isdeclined"), LastModifiedBy = s.Field("_last_modified_by"), LastModifiedTime = Convert.ToDateTime(s.Field("_last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Priority = s.Field("_priority"), ReportedVia = s.Field("_reported_via"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla"), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), BreakdownLocationLandmark = s.Field("_breakdown_location_landmark"), RouteId = s.Field("_route_id"), CustomeContact_no = s.Field("_customer_contact_no"), VehicleType = s.Field("_vehicle_type"), RepairCost = s.Field("_repair_cost"), DefaultSlaTime = s.Field("_default_sla_time"), SlaMissedReason = s.Field("_sla_missed_reason"), SuggestionComment = s.Field("_suggestion_comment"), JobCompleteResponseTime = s.Field("_default_col_1"), DefaultCol2 = s.Field("_default_col_2"), DefaultCol3 = s.Field("_default_col_3"), EstimatedDistance = s.Field("_estimated_distance"), OwnerContact_no = s.Field("_owner_contact_no"), ticketid_alias = s.Field("_ticket_id_alias"), //--- added on 06-01-2020 start ------------------------ vehicle_warranty = s.Field("_vehicle_warranty") == null ? "" : s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc") == null ? "" : s.Field("_vehicle_amc"), odometer_reading = s.Field("_odometer_reading"), vehicle_sales_date = s.Field("_vehicle_sales_date"), ticket_source = s.Field("_ticket_source") == null ? "" : s.Field("_ticket_source"), customer_id = s.Field("_customer_id") == null ? "" : s.Field("_customer_id"), customer_type = s.Field("_customer_type") == null ? "" : s.Field("_customer_type"), owner_name = s.Field("_owner_name") == null ? "" : s.Field("_owner_name"), //modified on 11-01-2020 is_kam = s.Field("_is_kam"), NewVehicleType = s.Field("_new_vehicle_type") //--- added on 06-01-2020 end ------------------------ }).ToList(); } } } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository GetTicketDetailOnDeviceAlias", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get details of ticket accept or declined and some deatails of customer open ticket /// /// ticket info /// deatails of customer open ticket public List TicketAcceptOrDecliend(TicketOpenModel model) { TicketOpenModel objModel = new TicketOpenModel(); CustomerOpenTicketFullDetailsTicketWise objfullticketdetails = new CustomerOpenTicketFullDetailsTicketWise(); List objListfullticketdetails = new List(); try { objAuthorization = new AuthenticationRepository(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); if (objAuthorization.AuthenticateDevice(model.Token)) { // get latest ticket activity for the ticket. NpgsqlParameter[] nSqlParam0 = new NpgsqlParameter[1]; nSqlParam0[0] = new NpgsqlParameter("inticket_id", model.Id); DataSet ds_latest_ticket_activity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_activity"], nSqlParam0); if ((model.IsDeclined == true) || (model.IsDeclined.ToString().ToUpper() == "TRUE") || (model.TicketStatus == 6)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inticket_id ", model.Id); nSqlParam[1] = new NpgsqlParameter("inlast_modified_by ", model.LastModifiedBy); nSqlParam[2] = new NpgsqlParameter("inlast_modified_time ", model.LastModifiedTime); nSqlParam[3] = new NpgsqlParameter("indescription ", model.Description); objfullticketdetails.OpenCloseStatus = "open"; NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_assign_to_decline_ticket"], nSqlParam); #region Sending SMS (When ticket is Declined) DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds2_ticket_info = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.Id); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.Id); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.Id); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgDealerDeclinedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerDeclinedTicket"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.Id.Split('-'); // set content in msg msgDealerDeclinedTicket = string.Format(msgDealerDeclinedTicket, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ": " + ds1.Tables[0].Rows[0]["suggestion_comment"].ToString(), //ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "-" + ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString() ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + " )" ); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgDealerDeclinedTicket); objGlobalRepository.SendMessage(CSMsms); } string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerDeclinedTicket); objGlobalRepository.SendMessage(DealerSms); #region Sending sms to KAM when ticket is declined // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.Id); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamDeclinedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamDeclinedTicket"].ToString(); // set content in msg msgKamDeclinedTicket = string.Format(msgKamDeclinedTicket, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ": " + ds1.Tables[0].Rows[0]["suggestion_comment"].ToString(), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + " )" ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamDeclinedTicket); objGlobalRepository.SendMessage(KamSms); //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables.Count > 0) { if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageDeclineKamTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageDeclineKamTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } } //---------------------------------------------------------------------- } } #endregion } } #endregion } else { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inticket_id ", model.Id); nSqlParam[1] = new NpgsqlParameter("inlast_modified_by ", model.LastModifiedBy); nSqlParam[2] = new NpgsqlParameter("inlast_modified_time ", model.LastModifiedTime); NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_accept_assign_ticket"], nSqlParam); objfullticketdetails.OpenCloseStatus = "open"; #region Sending SMS ( When ticket is assigned to Van ) if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "1") && (model.IsDeclined.ToString().ToUpper() == "FALSE") || (model.TicketStatus == 2)) { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.Id); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.Id); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.Id); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicket"].ToString(); string msgDealerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforVanTicket"].ToString(); string msgWMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforVanTicket"].ToString(); string msgCSMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforVanTicket"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { //vehicle_registration_number msgCustforVanTicket = string.Format(msgCustforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ConfigurationManager.AppSettings["TollFreeNo"].ToString()); // Toll free number msgDealerforVanTicket = string.Format(msgDealerforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // Driver's number ); msgWMforVanTicket = string.Format(msgWMforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // Driver's number ); msgCSMforVanTicket = string.Format(msgCSMforVanTicket, ticketIdAlias, // Ticket ID ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle registration number ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + " )",// Dealer Name, Dealer City ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // Driver's number ); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgCustforVanTicket); string DealerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforVanTicket); // get all contact no split in array. string[] CSMContactNo = ds3_ticket_info.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforVanTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds3_ticket_info.Tables[0].Rows[0]["wm_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); #region Sending sms to KAM when ticket is Accepted // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.Id); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamAcceptedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamAcceptedTicket"].ToString(); // set content in msg msgKamAcceptedTicket = string.Format(msgKamAcceptedTicket, ticketIdAlias, // ticket id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // vehicle reg no. ConfigurationManager.AppSettings["TollFreeNo"].ToString() // toll free number ); string KamSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamAcceptedTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= if (ds_kam_ticket_details.Tables.Count > 0) { if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageAcceptKamDummyOrRealTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageAcceptKamDummyOrRealTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } } #endregion } } } } #endregion } objfullticketdetails.Status = "1"; objfullticketdetails.TicketId = model.Id; objfullticketdetails.Token = model.Token; objListfullticketdetails = GetCustomerOpenTicketFullDetailTicketWise(objfullticketdetails); } return objListfullticketdetails; } catch (Exception Ex) { objfullticketdetails.Status = "0"; objfullticketdetails.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("TicketRepository TicketAcceptOrDecliend", Ex.Message, path, errorlogtf); return objListfullticketdetails; } } /// /// To get ticket status list. /// /// ticket status list public List GetTicketStatusList() { List model = new List(); try { DataSet ds = new DataSet(); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_status"]); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { model = ds.Tables[0].AsEnumerable().Select(s => new TicketStatus { Alias = s.Field("alias"), Id = s.Field("id"), SequenceNo = s.Field("sequence_order"), StatusName = s.Field("status_name") }).ToList(); } } return model; } catch (Exception Ex) { objLog.ErrorLogFile("GetTicketStatusList", Ex.Message, path, errorlogtf); throw Ex; } } public List GetTicketStatusListbyticketstaus(string prevstatus, string userrole) { List model = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inprevstatus", prevstatus); nSqlParam[1] = new NpgsqlParameter("inuserrole", userrole); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_status_ticketstate_wise"], nSqlParam); // DataSet ds = new DataSet(); // ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_status"]); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { model = ds.Tables[0].AsEnumerable().Select(s => new TicketStatus { Alias = s.Field("_alias"), Id = s.Field("_id"), SequenceNo = s.Field("_sequence_order"), StatusName = s.Field("_status_name") }).ToList(); } } return model; } catch (Exception Ex) { objLog.ErrorLogFile("GetTicketStatusList", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get van and dealer list. /// /// van and dealer info /// van and dealer list /* public List GetVanDealerListStateWise(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { string[] parmaval = model.Limit.ToString().Split(','); if (parmaval[0] == "electric") { model.Fuel_type = "electric"; } else { model.Fuel_type = "diesel,cng"; } model.Limit = "100"; DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); nSqlParam[4] = new NpgsqlParameter("inlat", parmaval[1]); nSqlParam[5] = new NpgsqlParameter("inlng", parmaval[2]); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_fuel_type_new"], nSqlParam); string deviceAlias = ""; if (ds.Tables.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } objListModel.Add(objModel); } } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWise", Ex.Message, path, errorlogtf); throw Ex; } }*/ /// /// To get van and dealer list. /// // van and dealer info /// van and dealer list //// for titan public List GetVanDealerListStateWise(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { string[] limitval = model.Limit.Split(','); string str = ""; model.Limit = "100"; DataSet ds = new DataSet(); string streos = ""; string substring = ""; DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; if (limitval.Length > 2) { if (limitval[1].ToLower() == "electric") { model.Fuel_type = "electric"; } else { model.Fuel_type = "diesel,cng"; } str = limitval[0].ToLower(); substring = "titan"; streos = limitval[2].ToLower(); } else { if (limitval[1].ToLower() == "electric") { model.Fuel_type = "electric"; } else { model.Fuel_type = "diesel,cng"; } str = limitval[0].ToLower(); substring = "titan"; } /* if (streos == "eps") { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_list_state_wise_fuel_type_EPS"], nSqlParam); } if (str.Contains(substring)) { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_list_state_wise_fuel_type"], nSqlParam); } if (str.ToLower() == "genset" || str.ToLower() == "industrial" || str.ToLower() == "axles" || str.ToLower() == "ne") { NpgsqlParameter[] nSqlParamgenset = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_non_harvester_dealers"], nSqlParamgenset); } else { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_fuel_type"], nSqlParam); }*/ nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_fuel_type"], nSqlParam); if (streos == "eps") { if (str.ToLower() == "genset" || str.ToLower() == "industrial" || str.ToLower() == "axles" || str.ToLower() == "ne") { NpgsqlParameter[] nSqlParamgenset = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_non_harvester_dealers"], nSqlParamgenset); } else { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_fuel_type"], nSqlParam); } } if (str.Contains(substring) ) { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_list_state_wise_fuel_type"], nSqlParam); } string deviceAlias = ""; if (ds.Tables.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } objListModel.Add(objModel); } } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWise", Ex.Message, path, errorlogtf); throw Ex; } } /*public List GetVanDealerListStateWise(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.Limit.ToLower() == "electric") { model.Fuel_type = "electric"; } else { model.Fuel_type = "diesel,cng"; } model.Limit = "100"; DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("infueltype ", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_fuel_type"], nSqlParam); string deviceAlias = ""; if (ds.Tables.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } objListModel.Add(objModel); } } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWise", Ex.Message, path, errorlogtf); throw Ex; } } */ /// /// To get van and dealer list. /// /// van and dealer info /// van and dealer list public List GetVanDealerListStateWiseForKam(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise"], nSqlParam); string deviceAlias = ""; if (ds.Tables.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); } objListModel.Add(objModel); } } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWiseForKam", Ex.Message, path, errorlogtf); throw Ex; } } //// /// This method is used to Insert Open Ticket /// /// ticket info /// response SenderId which is generated by GCM and status 1 or 0 public InsertOpenTicket InsertOpenTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); if (!string.IsNullOrEmpty(model.SuggestionComment)) { model.SuggestionComment = model.SuggestionComment.Replace("/", ""); model.SuggestionComment = model.SuggestionComment.Replace(@"\", ""); } try { objModel.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { if (model.VehicleRegistrationNumber == null) { } else { if (model.VehicleRegistrationNumber.ToLower() == "null" || model.VehicleRegistrationNumber == null) { model.VehicleRegistrationNumber = null; } } } //CustomerModel objCustomerModel = new CustomerModel(); //calling dbm api to get Vehicle Warranty, AMC, Emission norms and Sales date //model = objGlobalRepository.checkRegistartionNoandGetVehicleDetail(model); //calling dbm api to get Kam Manager NpgsqlParameter[] nSqlParam = new NpgsqlParameter[48]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.CustomerContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimate_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); nSqlParam[37] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); //added on 26/11/2020 nSqlParam[38] = new NpgsqlParameter("invehicle_warranty", model.vehicle_warranty != null ? model.vehicle_warranty : ""); nSqlParam[39] = new NpgsqlParameter("invehicle_amc", model.vehicle_amc != null ? model.vehicle_amc : ""); nSqlParam[40] = new NpgsqlParameter("invehicle_emission_norms", model.vehicle_emission_norms != null ? model.vehicle_emission_norms : ""); nSqlParam[41] = new NpgsqlParameter("invehicle_sales_date", model.vehicle_sales_date != null ? model.vehicle_sales_date : ""); //added on 2/1/2021 //nSqlParam[42] = new NpgsqlParameter("inkam_champ_id", model.KamChampId != null ? model.KamChampId : ""); //nSqlParam[43] = new NpgsqlParameter("inkam_champ_name", model.KamChampName != null ? model.KamChampName : ""); // nSqlParam[44] = new NpgsqlParameter("inkam_champ_tel", model.KamChampTel != null ? model.KamChampTel : ""); //nSqlParam[45] = new NpgsqlParameter("inkam_champ_email", model.KamChampEmail != null ? model.KamChampEmail : ""); nSqlParam[42] = new NpgsqlParameter("inkam_champ_id", ""); nSqlParam[43] = new NpgsqlParameter("inkam_champ_name", ""); nSqlParam[44] = new NpgsqlParameter("inkam_champ_tel", ""); nSqlParam[45] = new NpgsqlParameter("inkam_champ_email", ""); nSqlParam[46] = new NpgsqlParameter("positionDateTime", model.positionDateTime); //Added by Mayuri On 29 July 2025 nSqlParam[47] = new NpgsqlParameter("ineps_prod_type", model.EPS_prod_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_open_ticket"], nSqlParam); // if (model.AssignedTo == "van") //{ // if (model.TicketStatus == 1) // { // UdanPushData.SendDataToSAP(model.VehicleRegistrationNumber, model.TicketStatus, ""); // } //} string ticketIdAlias = null; // taking variable to store ticket Id alias int mobileOtp = 0; // send GCM msg to device. if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // getting ticket id alias objModel.TicketId = ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", ds.Tables[0].Rows[0]["_ticket_id"]); nSqlParam1[1] = new NpgsqlParameter("in_van_id", model.AssignedToUserId); //Get Device GCm id for ticket. dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_create_ticket_otp"], nSqlParam1); mobileOtp = Convert.ToInt32(dsGcm.Tables[0].Rows[0]["sp_create_ticket_otp"]); objModel.Message = mobileOtp.ToString(); DataSet dsReCreateOtp = new DataSet(); //re-create a otp when otp is empty or zero //added on 01-12-2021 if (mobileOtp == 0) { NpgsqlParameter[] nSqlParam3 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", ds.Tables[0].Rows[0]["_ticket_id"]); nSqlParam1[1] = new NpgsqlParameter("in_van_id", model.AssignedToUserId); //Get Device GCm id for ticket. dsReCreateOtp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_create_ticket_otp"], nSqlParam3); objModel.Message = dsReCreateOtp.ToString(); } } //objModel.TicketId = objModel.TicketId + ',' + objModel.Message; //Mobile OTP CR #region Sending to KAM when ticket is Assigned to Dealer and Accepted // checking whether this ticket creation belongs to KAM user or not /* NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds.Tables[0].Rows[0]["_ticket_id"] != null && ds.Tables[0].Rows[0]["_ticket_id"].ToString() != "") { objModel.TicketId = ds.Tables[0].Rows[0]["_ticket_id"].ToString(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", objModel.TicketId); //Get Device GCm id for ticket. dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_service_engg_device_gcm_id"], nSqlParam1); //if (dsGcm.Tables[0].Rows.Count > 0) //{ // if (dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"] != null && dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString() != "") // { // objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString(); // objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; // objGcmModel.TicketId = objModel.TicketId; // objGcmModel = objGlobalRepository.GcmSendNotification(objGcmModel); // objModel.SenderId = objGcmModel.SenderId; // } //} if (dsGcm.Tables[0].Rows.Count > 0) { // GCM id if (Convert.ToInt32(dsGcm.Tables[0].Rows[0]["_push_notification_bit"]) == 0) { //objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["_device_id"].ToString(); //objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; //objGcmModel.TicketId = objModel.TicketId; //objGcmModel = objGlobalRepository.GcmSendNotification(objGcmModel); //objModel.SenderId = objGcmModel.SenderId; } //FCM ID //else //{ // objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["_device_id"].ToString(); // objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; // objGcmModel.TicketId = objModel.TicketId; // objGcmModel = objGlobalRepository.FcmSendNotification(objGcmModel); // objModel.SenderId = objGcmModel.SenderId; //} } } // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageAcceptKamDummyOrRealTicketByDealer"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageAcceptKamTicketByDealer"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } */ #endregion } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertOpenTicket", Ex.Message, path, errorlogtf); return objModel; } } // change by priya for cogent api /* public void InsertTicketDetailOnCreationInVECV(InsertOpenTicket model, string TicketIdAlias, string ticketId, string dealerid) { try { if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECVBlocked"] != "true") { DataSet ds3 = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds = new DataSet(); if (model.VehicleTagging.ToLower() == "eps") { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); try { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_details" + ticketId, Ex.Message, path, errorlogtf); } } else { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", ticketId); try { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_details" + ticketId, Ex.Message, path, errorlogtf); } } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_full_details_ticket_wise" + ticketId, Ex.Message, path, errorlogtf); } DataSet dslang = new DataSet(); try { NpgsqlParameter[] nSqlParam3_Lang_info = new NpgsqlParameter[1]; nSqlParam3_Lang_info[0] = new NpgsqlParameter("in_dealer_code", dealerid); dslang = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_lang_by_dealerId"], nSqlParam3_Lang_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_lang_by_dealerId" + ticketId, Ex.Message, path, errorlogtf); } string langid = ""; if (dslang.Tables[0].Rows.Count > 0) { langid = Convert.ToString(dslang.Tables[0].Rows[0]["sp_lang_by_dealerId"]); } DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); string productvariant = ""; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_by_ticketid"], nSqlParamopen); if (dsOpen.Tables[0].Rows.Count > 0) { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias model.VehicleTagging = dsOpen.Tables[0].Rows[0]["_vehicle_tagging"].ToString(); // getting ticket id alias productvariant = dsOpen.Tables[0].Rows[0]["_fuel_type"].ToString(); // getting ticket id alias } string InsertTicketDetailOnCreationInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECV"].ToString(); List< Level> oEscalationLevelList = new List(); // getting escalation level from DB DataSet escalationLevelDataset = new DataSet(); DataSet escalationLevelDatasetsite = new DataSet(); try { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParam1[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type_cogent"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECV usp_get_escalation_level_by_dealer_id_vehicle_type_cogent" + ticketId, Ex.Message, path, errorlogtf); } string dealerName = ""; string dealerNumber = ""; string dealerCode = ""; string customerName = ""; string customerNumber = ""; string WmName = ""; string WmNumber1 = ""; string WmNumber2 = ""; string CSMNumber = ""; string siteInhargeNumber1 = ""; string siteInhargeNumber2 = ""; string siteInhargeName = ""; if (ds1.Tables.Count > 0) { if (ds1.Tables[0].Rows.Count > 0) { dealerName = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_name"].ToString()); if (ds3.Tables[0].Rows.Count > 0) { dealerNumber = Convert.ToString(ds3.Tables[0].Rows[0]["contact_number"].ToString()); } else { dealerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_contact_number"].ToString()); } dealerCode = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_code"].ToString()); customerName = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_name"].ToString()); customerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_contact_number"].ToString()); } } // binding escalation level to model list if (escalationLevelDataset.Tables.Count > 0) { if (escalationLevelDataset.Tables[0].Rows.Count > 0) { WmNumber1 = escalationLevelDataset.Tables[0].Rows[0]["phones"].ToString(); string[] values = WmNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); WmName = escalationLevelDataset.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { WmNumber1 = values[0].ToString(); } else if (cout == 2) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); } else if (cout == 3) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); CSMNumber = values[2].ToString(); } } } NpgsqlParameter[] nSqlParamsite = new NpgsqlParameter[3]; try { nSqlParamsite[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParamsite[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); nSqlParamsite[2] = new NpgsqlParameter("inticket_id", model.TicketId); escalationLevelDatasetsite = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_cogent_site_incharge"], nSqlParamsite); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECV usp_get_escalation_level_cogent_site_incharge" + ticketId, Ex.Message, path, errorlogtf); } if (escalationLevelDatasetsite.Tables.Count > 0) { if (escalationLevelDatasetsite.Tables[0].Rows.Count > 0) { siteInhargeNumber1 = escalationLevelDatasetsite.Tables[0].Rows[0]["phones"].ToString(); string[] values = siteInhargeNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); siteInhargeName = escalationLevelDatasetsite.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { siteInhargeNumber1 = values[0].ToString(); } else if (cout == 2) { siteInhargeNumber1 = values[0].ToString(); siteInhargeNumber2 = values[1].ToString(); } } } InsertTicketDetailOnCreationInVECV = string.Format(InsertTicketDetailOnCreationInVECV, customerName, customerNumber, model.VehicleTagging, dealerNumber, dealerName, TicketIdAlias, WmName, WmNumber1, WmNumber2, CSMNumber, dealerCode, model.VehicleRegistrationNumber, langid, siteInhargeNumber1, siteInhargeNumber2, productvariant); objLog.AddLogFile("Cogent API url data send", InsertTicketDetailOnCreationInVECV, path, errorlogtf); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(InsertTicketDetailOnCreationInVECV); request.Method = "POST"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); objLog.AddLogFile("Cogent success response preclosure", source, path, TicketIdAlias); sr.Close(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV", Ex.Message, path, errorlogtf); } }*/ public void InsertTicketDetailOnCreationInVECV(InsertOpenTicket model, string TicketIdAlias, string ticketId, string dealerid) { try { if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECVBlocked"] != "true") { DataSet ds3 = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds = new DataSet(); if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); try { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_details" + ticketId, Ex.Message, path, errorlogtf); } } else { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", ticketId); try { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_details" + ticketId, Ex.Message, path, errorlogtf); } } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_get_customer_open_ticket_full_details_ticket_wise" + ticketId, Ex.Message, path, errorlogtf); } DataSet dslang = new DataSet(); try { NpgsqlParameter[] nSqlParam3_Lang_info = new NpgsqlParameter[1]; nSqlParam3_Lang_info[0] = new NpgsqlParameter("in_dealer_code", dealerid); dslang = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_lang_by_dealerId"], nSqlParam3_Lang_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV usp_lang_by_dealerId" + ticketId, Ex.Message, path, errorlogtf); } string langid = ""; if (dslang.Tables[0].Rows.Count > 0) { langid = Convert.ToString(dslang.Tables[0].Rows[0]["sp_lang_by_dealerId"]); } DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); string productvariant = ""; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_by_ticketid"], nSqlParamopen); if (dsOpen.Tables[0].Rows.Count > 0) { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias model.VehicleTagging = dsOpen.Tables[0].Rows[0]["_vehicle_tagging"].ToString(); // getting ticket id alias productvariant = dsOpen.Tables[0].Rows[0]["_fuel_type"].ToString(); // getting ticket id alias } string InsertTicketDetailOnCreationInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECV"].ToString(); List oEscalationLevelList = new List(); // getting escalation level from DB DataSet escalationLevelDataset = new DataSet(); DataSet escalationLevelDatasetsite = new DataSet(); try { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParam1[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type_cogent"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECV usp_get_escalation_level_by_dealer_id_vehicle_type_cogent" + ticketId, Ex.Message, path, errorlogtf); } string dealerName = ""; string dealerNumber = ""; string dealerCode = ""; string customerName = ""; string customerNumber = ""; string WmName = ""; string WmNumber1 = ""; string WmNumber2 = ""; string CSMNumber = ""; string siteInhargeNumber1 = ""; string siteInhargeNumber2 = ""; string siteInhargeName = ""; if (ds1.Tables.Count > 0) { if (ds1.Tables[0].Rows.Count > 0) { dealerName = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_name"].ToString()); if (ds3.Tables[0].Rows.Count > 0) { dealerNumber = Convert.ToString(ds3.Tables[0].Rows[0]["contact_number"].ToString()); } else { dealerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_contact_number"].ToString()); } dealerCode = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_code"].ToString()); customerName = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_name"].ToString()); customerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_contact_number"].ToString()); } } // binding escalation level to model list if (escalationLevelDataset.Tables.Count > 0) { if (escalationLevelDataset.Tables[0].Rows.Count > 0) { WmNumber1 = escalationLevelDataset.Tables[0].Rows[0]["phones"].ToString(); string[] values = WmNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); WmName = escalationLevelDataset.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { WmNumber1 = values[0].ToString(); } else if (cout == 2) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); } else if (cout == 3) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); CSMNumber = values[2].ToString(); } } } NpgsqlParameter[] nSqlParamsite = new NpgsqlParameter[3]; try { nSqlParamsite[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParamsite[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); nSqlParamsite[2] = new NpgsqlParameter("inticket_id", model.TicketId); escalationLevelDatasetsite = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_cogent_site_incharge"], nSqlParamsite); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECV usp_get_escalation_level_cogent_site_incharge" + ticketId, Ex.Message, path, errorlogtf); } if (escalationLevelDatasetsite.Tables.Count > 0) { if (escalationLevelDatasetsite.Tables[0].Rows.Count > 0) { siteInhargeNumber1 = escalationLevelDatasetsite.Tables[0].Rows[0]["phones"].ToString(); string[] values = siteInhargeNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); siteInhargeName = escalationLevelDatasetsite.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { siteInhargeNumber1 = values[0].ToString(); } else if (cout == 2) { siteInhargeNumber1 = values[0].ToString(); siteInhargeNumber2 = values[1].ToString(); } } } TicketRepository objTicketRepository = new TicketRepository(_connStr); InsertTicketDetailOnCreationInVECV = string.Format(InsertTicketDetailOnCreationInVECV, customerName, customerNumber, model.VehicleTagging, dealerNumber, dealerName, TicketIdAlias, WmName, WmNumber1, WmNumber2, CSMNumber, dealerCode, model.VehicleRegistrationNumber, langid, siteInhargeNumber1, siteInhargeNumber2, productvariant); objLog.AddLogFile("Cogent API url data send", InsertTicketDetailOnCreationInVECV, path, errorlogtf); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(InsertTicketDetailOnCreationInVECV); request.Method = "POST"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); objLog.AddLogFile("Cogent success response preclosure", source, path, TicketIdAlias); sr.Close(); } else if (response.StatusCode == HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed: Unauthorized access", InsertTicketDetailOnCreationInVECV); objLog.ErrorLogFile(InsertTicketDetailOnCreationInVECV, "API Login Failed: Unauthorized access", path, errorlogtf); } } catch (WebException webEx) { string errorMessage = ""; if (webEx.Response != null) { using (var reader = new StreamReader(webEx.Response.GetResponseStream())) { errorMessage = reader.ReadToEnd(); } } else { errorMessage = webEx.Message; } bool isSend = objTicketRepository.emailForError(errorMessage, InsertTicketDetailOnCreationInVECV); objLog.ErrorLogFile(InsertTicketDetailOnCreationInVECV, errorMessage, path, errorlogtf); } } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository InsertTicketDetailOnCreationInVECV", Ex.Message, path, errorlogtf); } } // CHANGE BY PRIYA 0N 1 SEPT 2022 public void InsertTicketDetailOnCreationInVECVNew(InsertOpenTicket model, string TicketIdAlias, string ticketId, string dealerid, string regno) { try { if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECVBlocked"] != "true") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", ticketId); DataSet ds3 = new DataSet(); DataSet ds1 = new DataSet(); try { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew usp_get_customer_open_ticket_details" + ticketId, Ex.Message, path, errorlogtf); } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew usp_get_customer_open_ticket_full_details_ticket_wise" + ticketId, Ex.Message, path, errorlogtf); } if (ds3.Tables[0].Rows.Count > 0) { model.VehicleTagging = ds3.Tables[0].Rows[0]["vehicle_tagging"].ToString(); } DataSet dslang = new DataSet(); try { NpgsqlParameter[] nSqlParam3_Lang_info = new NpgsqlParameter[1]; nSqlParam3_Lang_info[0] = new NpgsqlParameter("in_dealer_code", dealerid); dslang = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_lang_by_dealerId"], nSqlParam3_Lang_info); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew usp_lang_by_dealerId" + ticketId, Ex.Message, path, errorlogtf); } string langid = ""; if (dslang.Tables.Count > 0) { if (dslang.Tables[0].Rows.Count > 0) { langid = Convert.ToString(dslang.Tables[0].Rows[0]["sp_lang_by_dealerId"]); } } string InsertTicketDetailOnCreationInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECV"].ToString(); List oEscalationLevelList = new List(); // getting escalation level from DB DataSet escalationLevelDataset = new DataSet(); DataSet escalationLevelDatasetsite = new DataSet(); try { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParam1[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type_cogent"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew usp_get_escalation_level_by_dealer_id_vehicle_type_cogent" + ticketId, Ex.Message, path, errorlogtf); } string dealerName = ""; string dealerNumber = ""; string dealerCode = ""; string customerName = ""; string customerNumber = ""; string WmName = ""; string WmNumber1 = ""; string WmNumber2 = ""; string CSMNumber = ""; string siteInhargeNumber1 = ""; string siteInhargeNumber2 = ""; string siteInhargeName = ""; if (ds1.Tables.Count > 0) { if (ds1.Tables[0].Rows.Count > 0) { dealerName = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_name"].ToString()); if (ds3.Tables[0].Rows.Count > 0) { dealerNumber = Convert.ToString(ds3.Tables[0].Rows[0]["contact_number"].ToString()); } else { dealerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_contact_number"].ToString()); } dealerCode = Convert.ToString(ds1.Tables[0].Rows[0]["_dealer_code"].ToString()); customerName = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_name"].ToString()); customerNumber = Convert.ToString(ds1.Tables[0].Rows[0]["_customer_contact_number"].ToString()); } // binding escalation level to model list } if (escalationLevelDataset.Tables.Count > 0) { if (escalationLevelDataset.Tables[0].Rows.Count > 0) { WmNumber1 = escalationLevelDataset.Tables[0].Rows[0]["phones"].ToString(); string[] values = WmNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); WmName = escalationLevelDataset.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { WmNumber1 = values[0].ToString(); } else if (cout == 2) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); } else if (cout == 3) { WmNumber1 = values[0].ToString(); WmNumber2 = values[1].ToString(); CSMNumber = values[2].ToString(); } } } NpgsqlParameter[] nSqlParamsite = new NpgsqlParameter[3]; try { nSqlParamsite[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParamsite[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); nSqlParamsite[2] = new NpgsqlParameter("inticket_id", model.TicketId); escalationLevelDatasetsite = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_cogent_site_incharge"], nSqlParamsite); } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew usp_get_escalation_level_cogent_site_incharge" + ticketId, Ex.Message, path, errorlogtf); } if (escalationLevelDatasetsite.Tables.Count > 0) { if (escalationLevelDatasetsite.Tables[0].Rows.Count > 0) { siteInhargeNumber1 = escalationLevelDatasetsite.Tables[0].Rows[0]["phones"].ToString(); string[] values = siteInhargeNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); siteInhargeName = escalationLevelDatasetsite.Tables[0].Rows[0]["manager_name"].ToString(); int cout = values.Length; if (cout == 0) { } else if (cout == 1) { siteInhargeNumber1 = values[0].ToString(); } else if (cout == 2) { siteInhargeNumber1 = values[0].ToString(); siteInhargeNumber2 = values[1].ToString(); } } } InsertTicketDetailOnCreationInVECV = string.Format(InsertTicketDetailOnCreationInVECV, customerName, customerNumber, model.VehicleTagging, dealerNumber, dealerName, TicketIdAlias, WmName, WmNumber1, WmNumber2, CSMNumber, dealerCode, model.VehicleRegistrationNumber, langid, siteInhargeNumber1, siteInhargeNumber2); objLog.ErrorLogFile("Cogent API url new", InsertTicketDetailOnCreationInVECV, path, errorlogtf); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(InsertTicketDetailOnCreationInVECV); request.Method = "POST"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); sr.Close(); } } catch (Exception Ex) { objLog.ErrorLogFile("InsertTicketDetailOnCreationInVECVNew", Ex.Message, path, errorlogtf); } CustomerVehicleModelDBM modelnew = new CustomerVehicleModelDBM(); /* DataSet ds3_ticket_info = new DataSet(); string TicketNo = ""; string dealername = ""; string ticketidalias = ""; NpgsqlParameter[] nSqlParamnew = new NpgsqlParameter[2]; nSqlParamnew[0] = new NpgsqlParameter("inticket_id", ticketId); nSqlParamnew[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_details_for_ticket"], nSqlParamnew); model.Message = ds3_ticket_info.Tables[0].Rows[0]["_dealer_name"].ToString(); modelnew.TicketNo = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); dealername = ds3_ticket_info.Tables[0].Rows[0]["_dealer_name"].ToString(); modelnew.VehicleRegistrationNumber = ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(); modelnew.CustomerMobile1 = ds3_ticket_info.Tables[0].Rows[0]["_driver_no"].ToString(); // Driver's number modelnew.CustomerName = ds3_ticket_info.Tables[0].Rows[0]["_driver_name"].ToString();// Service Engineer Name modelnew.CustomerMobile2 = ds3_ticket_info.Tables[0].Rows[0]["_service_engginer_no"].ToString();// service enginer no modelnew.VehicleModelNumber = ds3_ticket_info.Tables[0].Rows[0]["vehicle_model_number"].ToString(); modelnew.CustomerCity = ds3_ticket_info.Tables[0].Rows[0]["_service_engginer_name"].ToString().Replace("Capitalized -", "");// service enginer no modelnew.CustomerAddress = ds3_ticket_info.Tables[0].Rows[0]["_nature_of_problem"].ToString();// string ass_to = ds3_ticket_info.Tables[0].Rows[0]["_assigned_to"].ToString();// string ass_to_text = ds3_ticket_info.Tables[0].Rows[0]["_assigned_text"].ToString();// string creation_time = ds3_ticket_info.Tables[0].Rows[0]["_creation_time"].ToString();// string CSM = ds3_ticket_info.Tables[0].Rows[0]["_csm_Name"].ToString();// string CSM_no = ds3_ticket_info.Tables[0].Rows[0]["_csm_no"].ToString();// string dealer_id = ds3_ticket_info.Tables[0].Rows[0]["_dealer_1scode"].ToString();// string owner_name = ds3_ticket_info.Tables[0].Rows[0]["_owner_name"].ToString();// string owner_no = ds3_ticket_info.Tables[0].Rows[0]["_owner_no"].ToString();// // service enginer no if (modelnew.VehicleModelNumber.Trim() == "6016" || modelnew.VehicleModelNumber.Trim() == "6019") { string mailsend = sendmail(modelnew, dealername, ticketidalias, ass_to, ass_to_text, creation_time, CSM, CSM_no, dealer_id, owner_name, owner_no); }*/ } public void InsertTicketDetailOnPreclousreInVECV(InsertOpenTicket model, string TicketIdAlias, string typePreclosure, string remarks) { if (System.Configuration.ConfigurationManager.AppSettings["IsNewPreclosure"] != "true") { if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnPreclosureInVECVBlocked"] != "true") { try { string InsertTicketDetailOnPreclousreInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnPreclousreInVECVOld"].ToString(); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; InsertTicketDetailOnPreclousreInVECV = string.Format(InsertTicketDetailOnPreclousreInVECV, TicketIdAlias, typePreclosure); objLog.AddLogFile("Cogent API preclosure url data send", InsertTicketDetailOnPreclousreInVECV, path, errorlogtf); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(InsertTicketDetailOnPreclousreInVECV); request.Method = "POST"; request.Headers.Add("Authorization", "mwLqY1P7IebxNQXhZ9gB1KK"); request.ContentType = "application/json"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); TicketRepository objTicketRepository = new TicketRepository(_connStr); objLog.AddLogFile("Cogent success response preclosure", source, path, errorlogtf); if (response.StatusCode.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(response.StatusCode.ToString(), InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, response.StatusCode.ToString(), path, errorlogtf); } else { if (response.StatusCode.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(response.StatusCode.ToString(), InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, response.StatusCode.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (response.StatusCode == System.Net.HttpStatusCode.OK) { if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, "Success", model.AssignedToUserId); } } } if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, "Success", model.AssignedToUserId); } sr.Close(); } } catch (Exception Ex) { if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, Ex.Message, model.AssignedToUserId); } objLog.ErrorLogFile("InsertTicketDetailOnPreclousreInVECV", Ex.Message, path, errorlogtf); } } } else { try { DataSet ds3_ticket_info = null; NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", TicketIdAlias); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_details_Preclosure"], nSqlParam3_ticket_info); model.TicketIdAlias = ds3_ticket_info.Tables[0].Rows[0]["ticket_id"].ToString(); model.Description = ds3_ticket_info.Tables[0].Rows[0]["_nature_of_problem"].ToString(); model.DriverContactNo = ds3_ticket_info.Tables[0].Rows[0]["_driver_no"].ToString(); model.DriverName = ds3_ticket_info.Tables[0].Rows[0]["_driver_name"].ToString(); model.CustomerContactNo = ds3_ticket_info.Tables[0].Rows[0]["caller_number"].ToString(); string owner_name = ds3_ticket_info.Tables[0].Rows[0]["_owner_name"].ToString(); string owner_no = ds3_ticket_info.Tables[0].Rows[0]["_owner_number"].ToString(); string kam_name = ds3_ticket_info.Tables[0].Rows[0]["_kam_name"].ToString(); string kam_no = ds3_ticket_info.Tables[0].Rows[0]["kam_number"].ToString(); string fleet_name = ds3_ticket_info.Tables[0].Rows[0]["_fleet_manager_name"].ToString(); string fleet_no = ds3_ticket_info.Tables[0].Rows[0]["_fleet_manager_no"].ToString(); if (kam_no == "") { kam_no = "-"; } if (fleet_no == "") { fleet_no = "-"; } if (owner_no == "") { owner_no = "-"; } // Keep track of which numbers we've already seen HashSet seen = new HashSet(); // Helper to check and zero out duplicates string Deduplicate(string number) { if (string.IsNullOrWhiteSpace(number)) return "-"; if (seen.Contains(number)) return "-"; else { seen.Add(number); return number; } } // Apply deduplication in priority order kam_no = Deduplicate(kam_no); owner_no = Deduplicate(owner_no); fleet_no = Deduplicate(fleet_no); model.DriverContactNo = Deduplicate(model.DriverContactNo); string InsertTicketDetailOnPreclousreInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnPreclousreInVECV"].ToString(); InsertTicketDetailOnPreclousreInVECV = string.Format(InsertTicketDetailOnPreclousreInVECV, TicketIdAlias, typePreclosure, model.Description, remarks, "", "-", model.DriverName, model.DriverContactNo, owner_name, owner_no, fleet_name, fleet_no, kam_name, kam_no); objLog.AddLogFile("Cogent API preclosure url data send", InsertTicketDetailOnPreclousreInVECV, path, errorlogtf); if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnPreclosureInVECVBlocked"] != "true") { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(InsertTicketDetailOnPreclousreInVECV); request.Method = "POST"; request.Headers.Add("Authorization", "mwLqY1P7IebxNQXhZ9gB1KK"); request.ContentType = "application/json"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); TicketRepository objTicketRepository = new TicketRepository(_connStr); objLog.AddLogFile("Cogent success response preclosure", source, path, errorlogtf); if (response.StatusCode.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(response.StatusCode.ToString(), InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, response.StatusCode.ToString(), path, errorlogtf); } else { if (response.StatusCode.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(response.StatusCode.ToString(), InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, response.StatusCode.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", InsertTicketDetailOnPreclousreInVECV); objLog.ErrorLogFile(InsertTicketDetailOnPreclousreInVECV, "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (response.StatusCode == System.Net.HttpStatusCode.OK) { if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, "Success", model.AssignedToUserId); } } } if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, "Success", model.AssignedToUserId); } sr.Close(); } } } catch (Exception Ex) { if (model.IsMobileRequest == true) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "cogentpreclosure", true, Ex.Message, model.AssignedToUserId); } objLog.ErrorLogFile("InsertTicketDetailOnPreclousreInVECV", Ex.Message, path, errorlogtf); } } } // change by priya for cogent api 06-03-2023 public void EstimatedVanReachTimeDetailOnCreationInVECV(InsertOpenTicket model, string TicketIdAlias) { try { if (System.Configuration.ConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECVBlocked"] != "true") { string estimatedVanReachTimeDetailOnCreationInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["EstimatedVanReachTimeDetailOnCreationInVECV"].ToString(); // TicketRepository objTicket = new TicketRepository(_connStr); // oEscalationLevelOutputModel = objTicket.GetEscalationLevels(model); EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel(); List oEscalationLevelList = new List(); // getting escalation level from DB ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; ServicePointManager.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; estimatedVanReachTimeDetailOnCreationInVECV = string.Format(estimatedVanReachTimeDetailOnCreationInVECV, TicketIdAlias, model.VehicleRegistrationNumber, model.estimatedVAnReachTime, model.DriverContactNo, model.CustomerContactNo); //ticketnumber={0}&registrationnumber={1}&estimated_reach_time={2}&driver_contact={3}&owner_contact={4}&"/> HttpWebRequest request = (HttpWebRequest)WebRequest.Create(estimatedVanReachTimeDetailOnCreationInVECV); request.Method = "POST"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string source = sr.ReadToEnd(); sr.Close(); } } catch (Exception Ex) { objLog.ErrorLogFile("estimatedVanReachTimeDetailOnCreationInVECV", Ex.Message, path, TicketIdAlias); } } /// /// This method is used to Insert Open Ticket /// /// ticket info /// response SenderId which is generated by GCM and status 1 or 0 public InsertOpenTicket InsertKamDummyTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[37]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.CustomerContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimated_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_open_ticket_by_kam"], nSqlParam); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { objModel.KamTicketId = ds.Tables[0].Rows[0]["sp_insert_open_ticket_by_kam"].ToString(); // getting KAM ticket id objModel.Status = "1"; objModel.Message = "Success"; } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertKamDummyTicket", Ex.Message, path, errorlogtf); return objModel; } } /// /// This method is used to Insert Open Ticket /// /// ticket info /// response SenderId which is generated by GCM and status 1 or 0 public InsertOpenTicket InsertKamRealTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); string ticketIdAlias = null; // taking variable to store ticket Id alias if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[37]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.CustomerContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimate_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_open_ticket_by_kam_user"], nSqlParam); if (ds.Tables.Count > 0) { // send GCM msg to device. if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // getting ticket id alias if (ds.Tables[0].Rows[0]["_ticket_id"] != null && ds.Tables[0].Rows[0]["_ticket_id"].ToString() != "") { objModel.TicketId = ds.Tables[0].Rows[0]["_ticket_id"].ToString(); objModel.TicketIdAlias = ticketIdAlias; NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", objModel.TicketId); //Get Device GCm id for ticket. dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_service_engg_device_gcm_id"], nSqlParam1); if (dsGcm.Tables.Count > 0) { if (dsGcm.Tables[0].Rows.Count > 0) { //if (dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"] != null && dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString() != "") //{ // objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString(); // objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; // objGcmModel.TicketId = objModel.TicketId; // objGcmModel = objGlobalRepository.GcmSendNotification(objGcmModel); // objModel.SenderId = objGcmModel.SenderId; //} objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["_device_id"].ToString(); objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; objGcmModel.TicketId = objModel.TicketId; if (Convert.ToInt32(dsGcm.Tables[0].Rows[0]["_push_notification_bit"]) == 0) { //objGcmModel = objGlobalRepository.GcmSendNotification(objGcmModel); objGcmModel = objGlobalRepository.GcmSendNotificationNew(objGcmModel); objModel.SenderId = objGcmModel.SenderId; objModel.Status = objGcmModel.Status; } else { objGcmModel = objGlobalRepository.FcmSendNotification(objGcmModel); objModel.SenderId = objGcmModel.SenderId; objModel.Status = objGcmModel.Status; } } } } } } #region Sending SMS ( When ticket is assigned to Dealer ) if (model.TicketStatus == 2 && model.AssignedTo.Trim().ToUpper() == "DEALER") { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", objModel.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", objModel.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", objModel.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgCustforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforDealerTicket"].ToString(); string msgOwnerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOwnerforDealerTicket"].ToString(); string msgDealerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforDealerTicket"].ToString(); string msgWMforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforDealerTicket"].ToString(); string msgCSMforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforDealerTicket"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { msgWMforDealerTicket = string.Format(msgWMforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + "( " + ds.Tables[0].Rows[0]["customer_contact_no"].ToString() + " ) ", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgCustforDealerTicket = string.Format(msgCustforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ", ConfigurationManager.AppSettings["TollFreeNo"].ToString()); //msgOwnerforDealerTicket = string.Format(msgOwnerforDealerTicket, ticketIdAlias, // ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ", // ConfigurationManager.AppSettings["TollFreeNo"].ToString()); msgDealerforDealerTicket = string.Format(msgDealerforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + "( " + ds.Tables[0].Rows[0]["customer_contact_no"].ToString() + " ) ", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgCSMforDealerTicket = string.Format(msgCSMforDealerTicket, ticketIdAlias, //ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString() + ") ", ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgCustforDealerTicket); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforDealerTicket); //string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgOwnerforDealerTicket); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforDealerTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforDealerTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); //objGlobalRepository.SendMessage(OwnerSms); #region Sending sms to KAM when ticket is Assigned to Dealer and accepted // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", objModel.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamDealerAcceptedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamDealerAcceptedTicket"].ToString(); // set content in msg string dssmstime = getimeForSMS(model.TicketId); //if(model.) msgKamDealerAcceptedTicket = string.Format(msgKamDealerAcceptedTicket, ticketIdAlias, dssmstime.ToString(), // ticket id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // vehicle reg no ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ", // dealer name and city ConfigurationManager.AppSettings["TollFreeNo"].ToString() // Toll free no ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamDealerAcceptedTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables.Count > 0) { if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageAcceptKamDummyOrRealTicketByDealer"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageAcceptKamTicketByDealer"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } ; //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } } #endregion } } } #endregion } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.TicketIdAlias = ticketIdAlias; } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("TicketRepository InsertKamRealTicket", Ex.Message, path, errorlogtf); return objModel; } } /// /// To update open ticket for Web /// /// open ticket detail for updation /// response SenderId which is generated by GCM and status 1 or 0 /// /// To update open ticket for Web /// /// open ticket detail for updation /// response SenderId which is generated by GCM and status 1 or 0 public InsertOpenTicket UpdateOpenTicketWeb(InsertOpenTicket model) { string TicketPrevDealerCode = ""; string ticketIdAlias = ""; InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); try { objModel.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); DataSet ds_latest_ticket_activity = new DataSet(); objAuthorization = new AuthenticationRepository(); DataSet ds_kam_ticket_details = new DataSet(); string ctime = ""; string strTicketStatus = ""; if (objAuthorization.AuthenticateDevice(model.Token)) { #region for ticket info // get latest ticket activity for the ticket. try { NpgsqlParameter[] nSqlParam0 = new NpgsqlParameter[1]; nSqlParam0[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds_latest_ticket_activity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_activity"], nSqlParam0); if (ds_latest_ticket_activity.Tables[0].Rows.Count > 0) { model.TicketPrevStatusAliasId = ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_ticket_activity " + model.TicketId, Ex.Message, path, errorlogtf); // throw Ex; } try { DataSet dsOpentagging = new DataSet(); NpgsqlParameter[] nSqlParamopentagging = new NpgsqlParameter[1]; nSqlParamopentagging[0] = new NpgsqlParameter("inticketid ", model.TicketId); dsOpentagging = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_by_ticketid"], nSqlParamopentagging); if (dsOpentagging.Tables[0].Rows.Count > 0) { // ticketIdAlias = dsOpen.Tables[0].Rows[0]["_ticketid_alias"].ToString(); // getting ticket id alias // assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias model.VehicleTagging = dsOpentagging.Tables[0].Rows[0]["_vehicle_tagging"].ToString(); // getting ticket id alias // VehicleRegistrationNumber = dsOpen.Tables[0].Rows[0]["_vehicle_registration_number"].ToString(); // getting ticket id alias } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_open_ticket_by_ticketid " + model.TicketId, Ex.Message, path, errorlogtf); // throw Ex; } DataSet dsDealer = new DataSet(); try { NpgsqlParameter[] nSqlParam2_ticket_info_cogent = new NpgsqlParameter[3]; nSqlParam2_ticket_info_cogent[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info_cogent[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info_cogent[2] = new NpgsqlParameter("inticket_number", model.TicketId); dsDealer = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info_cogent); if (dsDealer.Tables[0].Rows.Count > 0) { TicketPrevDealerCode = Convert.ToString(dsDealer.Tables[0].Rows[0]["_dealer_code"].ToString()); ctime = (Convert.ToDateTime(dsDealer.Tables[0].Rows[0]["creation_time"].ToString()).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"])).ToString(); //ctime = Convert.ToString(dsDealer.Tables[0].Rows[0]["creation_time"].ToString()); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_details " + model.TicketId, Ex.Message, path, errorlogtf); // throw Ex; } #endregion #region Sending SMS EPS ( When ticket was Closed ) if (model.TicketStatus == 5 || model.TicketStatus == 7) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); //DataSet ds2 = new DataSet(); // NpgsqlParameter[] nSqlParamticketdetail = new NpgsqlParameter[1]; // nSqlParamticketdetail[0] = new NpgsqlParameter("inticket_number", model.TicketId); // ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParamticketdetail); DataSet dsEPS = new DataSet(); NpgsqlParameter[] nSqlParamEPSSMS = new NpgsqlParameter[1]; nSqlParamEPSSMS[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsEPS = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details"], nSqlParamEPSSMS); // string ticketIdAlias = ""; string msgDealerTicketCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCustomerClosure"].ToString(); string msgDealerTicketCloserForDealer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSDealerClosure"].ToString(); string msgDealerTicketCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCSMClosure"].ToString(); msgDealerTicketCloserForCustomer = string.Format(msgDealerTicketCloserForCustomer, ticketIdAlias, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")" ); // engine no if (model.AssignedTo.Trim().ToUpper() == "VAN") { msgDealerTicketCloserForDealer = string.Format(msgDealerTicketCloserForDealer, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + ") ", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgDealerTicketCloserForCSM = string.Format(msgDealerTicketCloserForCSM, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + ") ", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); } else { msgDealerTicketCloserForDealer = string.Format(msgDealerTicketCloserForDealer, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgDealerTicketCloserForCSM = string.Format(msgDealerTicketCloserForCSM, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); } string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgDealerTicketCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgDealerTicketCloserForCustomer); objGlobalRepository.SendMessage(CustomerSms); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgDealerTicketCloserForCustomer); objGlobalRepository.SendMessage(driverSms); string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgDealerTicketCloserForDealer); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgDealerTicketCloserForDealer); objGlobalRepository.SendMessage(WMsms); } } } #endregion #region Sending SMS ( When ticket was assigned to Van and Closed ) if ((model.TicketStatus == 5 || model.TicketStatus == 7) && model.AssignedTo.Trim().ToUpper() == "VAN") { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { } else { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_contact_details_for_sms_api " + model.TicketId, Ex.Message, path, errorlogtf); // throw Ex; } // get sms content details. try { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_details " + model.TicketId, Ex.Message, path, errorlogtf); //throw Ex; } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise " + model.TicketId, Ex.Message, path, errorlogtf); // throw Ex; } //get sending sms api url. // get msg format string msgVanTicketCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketCloserForWM"].ToString(); string msgVanTicketCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketCloserForCSM"].ToString(); //-----------------added on 18-12-2020 (start)---------------------------------------- // get msg format for customer and owner string msgVanTicketPreCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCustomer"].ToString(); string msgVanTicketPreCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForOwner"].ToString(); //-----------------added on 18-12-2020 (end)------------------------------------------ if (ds.Tables[0].Rows.Count > 0) { if (model.TicketStatus == 7) //added on 18-12-2020 { //added on 18-12-2020 //string[] id = model.TicketId.Split('-'); msgVanTicketCloserForWM = string.Format(msgVanTicketCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + ") ", // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketCloserForCSM = string.Format(msgVanTicketCloserForCSM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + ") ", // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketCloserForWM); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } //objGlobalRepository.SendMessage(DealerSms); } //added on 18-12-2020 //-----------------------added on 18-12-2020 (start) ------------------------------------- //added this condition to send sms to customer and owner on ticket closure else { msgVanTicketCloserForWM = string.Format(msgVanTicketCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + ") ", // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketCloserForCSM = string.Format(msgVanTicketCloserForCSM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + ") ", // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketPreCloserForCustomer = string.Format(msgVanTicketPreCloserForCustomer, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() // Dealer Name, Dealer City ); msgVanTicketPreCloserForOwner = string.Format(msgVanTicketPreCloserForOwner, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString());// Dealer Name, Dealer City string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketCloserForWM); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketPreCloserForCustomer); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketPreCloserForOwner); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } // objGlobalRepository.SendMessage(DealerSms); objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(OwnerSms); } //-----------------------added on 18-12-2020 (end) ------------------------------------- } } } #endregion #region Sending SMS ( When ticket was assigned to Dealer and Closed ) if ((model.TicketStatus == 5 || model.TicketStatus == 7) && model.AssignedTo.Trim().ToUpper() == "DEALER") { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { } else { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_contact_details_for_sms_api assigned to Dealer and Closed " + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } try { // get sms content details. NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_details assigned to Dealer and Closed" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise assigned to Dealer and Closed " + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } //get sending sms api url. // get msg format string msgDealerTicketCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerTicketCloserForCustomer"].ToString(); string msgDealerTicketCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerTicketCloserForOwner"].ToString(); string msgDealerTicketCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerTicketCloserForWM"].ToString(); string msgDealerTicketCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerTicketCloserForCSM"].ToString(); if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgDealerTicketCloserForCustomer = string.Format(msgDealerTicketCloserForCustomer, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ");// Dealer Name, Dealer City msgDealerTicketCloserForOwner = string.Format(msgDealerTicketCloserForOwner, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ");// Dealer Name, Dealer City msgDealerTicketCloserForWM = string.Format(msgDealerTicketCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(),// Dealer Name, Dealer City ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgDealerTicketCloserForCSM = string.Format(msgDealerTicketCloserForCSM, ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(),// Dealer Name, Dealer City ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgDealerTicketCloserForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerTicketCloserForWM); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgDealerTicketCloserForOwner); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgDealerTicketCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgDealerTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgDealerTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); // objGlobalRepository.SendMessage(DealerSms); objGlobalRepository.SendMessage(OwnerSms); } } } #endregion #region Sending SMS ( When is in preclosure and assigned or in progress ) if (model.TicketPrevStatusAliasId == "4" && (model.TicketStatus == 2 || model.TicketStatus == 3)) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { } else { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api", ex.Message, this.path, this.errorlogtf); } ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. try { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); } else { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); } } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_details", ex.Message, this.path, this.errorlogtf); } try { NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise", ex.Message, this.path, this.errorlogtf); } if (model.AssignedToUserId == null) { model.AssignedToUserId = ds1.Tables[0].Rows[0]["assigned_to_user_id"].ToString(); } else { } if (TicketPrevDealerCode == model.AssignedToUserId) { } else { if (model.AssignedTo.ToLower() == "van") { } else { if (model.TicketStatus == 2) { InsertTicketDetailOnCreationInVECV(model, model.TicketIdAlias, objModel.TicketId, model.AssignedToUserId); } } } // get msg format string msgDealerTicketCloserForCustomer = ""; string msgDealerTicketCloserForOwner = ""; string msgDealerTicketCloserForWM = ""; string msgDealerTicketCloserForCSM = ""; if (ds.Tables[0].Rows.Count > 0) { string creationDateAndTime = ds1.Tables[0].Rows[0]["last_modified_time"].ToString(); string creationDate = ""; string creationTime = ""; if (!string.IsNullOrEmpty(creationDateAndTime)) { DateTime dt = DateTime.Parse(creationDateAndTime).AddMinutes(model.UtcMinute); creationDate = dt.ToString("dd/MM"); creationTime = dt.ToString("HH:mm"); } msgDealerTicketCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgReopenPreclousre"].ToString(); msgDealerTicketCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgReopenPreclousre"].ToString(); //string[] id = model.TicketId.Split('-'); msgDealerTicketCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgReopenPreclousre"].ToString(); msgDealerTicketCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgReopenPreclousre"].ToString(); msgDealerTicketCloserForCustomer = string.Format(msgDealerTicketCloserForCustomer, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " at " + creationDate + " " + creationTime ); ; msgDealerTicketCloserForWM = string.Format(msgDealerTicketCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " at " + creationDate + " " + creationTime ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgDealerTicketCloserForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerTicketCloserForCustomer); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgDealerTicketCloserForCustomer); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgDealerTicketCloserForCustomer); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgDealerTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgDealerTicketCloserForWM); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); // objGlobalRepository.SendMessage(OwnerSms); } NpgsqlParameter[] nSqlParamreClousre = new NpgsqlParameter[1]; nSqlParamreClousre[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_ticket_reopen_count"], nSqlParamreClousre); } } #endregion #region for update ticket if (model.TicketStatus == 5) { model._24HrsReason = null; } DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_Cogent_API_By_ticketId"], nSqlParamopen); if (dsOpen.Tables[0].Rows.Count > 0) { strTicketStatus = dsOpen.Tables[0].Rows[0]["_ticket_status"].ToString(); } // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[37]; //increase count on 18-12-2020 nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[8] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", model.Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[19] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[20] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[21] = new NpgsqlParameter("insla_missed_reason", model.SlaMissedReason); nSqlParam[22] = new NpgsqlParameter("insuggestion_comment", model.SuggestionComment); nSqlParam[23] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[24] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[25] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[26] = new NpgsqlParameter("inopportunity_loss", model.OpportunityLost); nSqlParam[27] = new NpgsqlParameter("inreason_for_more_then_24hours", model._24HrsReason); nSqlParam[28] = new NpgsqlParameter("inestimated_distance", model.EstimateDistance); nSqlParam[29] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); nSqlParam[30] = new NpgsqlParameter("inchassis_number", model.ChassisNo); nSqlParam[31] = new NpgsqlParameter("inodometer_reading", model.OdometerReading); nSqlParam[32] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[33] = new NpgsqlParameter("inprevious_odometer_reading", model.PreviousOdometerReading); nSqlParam[34] = new NpgsqlParameter("inticket_closed_reason", model.TicketClosedReason); //added on 18-12-2020 nSqlParam[35] = new NpgsqlParameter("inIsMobileRequest", model.IsMobileRequest); nSqlParam[36] = new NpgsqlParameter("inpreclosure_reason", model.preclosure_reason); //added on 18-12-2020 // ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_ticket_ticket_id"], nSqlParam); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_open_ticket_status"], nSqlParam); objLog.AddLogFile("EPS Mail", model.VehicleTagging.ToLower(), path, errorlogtf); objLog.AddLogFile("EPS Mail ticket status", model.TicketStatus.ToString(), path, errorlogtf); #endregion #region send email eps string strVanReach = ""; if (model.TicketStatus == 7) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { objLog.AddLogFile("EPS Mail yes", model.TicketId, path, errorlogtf); string isSend = sendEPSClosureTicketmail(model.TicketId); } } if (model.TicketStatus == 5) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { objLog.AddLogFile("EPS Mail yes", model.TicketId, path, errorlogtf); string isSend = sendEPSClosureTicketmail(model.TicketId); } // DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParamclose = new NpgsqlParameter[1]; nSqlParamclose[0] = new NpgsqlParameter("inticket_id ", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_reach_time_close"], nSqlParamclose); if (ds == null) { } else { if (ds.Tables[0].Rows.Count > 0) { strVanReach = Convert.ToString(ds.Tables[0].Rows[0]["_creation_time"]) == "" ? "" : Convert.ToDateTime(ds.Tables[0].Rows[0]["_creation_time"]).ToString(System.Configuration.ConfigurationManager.AppSettings["DateTimeFormatSAP"]); } } } #endregion #region for GCM try { if (model.TicketId != null && model.TicketId != "") { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); // Get device GCM id for a ticket. dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_service_engg_device_gcm_id"], nSqlParam1); string tagging = ""; if (dsGcm.Tables[0].Rows.Count > 0) { objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["_device_id"].ToString(); if (model.TicketStatus == 1) { objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageInsert"]; } else { objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageUpdate"]; } objGcmModel.TicketId = model.TicketId; objGcmModel.TicketStatus = model.TicketStatus.ToString(); objGcmModel.PrevTicketStatus = model.TicketPrevStatusAliasId; if (objGcmModel.TicketStatus == "2" && objGcmModel.PrevTicketStatus == "1") { string userlan = ""; TicketRepository objTicketRepository = new TicketRepository(_connStr); string userlanguage = objTicketRepository.getLanguage(model); string[] stusrlan = userlanguage.Split(','); userlan = stusrlan[0].ToString(); tagging = stusrlan[1].ToString(); string notiifcation = "false"; if (userlan.ToLower() == "kannada") { string Notificationmsg = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationKannada"].ToString(); Notificationmsg = string.Format(Notificationmsg); objGcmModel.NotificationMessage = Notificationmsg; notiifcation = "true"; } if (userlan.ToLower() == "english") { string Notificationmsg = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationEnglish"].ToString(); Notificationmsg = string.Format(Notificationmsg); objGcmModel.NotificationMessage = Notificationmsg; notiifcation = "true"; } if (userlan.ToLower() == "tamil") { string Notificationmsg = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationTamil"].ToString(); Notificationmsg = string.Format(Notificationmsg); objGcmModel.NotificationMessage = Notificationmsg; notiifcation = "true"; } if (userlan.ToLower() == "telugu") { string Notificationmsg = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationTelugu"].ToString(); Notificationmsg = string.Format(Notificationmsg); objGcmModel.NotificationMessage = Notificationmsg; notiifcation = "true"; } if (userlan.ToLower() == "malayalam") { string Notificationmsg = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationMalayalam"].ToString(); Notificationmsg = string.Format(Notificationmsg); objGcmModel.NotificationMessage = Notificationmsg; notiifcation = "true"; } if (notiifcation == "false") { string NotificationHindi = System.Web.Configuration.WebConfigurationManager.AppSettings["NotificationHindi"].ToString(); NotificationHindi = string.Format(NotificationHindi); objGcmModel.NotificationMessage = NotificationHindi; } } //"New EOS Ticket 🎟️ \"" + model.TicketIdAlias + "\" is assigned on 🕒 \"" + ctime + "\".Please act accordingly ⚠️"; objGcmModel.title = "🚨 " + tagging + " New EOS Ticket 🚨 - 🎟️ " + model.TicketIdAlias + " "; // objGcmModel.NotificationMessage= "New EOS 🎫 ticket " + model.TicketIdAlias+" is assigned on "+ctime + ".Please act accordingly"; objGcmModel.TicketStatus = model.TicketStatus.ToString(); objGcmModel.PrevTicketStatus = model.TicketPrevStatusAliasId; if (Convert.ToInt32(dsGcm.Tables[0].Rows[0]["_push_notification_bit"]) == 0) { objGcmModel = objGlobalRepository.GcmSendNotificationNew(objGcmModel); // objGcmModel = objGlobalRepository.GcmSendNotificationNew(objGcmModel); objModel.SenderId = objGcmModel.SenderId; objModel.Status = objGcmModel.Status; } } } objLog.AddLogFile("GcmSendNotification Notification", objGcmModel.SenderId, path, errorlogtf); objLog.AddLogFile("GcmSendNotification Notification", objGcmModel.NotificationMessage, path, errorlogtf); } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GcmSendNotification updateopenticektweb", Ex.Message, path, errorlogtf); throw Ex; } #endregion #region for dbm objLog.AddLogFile("DBM Log update open ticket", model.AssignedTo, path, errorlogtf); objLog.AddLogFile("DBM Log update open ticket", model.TicketStatus.ToString(), path, errorlogtf); if (model.TicketStatus == 8) { UdanPushData.SendDataToSAP(null, model.TicketStatus, model.TicketId, strVanReach); } else if (model.TicketStatus == 5) { UdanPushData.SendDataToSAP(null, model.TicketStatus, model.TicketId, strVanReach); } //added on 1/10/2020 else if (model.AssignedTo == "van") { if (model.TicketStatus == 1) { objLog.AddLogFile("DBM Log update open ticket 4", model.VehicleRegistrationNumber.ToString(), path, errorlogtf); UdanPushData.SendDataToSAP(model.VehicleRegistrationNumber, model.TicketStatus, "", strVanReach); } } else if (model.AssignedTo == "dealer") { if (model.TicketStatus == 2) { objLog.AddLogFile("DBM Log update open ticket 5", model.VehicleRegistrationNumber.ToString(), path, errorlogtf); UdanPushData.SendDataToSAP(model.VehicleRegistrationNumber, model.TicketStatus, "", strVanReach); } } #endregion // Send GCM msg to device #region Sending SMS ( SCV assignrd to van) /* if ((model.TicketPrevStatusAliasId == "1") && (model.TicketStatus == 2 && model.AssignedTo.Trim().ToUpper() == "VAN")) { if (model.TicketIdAlias.ToLower().Contains("p")) { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); DataSet ds3_ticket_comment = new DataSet(); try { NpgsqlParameter[] nSqlParamcomment = new NpgsqlParameter[1]; nSqlParamcomment[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds3_ticket_comment = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_assigned_comment_van"], nSqlParamcomment); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_assigned_comment_van" + model.TicketId, ex.Message, this.path, this.errorlogtf); } try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api" + model.TicketId, ex.Message, this.path, this.errorlogtf); } if (ds3_ticket_info.Tables[0].Rows.Count > 0) { ticketIdAlias = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); } else { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api no data" + model.TicketId, "no data", this.path, this.errorlogtf); } try { // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_details" + model.TicketId, ex.Message, this.path, this.errorlogtf); } try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string newdealerCode = ds2_ticket_info.Tables[0].Rows[0]["dealer_id"].ToString(); string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicketwithOTP"].ToString(); DataSet ds1 = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); if (Convert.ToInt32(ds1.Tables[0].Rows[0][0]) != null && Convert.ToInt32(ds1.Tables[0].Rows[0][0]) != 0) { //msgCustforVanTicket += "Plesae Share the Happy Code with the VAN Code-" + ds1.Tables[0].Rows[0][0]; } } string msgOwnerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOwnerforVanTicket"].ToString(); string msgDealerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforVanTicket"].ToString(); string msgWMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforVanTicket"].ToString(); string msgCSMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforVanTicket"].ToString(); if (ds3_ticket_info.Tables[0].Rows.Count > 0) { msgCustforVanTicket = string.Format(msgCustforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ConfigurationManager.AppSettings["TollFreeNo"].ToString(),// Toll free number ds1.Tables[0].Rows[0][0]); // Toll free number); //added on 04-03-2021 //mobileOtp = Convert.ToInt32(dsGcm.Tables[0].Rows[0]["sp_create_ticket_otp"]); DataSet dsmobileotp = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); dsmobileotp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); } string dssmstime = getimeForSMS(model.TicketId); DataSet ds2_titan_info = new DataSet(); try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_titan_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string str = ds2_titan_info.Tables[0].Rows[0]["_model_number"].ToString().ToLower(); string substring = "titan"; if (str.Contains(substring)) { string strurl = Encrypt(ticketIdAlias, "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; //smsSentUrl= smsSentUrl.Replace("%3D","="); string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgTitanCreationVan"].ToString(); msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ticketIdAlias, dssmstime.ToString(), ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), dsmobileotp.Tables[0].Rows[0][0], smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objLog.AddLogFile("OwnerSms", OwnerSms, path, errorlogtf); objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(OwnerSms); } } } }*/ #endregion #region Sending SMS ( When ticket is assigned to Van first time ) if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "1") && (model.TicketStatus == 2) && model.AssignedTo.Trim().ToUpper() == "VAN") { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { DataSet ds3_ticket_comment = new DataSet(); try { NpgsqlParameter[] nSqlParamcomment = new NpgsqlParameter[1]; nSqlParamcomment[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds3_ticket_comment = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_assigned_comment_van"], nSqlParamcomment); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_assigned_comment_van" + model.TicketId, ex.Message, this.path, this.errorlogtf); } #region sending SMS DataSet ds1 = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); DataSet dsEPS = new DataSet(); NpgsqlParameter[] nSqlParamEPS = new NpgsqlParameter[1]; nSqlParamEPS[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsEPS = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details"], nSqlParamEPS); ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); string dssmstime = getimeForSMS(model.TicketId); NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); DataSet dsmobileotp = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); dsmobileotp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); } DataSet ds3_ticket_info = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1info = new NpgsqlParameter[2]; nSqlParam1info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1info[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1info); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string msgEPSCustomerVanAssignment = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCustomerVanAssignment"].ToString(); string msgEPSDealerVanAssignment = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSDealerVanAssignment"].ToString(); string msgEPSCSMVanAssignment = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCSMVanAssignment"].ToString(); string msgEPSTechVanAssignment = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSTechVanAssignment"].ToString(); msgEPSCustomerVanAssignment = string.Format(msgEPSCustomerVanAssignment, ticketIdAlias, dssmstime, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")",// engine no ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString() + ")", ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")", dsmobileotp.Tables[0].Rows[0][0]// dealer name wm no ); // engine no msgEPSDealerVanAssignment = string.Format(msgEPSDealerVanAssignment, ticketIdAlias, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " (" + ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString() + ")", ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() ,// dealer name wm no ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgEPSCSMVanAssignment = string.Format(msgEPSCSMVanAssignment, ticketIdAlias, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")",// dealer name wm no ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgEPSTechVanAssignment = string.Format(msgEPSTechVanAssignment, ticketIdAlias, ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgEPSCSMVanAssignment); objGlobalRepository.SendMessage(CSMsms); } string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgEPSCustomerVanAssignment); objGlobalRepository.SendMessage(CustomerSms); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgEPSCustomerVanAssignment); objGlobalRepository.SendMessage(driverSms); string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgEPSDealerVanAssignment); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgEPSDealerVanAssignment); objGlobalRepository.SendMessage(WMsms); } string TechSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), msgEPSTechVanAssignment); objGlobalRepository.SendMessage(TechSms); #endregion } else { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); DataSet ds3_ticket_comment = new DataSet(); try { NpgsqlParameter[] nSqlParamcomment = new NpgsqlParameter[1]; nSqlParamcomment[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds3_ticket_comment = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_assigned_comment_van"], nSqlParamcomment); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_assigned_comment_van" + model.TicketId, ex.Message, this.path, this.errorlogtf); } try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api" + model.TicketId, ex.Message, this.path, this.errorlogtf); } if (ds3_ticket_info.Tables[0].Rows.Count > 0) { ticketIdAlias = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); } else { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_contact_details_for_sms_api no data" + model.TicketId, "no data", this.path, this.errorlogtf); } try { if (ticketIdAlias.Contains('P') == true) { nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam[3] = new NpgsqlParameter("inEngineNumber", null); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam); } else { // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_details" + model.TicketId, ex.Message, this.path, this.errorlogtf); } try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string newdealerCode = ds2_ticket_info.Tables[0].Rows[0]["dealer_id"].ToString(); InsertTicketDetailOnCreationInVECV(model, model.TicketIdAlias, model.TicketId, newdealerCode); // get msg format // ------------- modified on 04-03-2021 start ----------------------------------- //string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicket"].ToString(); string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicketwithOTP"].ToString(); DataSet ds1 = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); if (Convert.ToInt32(ds1.Tables[0].Rows[0][0]) != null && Convert.ToInt32(ds1.Tables[0].Rows[0][0]) != 0) { //msgCustforVanTicket += "Plesae Share the Happy Code with the VAN Code-" + ds1.Tables[0].Rows[0][0]; } } // ------------- modified on 04-03-2 string msgOwnerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOwnerforVanTicket"].ToString(); string msgDealerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforVanTicket"].ToString(); string msgWMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforVanTicket"].ToString(); string msgCSMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforVanTicket"].ToString(); if (ds3_ticket_info.Tables[0].Rows.Count > 0) { //vehicle_registration_number msgCustforVanTicket = string.Format(msgCustforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ConfigurationManager.AppSettings["TollFreeNo"].ToString(),// Toll free number ds1.Tables[0].Rows[0][0]); // Toll free number); //added on 04-03-2021 //mobileOtp = Convert.ToInt32(dsGcm.Tables[0].Rows[0]["sp_create_ticket_otp"]); DataSet dsmobileotp = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); dsmobileotp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); } string dssmstime = getimeForSMS(model.TicketId); DataSet ds2_titan_info = new DataSet(); try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_titan_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string str = ds2_titan_info.Tables[0].Rows[0]["_model_number"].ToString().ToLower(); string substring = "titan"; if (str.Contains(substring)) { string strurl = Encrypt(ticketIdAlias, "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; //smsSentUrl= smsSentUrl.Replace("%3D","="); string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgTitanCreationVan"].ToString(); msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ticketIdAlias, dssmstime.ToString(), ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), dsmobileotp.Tables[0].Rows[0][0], smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objLog.AddLogFile("OwnerSms", OwnerSms, path, errorlogtf); objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(OwnerSms); } else { msgOwnerforVanTicket = string.Format(msgOwnerforVanTicket, ticketIdAlias, dssmstime.ToString(), ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds2_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), dsmobileotp.Tables[0].Rows[0][0]); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgOwnerforVanTicket); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgOwnerforVanTicket); objGlobalRepository.SendMessage(OwnerSms); objGlobalRepository.SendMessage(CustomerSms); } // ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(), // breakdown location // ConfigurationManager.AppSettings["TollFreeNo"].ToString()); // toll free number msgDealerforVanTicket = string.Format(msgDealerforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgWMforVanTicket = string.Format(msgWMforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgCSMforVanTicket = string.Format(msgCSMforVanTicket, ticketIdAlias, // Ticket ID ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle registration number ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + ") ",// Dealer Name, Dealer City ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string DealerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforVanTicket); //Service Engineer SMS Added on 06-03- 2021 string ServiceEngineerSMS = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), msgDealerforVanTicket); // get all contact no split in array. string[] CSMContactNo = ds3_ticket_info.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforVanTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds3_ticket_info.Tables[0].Rows[0]["wm_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } NpgsqlParameter[] nSqlParammodelno = new NpgsqlParameter[1]; nSqlParammodelno[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet dsmodelno = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_model_number_by_ticket_id"], nSqlParammodelno); string vehiclemodelno = ""; if (dsmodelno.Tables[0].Rows.Count > 0) { vehiclemodelno = dsmodelno.Tables[0].Rows[0]["_model_no"].ToString(); } if (vehiclemodelno == "6016" || vehiclemodelno == "6019") { DataSet dsbusspoke = new DataSet(); NpgsqlParameter[] nSqlParamdsbusspoke = new NpgsqlParameter[1]; nSqlParamdsbusspoke[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsbusspoke = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_details_bus_spoke"], nSqlParamdsbusspoke); string[] BusSpokeContactNo = dsbusspoke.Tables[0].Rows[0]["_bus_spoke_contact_no"].ToString().Split(','); string[] BusSpokeContactNo2 = dsbusspoke.Tables[0].Rows[0]["_bus_spoke_contact_no2"].ToString().Split(','); for (int i = 0; i < BusSpokeContactNo.Count(); i++) { string WMsms = string.Format(url, BusSpokeContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } for (int i = 0; i < BusSpokeContactNo2.Count(); i++) { string WMsms = string.Format(url, BusSpokeContactNo2[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } } string[] SiteIchargeContactNo = ds3_ticket_info.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(DealerSms); objGlobalRepository.SendMessage(ServiceEngineerSMS);//Service Engineer SMS Added on 06-03- 2021 #region Sending sms to KAM when ticket is assigned to Van and accepted // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); #endregion } } } #endregion #region Sending SMS ( When ticket was assigned to Van and Van reached ) // (For first time message sending when status is changed to In Progress) if (ds_latest_ticket_activity.Tables[0].Rows.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "2") && (model.TicketStatus == 3) && model.AssignedTo.Trim().ToUpper() == "VAN") { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { } else { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_contact_details_for_sms_api assigned to Van and Van reached" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); try { // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_details assigned to Van and Van reached" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise assigned to Van and Van reached" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } // get msg format string msgVanTicketVanReachedForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCustomer"].ToString(); string msgVanTicketVanReachedForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForWM"].ToString(); string msgVanTicketVanReachedForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCSM"].ToString(); if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanTicketVanReachedForCustomer = string.Format(msgVanTicketVanReachedForCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanTicketVanReachedForWM = string.Format(msgVanTicketVanReachedForWM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgVanTicketVanReachedForCSM = string.Format(msgVanTicketVanReachedForCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(),// Dealer Name, Dealer City ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketVanReachedForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketVanReachedForWM); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketVanReachedForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); #region Sending sms to KAM when ticket is Assigned to Van and Van reached try { // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_check_kam_ticket_or_not assigned to Van and Van reached" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamVanReachedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamVanReachedTicket"].ToString(); // set content in msg msgKamVanReachedTicket = string.Format(msgKamVanReachedTicket, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26") // breakdown location ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamVanReachedTicket); objGlobalRepository.SendMessage(KamSms); } #endregion } } } } #endregion #region Sending SMS ( When ticket was assigned to Van and is in Pre-Closure ) // For the first time message sending when ticket status is PreClosure first time if (model.TicketStatus == 4) { if (model.TicketStatus.ToString() == model.TicketPrevStatusAliasId) { } else { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { // DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); //DataSet ds2 = new DataSet(); //NpgsqlParameter[] nSqlParamticketdetail = new NpgsqlParameter[1]; //nSqlParamticketdetail[0] = new NpgsqlParameter("inticket_number", model.TicketId); //ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParamticketdetail); DataSet dsEPS = new DataSet(); NpgsqlParameter[] nSqlParamEPSSMS = new NpgsqlParameter[1]; nSqlParamEPSSMS[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsEPS = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details"], nSqlParamEPSSMS); // string ticketIdAlias = ""; string msgEPSDealerPreclosure = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSDealerPreclosure"].ToString(); string msgEPSCSMPreclosure = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCSMPreclosure"].ToString(); ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); msgEPSDealerPreclosure = string.Format(msgEPSDealerPreclosure, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgEPSCSMPreclosure = string.Format(msgEPSCSMPreclosure, ticketIdAlias, ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")", dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgEPSCSMPreclosure); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgEPSDealerPreclosure); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgEPSDealerPreclosure); objGlobalRepository.SendMessage(WMsms); } string typePreclosure = ""; if (model.TicketStatus.ToString() == strTicketStatus) { } else { if (model.preclosure_reason == "Closure Request") { typePreclosure = "closure"; } if (model.preclosure_reason == "Reassignment Request") { typePreclosure = "reassign"; } } InsertTicketDetailOnPreclousreInVECV(model, ticketIdAlias, typePreclosure, model.SuggestionComment); } else { DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_contact_details_for_sms_api is in Pre-Closure" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } if (ds != null && ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); } try { // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_details is in Pre-Closure" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise is in Pre-Closure" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } // get msg format string msgVanTicketPreCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCustomer"].ToString(); string msgVanTicketPreCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForOwner"].ToString(); string msgVanTicketPreCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForWM"].ToString(); string msgVanTicketPreCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCSM"].ToString(); if (ds.Tables[0].Rows.Count > 0) { msgVanTicketPreCloserForCustomer = string.Format(msgVanTicketPreCloserForCustomer, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") "// Dealer Name, Dealer City ); msgVanTicketPreCloserForWM = string.Format(msgVanTicketPreCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketPreCloserForCSM = string.Format(msgVanTicketPreCloserForCSM, ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketPreCloserForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketPreCloserForWM); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketPreCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string typePreclosure = ""; if (model.TicketStatus.ToString() == strTicketStatus) { } else { if (model.preclosure_reason == "Closure Request") { typePreclosure = "closure"; } if (model.preclosure_reason == "Reassignment Request") { typePreclosure = "reassign"; } InsertTicketDetailOnPreclousreInVECV(model, ticketIdAlias, typePreclosure, model.SuggestionComment); } #region Sending sms to KAM when ticket is Asigned to Van and in Preclosure try { // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_check_kam_ticket_or_not is in preclose" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } //============================================================================================= string msgKamPreClosureTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamPreClosureTicket"].ToString(); // set content in msg msgKamPreClosureTicket = string.Format(msgKamPreClosureTicket, ticketIdAlias, // ticket id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // vehicle reg no. ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + " )" // Dealer Name, Dealer City ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamPreClosureTicket); // objGlobalRepository.SendMessage(KamSms); //============================================================================================= // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessagePreClosureKamTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias, ConfigurationManager.AppSettings["TollFreeNo"].ToString()); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessagePreClosureKamTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } #endregion } } } } #endregion #region Sending SMS ( When ticket is assigned to Dealer ) if ((model.TicketPrevStatusAliasId == "6") && (model.TicketStatus == 2 && model.AssignedTo.Trim().ToUpper() == "DEALER")) { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { try { DataSet dscomments = new DataSet(); NpgsqlParameter[] nSqlParamcomment = new NpgsqlParameter[1]; nSqlParamcomment[0] = new NpgsqlParameter("inticket_id", model.TicketId); dscomments = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_assigned_comment"], nSqlParamcomment); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_assigned_comment When ticket is assigned to Dealer" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } if (TicketPrevDealerCode == model.AssignedToUserId) { } else { InsertTicketDetailOnCreationInVECV(model, ticketIdAlias, model.TicketId, model.AssignedToUserId); } #region sending SMS DataSet ds1 = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); DataSet dsEPS = new DataSet(); NpgsqlParameter[] nSqlParamEPS = new NpgsqlParameter[1]; nSqlParamEPS[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsEPS = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details"], nSqlParamEPS); ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); string dssmstime = getimeForSMS(model.TicketId); NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); string msgOwnerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCustomerDealerAssignment"].ToString(); string msgDealerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSDealerDealerAssignment"].ToString(); string msgCSMforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgEPSCSMDealerAssignment"].ToString(); msgOwnerforDealerTicket = string.Format(msgOwnerforDealerTicket, ticketIdAlias, dssmstime, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")",// engine no ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")"// dealer name wm no ); // engine no msgDealerforDealerTicket = string.Format(msgDealerforDealerTicket, ticketIdAlias, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")",// dealer name wm no ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgCSMforDealerTicket = string.Format(msgCSMforDealerTicket, ticketIdAlias, dsEPS.Tables[0].Rows[0]["product_type"].ToString(), "(" + dsEPS.Tables[0].Rows[0]["engine_number"].ToString() + ")", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["wm_contact_no"].ToString() + ")",// dealer name wm no ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforDealerTicket); objGlobalRepository.SendMessage(CSMsms); } string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgOwnerforDealerTicket); objGlobalRepository.SendMessage(CustomerSms); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgOwnerforDealerTicket); objGlobalRepository.SendMessage(driverSms); string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgDealerforDealerTicket); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgDealerforDealerTicket); objGlobalRepository.SendMessage(WMsms); } #endregion } else { //cogent api try { DataSet dscomments = new DataSet(); NpgsqlParameter[] nSqlParamcomment = new NpgsqlParameter[1]; nSqlParamcomment[0] = new NpgsqlParameter("inticket_id", model.TicketId); dscomments = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_assigned_comment"], nSqlParamcomment); } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb usp_get_assigned_comment When ticket is assigned to Dealer" + model.TicketId, Ex.Message, path, errorlogtf); throw Ex; } try { // DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); // DataSet ds = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); // get sms content details. if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[4]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam2_ticket_info[3] = new NpgsqlParameter("inEngineNumber", null); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam2_ticket_info); } else { NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); } ticketIdAlias = ds1.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); /* NpgsqlParameter[] nSqlParamopendealer = new NpgsqlParameter[3]; nSqlParamopendealer[0] = new NpgsqlParameter("inregistration_number", null); nSqlParamopendealer[1] = new NpgsqlParameter("inmobile_number", null); nSqlParamopendealer[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParamopendealer); */ NpgsqlParameter[] nSqlParamticketdetail = new NpgsqlParameter[1]; nSqlParamticketdetail[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParamticketdetail); string msgCustforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforDealerTicketwithOTP"].ToString(); // -------------- modify on 04-03-2021 end ----------------- string msgOwnerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOwnerforDealerTicket"].ToString(); string msgDealerforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforDealerTicket"].ToString(); string msgCSMforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforDealerTicket"].ToString(); string msgWMforDealerTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforDealerTicket"].ToString(); if (ds.Tables[0].Rows.Count > 0) { // -------------- added on 04-03-2021 start ----------------- DataSet dsmobileotp = new DataSet(); if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam2 = new NpgsqlParameter[2]; nSqlParam2[0] = new NpgsqlParameter("inticket_id", ticketIdAlias); nSqlParam2[1] = new NpgsqlParameter("in_van_id", ""); dsmobileotp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam2); } // -------------- added on 04-03-2021 end ----------------- msgCustforDealerTicket = string.Format(msgCustforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ", ConfigurationManager.AppSettings["TollFreeNo"].ToString(), dsmobileotp.Tables[0].Rows[0][0]); // added on 04-03-2021 msgDealerforDealerTicket = string.Format(msgDealerforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + "( " + ds.Tables[0].Rows[0]["customer_contact_no"].ToString() + " ) ", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgWMforDealerTicket = string.Format(msgWMforDealerTicket, ticketIdAlias, ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() + "( " + ds.Tables[0].Rows[0]["customer_contact_no"].ToString() + " ) ", ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgCSMforDealerTicket = string.Format(msgCSMforDealerTicket, ticketIdAlias, //ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString() + ") ", ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString() ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforDealerTicket); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforDealerTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforDealerTicket); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgWMforDealerTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(DealerSms); string msgdriverownerAcceptedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamDealerAcceptedTicket"].ToString(); // set content in msg string dssmstime = getimeForSMS(model.TicketId); DataSet ds2_titan_info1 = new DataSet(); try { nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_titan_info1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } catch (Exception ex) { objLog.ErrorLogFile("UpdateOpenTicketWeb usp_get_customer_open_ticket_full_details_ticket_wise" + model.TicketId, ex.Message, this.path, this.errorlogtf); } string str = ds2_titan_info1.Tables[0].Rows[0]["_model_number"].ToString().ToLower(); string substring = "titan"; if (str.Contains(substring)) { string strurl = Encrypt(ticketIdAlias, "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; //smsSentUrl= smsSentUrl.Replace("%3D","="); string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgTitanCreationDealer"].ToString(); msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ticketIdAlias, dssmstime.ToString(), ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), "(" + ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString() + ")", smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(driverSms); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(CustomerSms); //objLog.AddLogFile("OwnerSms", OwnerSms, path, errorlogtf); //bjGlobalRepository.SendMessage(OwnerSms); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); //string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); //objGlobalRepository.SendMessage(serviceEnginerSms); } else { if (model.VehicleTagging.ToLower() == "eps" || model.VehicleTagging.ToLower() == "eps ev") { string msgOwnerforDealerTicketEPS = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOwnerforDealerTicketEPS"].ToString(); msgOwnerforDealerTicketEPS = string.Format(msgOwnerforDealerTicketEPS, ticketIdAlias, // vehicle reg no ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString() ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgOwnerforDealerTicketEPS); objGlobalRepository.SendMessage(CustomerSms); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgOwnerforDealerTicketEPS); objGlobalRepository.SendMessage(driverSms); } else { msgdriverownerAcceptedTicket = string.Format(msgdriverownerAcceptedTicket, ticketIdAlias, dssmstime.ToString(), // ticket id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // vehicle reg no ds2.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") ", // dealer name and city ConfigurationManager.AppSettings["TollFreeNo"].ToString() // Toll free no ); string driverSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgdriverownerAcceptedTicket); objGlobalRepository.SendMessage(driverSms); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgdriverownerAcceptedTicket); objGlobalRepository.SendMessage(CustomerSms); } } if (TicketPrevDealerCode == model.AssignedToUserId) { } else { InsertTicketDetailOnCreationInVECV(model, ticketIdAlias, model.TicketId, model.AssignedToUserId); } } } catch (Exception Ex) { objLog.ErrorLogFile("TicketDetailsController Error update send sms:", Ex.Message, path, errorlogtf); } } } #endregion } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } objModel.Token = model.Token; return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("UpdateOpenTicketWeb", Ex.Message, path, errorlogtf); return objModel; } } public InsertOpenTicket UpdateOpenTicketaAndroid(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds2 = new DataSet(); DataSet dsGcm = new DataSet(); int UtcMinute = 330; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.TicketStatus == 8) { // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); //commented for wrong date and time due to mobile device time //nSqlParam[2] = new NpgsqlParameter("inlast_modification_time", model.LastModifiedTime); nSqlParam[2] = new NpgsqlParameter("inlast_modification_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inremarks", model.OtherRemarks); nSqlParam[5] = new NpgsqlParameter("inflag", model.Flag); //added on 23/09/2020 nSqlParam[6] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParam[7] = new NpgsqlParameter("invan_longitude", model.VanLongitude); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_trip_end"], nSqlParam); string strVanReach = ""; if (model.TicketStatus == 5) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParamclose = new NpgsqlParameter[1]; nSqlParamclose[0] = new NpgsqlParameter("inticket_id ", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_reach_time_close"], nSqlParamclose); if (ds == null) { } else { if (ds.Tables[0].Rows.Count > 0) { strVanReach = Convert.ToString(ds.Tables[0].Rows[0]["_creation_time"]) == "" ? "" : Convert.ToDateTime(ds.Tables[0].Rows[0]["_creation_time"]).ToString(System.Configuration.ConfigurationManager.AppSettings["DateTimeFormatSAP"]); } } objLog.AddLogFile("DBM Log 9", model.TicketId, path, errorlogtf); UdanPushData.SendDataToSAP(null, model.TicketStatus, model.TicketId, strVanReach); } if (model.TicketIdAlias.Contains('S') == true) { DataSet dsactivity = new DataSet(); NpgsqlParameter[] nSqlParamActivity = new NpgsqlParameter[6]; // //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); nSqlParamActivity[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParamActivity[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParamActivity[2] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParamActivity[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParamActivity[4] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParamActivity[5] = new NpgsqlParameter("invan_longitude", model.VanLongitude); dsactivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_van_lat_lng_in_activity_ticket_open_scv"], nSqlParamActivity); } } else { string strTicketStatus = ""; DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_Cogent_API_By_ticketId"], nSqlParamopen); if (dsOpen.Tables.Count > 0) { if (dsOpen.Tables[0].Rows.Count > 0) { strTicketStatus = dsOpen.Tables[0].Rows[0]["_ticket_status"].ToString(); } } // get latest ticket activity for the ticket. NpgsqlParameter[] nSqlParam0 = new NpgsqlParameter[1]; nSqlParam0[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_latest_ticket_activity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_activity"], nSqlParam0); if (model.TicketStatus == 4) { string[] CSMContactNo = model.preclosure_reason.ToString().Split(','); int cout = CSMContactNo.Length; if (cout == 2) { { model.preclosure_reason = CSMContactNo[0]; model._24HrsReason = CSMContactNo[1]; } } else { model.preclosure_reason = CSMContactNo[0]; } } // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[39]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); // nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParam[8] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", model.Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[19] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[20] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[21] = new NpgsqlParameter("insla_missed_reason", model.SlaMissedReason); nSqlParam[22] = new NpgsqlParameter("insuggestion_comment", model.SuggestionComment); nSqlParam[23] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[24] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[25] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[26] = new NpgsqlParameter("inopportunity_loss", model.OpportunityLost); nSqlParam[27] = new NpgsqlParameter("inreason_for_more_then_24hours", model._24HrsReason); nSqlParam[28] = new NpgsqlParameter("inestimated_distance", null); nSqlParam[29] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); nSqlParam[30] = new NpgsqlParameter("inchassis_number", model.ChassisNo); nSqlParam[31] = new NpgsqlParameter("inodometer_reading", model.OdometerReading); nSqlParam[32] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[33] = new NpgsqlParameter("inprevious_odometer_reading", model.PreviousOdometerReading); //added on 23-09-2020 nSqlParam[34] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParam[35] = new NpgsqlParameter("invan_longitude", model.VanLongitude); nSqlParam[36] = new NpgsqlParameter("inmobile_request", model.IsMobileRequest); nSqlParam[37] = new NpgsqlParameter("in_estimated_van_reach_time", model.estimatedVAnReachTime); nSqlParam[38] = new NpgsqlParameter("inpreclosure_reason", model.preclosure_reason); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_open_ticket_status"], nSqlParam); if (model.TicketIdAlias.Contains('S') == true) { DataSet dsactivity = new DataSet(); NpgsqlParameter[] nSqlParamActivity = new NpgsqlParameter[6]; // //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); nSqlParamActivity[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParamActivity[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParamActivity[2] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParamActivity[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParamActivity[4] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParamActivity[5] = new NpgsqlParameter("invan_longitude", model.VanLongitude); dsactivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_van_lat_lng_in_activity_ticket_open_scv"], nSqlParamActivity); } #region Sending SMS ( When ticket estimated van reach time punched ) if ((model.TicketStatus.ToString() == "9") && (model.IsMobileRequest == true)) { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); UrlShortener shortener = new UrlShortener(); //var trackingurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_tracking"].ToString(); //string originalUrl = trackingurl + "?complaintNo=" + model.TicketIdAlias; //string hashkey = shortener.ShortenUrl(originalUrl); //string shortenedUrl = trackingurl + hashkey; //Console.WriteLine("Shortened URL: " + shortenedUrl); // Redirecting to the original URL // string redirectedUrl = shortener.Redirect(shortenedUrl.Replace(originalUrl, "")); //if (model.TicketIdAlias == "" || model.TicketIdAlias == null) //{ //} //else //{ // DataSet dsurl = new DataSet(); // NpgsqlParameter[] nSqlParamlivetracking = new NpgsqlParameter[3]; // //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); // nSqlParamlivetracking[0] = new NpgsqlParameter("_url", shortenedUrl); // nSqlParamlivetracking[1] = new NpgsqlParameter("_ticket_id", model.TicketIdAlias); // nSqlParamlivetracking[2] = new NpgsqlParameter("_hashkey", hashkey); // dsurl = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_live_tracking_url"], nSqlParamlivetracking); // //string strurl = objTicketRepository.inserttrackingurl(shortenedUrl, model.TicketIdAlias, hashkey); //} // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format // if (System.Configuration.ConfigurationManager.AppSettings["livetrackingsmsIsBlocked"] != "true") { string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgLiveTrackingLink"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { string strurl = Encrypt(ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; //smsSentUrl= smsSentUrl.Replace("%3D","="); msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), model.estimatedVAnReachTime, ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string serviceEnginerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(OwnerSms); objGlobalRepository.SendMessage(serviceEnginerSms); } } } else { string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgestimatedVanReachTime"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), model.estimatedVAnReachTime, // breakdown location // model.TicketIdAlias, ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string serviceEnginerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(OwnerSms); objGlobalRepository.SendMessage(serviceEnginerSms); string ticketidalias = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); model.DriverContactNo = ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(); model.CustomerContactNo = ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(); model.VehicleRegistrationNumber = ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(); // EstimatedVanReachTimeDetailOnCreationInVECV(model, ticketidalias); } } } } #endregion #region Sending SMS ( When ticket is assigned to Van ) if (ds_latest_ticket_activity.Tables.Count > 0) { if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "1") && (model.TicketStatus == 2)) { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = model.TicketIdAlias; // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicket"].ToString(); string msgDealerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforVanTicket"].ToString(); string msgWMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforVanTicket"].ToString(); string msgCSMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforVanTicket"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { //vehicle_registration_number msgCustforVanTicket = string.Format(msgCustforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ConfigurationManager.AppSettings["TollFreeNo"].ToString()); // Toll free number msgDealerforVanTicket = string.Format(msgDealerforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgWMforVanTicket = string.Format(msgWMforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgCSMforVanTicket = string.Format(msgCSMforVanTicket, ticketIdAlias, // Ticket ID ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle registration number ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + ") ",// Dealer Name, Dealer City ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgCustforVanTicket); string DealerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforVanTicket); // get all contact no split in array. string[] CSMContactNo = ds3_ticket_info.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforVanTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds3_ticket_info.Tables[0].Rows[0]["wm_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds3_ticket_info.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); //objGlobalRepository.SendMessage(OwnerSms); #region Sending sms to KAM when ticket is Accepted // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamAcceptedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamAcceptedTicket"].ToString(); // set content in msg msgKamAcceptedTicket = string.Format(msgKamAcceptedTicket, ticketIdAlias, // ticket id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // vehicle reg no. ConfigurationManager.AppSettings["TollFreeNo"].ToString() // toll free number ); string KamSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamAcceptedTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables.Count > 0) { if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageAcceptKamDummyOrRealTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageAcceptKamDummyOrRealTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } } } #endregion } } } } } #endregion #region Sending SMS (When ticket was assigned to Van and when status is changed to In Progress) ) // Send msg to dealer,csm and customer on van reached. (For first time message sending when status is changed to In Progress) if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "2") && (model.TicketStatus == 3)) { DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds3 = new DataSet(); NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); string msgVanReachedCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCustomer"].ToString(); string msgVanReachedDealer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedDealer"].ToString(); string msgVanReachedCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanReachedCustomer = string.Format(msgVanReachedCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanReachedDealer = string.Format(msgVanReachedDealer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanReachedCSM = string.Format(msgVanReachedCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds3.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanReachedCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanReachedDealer); string[] CSMContactNo = (ds.Tables[0].Rows[0]["csm_contact_no"].ToString()).Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i].ToString(), msgVanReachedCSM); objGlobalRepository.SendMessage(CSMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); #region Sending sms to KAM when ticket is Assigned to Van and Van reached // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamVanReachedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamVanReachedTicket"].ToString(); // set content in msg msgKamVanReachedTicket = string.Format(msgKamVanReachedTicket, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26") // breakdown location ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamVanReachedTicket); objGlobalRepository.SendMessage(KamSms); } } #endregion } } } } #endregion // Added By priya #region Sending SMS (When van was started and when reach to location) ) if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "9") && (model.TicketStatus == 3)) { //if (model.TicketStatus == 3) //{ // UdanPushData.SendDataToSAP(model.VehicleRegistrationNumber, model.TicketStatus, ""); //} DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); // DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgVanTicketVanReachedForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCustomer"].ToString(); string msgVanTicketVanReachedForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForWM"].ToString(); string msgVanTicketVanReachedForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanTicketVanReachedForCustomer = string.Format(msgVanTicketVanReachedForCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanTicketVanReachedForWM = string.Format(msgVanTicketVanReachedForWM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgVanTicketVanReachedForCSM = string.Format(msgVanTicketVanReachedForCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(),// Dealer Name, Dealer City ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketVanReachedForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketVanReachedForWM); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketVanReachedForCustomer); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketVanReachedForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); objGlobalRepository.SendMessage(OwnerSms); #region Sending sms to KAM when ticket is Assigned to Van and Van reached // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamVanReachedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamVanReachedTicket"].ToString(); // set content in msg msgKamVanReachedTicket = string.Format(msgKamVanReachedTicket, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26") // breakdown location ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamVanReachedTicket); objGlobalRepository.SendMessage(KamSms); } } #endregion } } } } #endregion #region Sending SMS ( When ticket was assigned to Van and is in Pre-Closure ) // For the first time message sending when ticket status is PreClosure first time if (model.TicketStatus == 4) { DataSet ds1 = new DataSet(); DataSet ds = new DataSet(); DataSet ds3 = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgVanTicketPreCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCustomer"].ToString(); string msgVanTicketPreCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForOwner"].ToString(); string msgVanTicketPreCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForWM"].ToString(); string msgVanTicketPreCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanTicketPreCloserForCustomer = string.Format(msgVanTicketPreCloserForCustomer, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") "// Dealer Name, Dealer City ); msgVanTicketPreCloserForWM = string.Format(msgVanTicketPreCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketPreCloserForCSM = string.Format(msgVanTicketPreCloserForCSM, ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketPreCloserForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketPreCloserForWM); //string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketPreCloserForOwner); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketPreCloserForCustomer); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketPreCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } // objGlobalRepository.SendMessage(CustomerSms); //commented on 18-12-2020(stop sending message to customer on preclosure) // objGlobalRepository.SendMessage(OwnerSms); string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string typePreclosure = ""; if (model.TicketStatus.ToString() == strTicketStatus) { } else { if (model.preclosure_reason == "Closure Request") { typePreclosure = "closure"; } if (model.preclosure_reason == "Reassignment Request") { typePreclosure = "reassign"; } InsertTicketDetailOnPreclousreInVECV(model, ticketIdAlias, typePreclosure, model.SuggestionComment); //objGlobalRepository.SendMessage(OwnerSms); } } //objGlobalRepository.SendMessage(OwnerSms); } #region Sending sms to KAM when ticket is Assigned to Van and in Preclosure // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamPreClosureTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamPreClosureTicket"].ToString(); // set content in msg msgKamPreClosureTicket = string.Format(msgKamPreClosureTicket, ticketIdAlias, // ticket id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // vehicle reg no. ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + " )" // Dealer Name, Dealer City ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamPreClosureTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables.Count > 0) { if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessagePreClosureKamTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias, ConfigurationManager.AppSettings["TollFreeNo"].ToString()); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessagePreClosureKamTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } } //---------------------------------------------------------------------- } } #endregion } #endregion } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("UpdateOpenTicketaAndroid", Ex.Message, path, errorlogtf); return objModel; } } /// /// To update open ticket for android /// /// contain open ticket detail for updation /// contain response status 1 or 0 public InsertOpenTicket UpdateOpenTicketaAndroid(InsertOpenTicket model, string IsMobile) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds2 = new DataSet(); DataSet dsGcm = new DataSet(); int UtcMinute = 330; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // get latest ticket activity for the ticket. NpgsqlParameter[] nSqlParam0 = new NpgsqlParameter[1]; nSqlParam0[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_latest_ticket_activity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_activity"], nSqlParam0); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[33]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); //nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParam[8] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", model.Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[19] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[20] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[21] = new NpgsqlParameter("insla_missed_reason", model.SlaMissedReason); nSqlParam[22] = new NpgsqlParameter("insuggestion_comment", model.SuggestionComment); nSqlParam[23] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[24] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[25] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[26] = new NpgsqlParameter("inopportunity_loss", model.OpportunityLost); nSqlParam[27] = new NpgsqlParameter("inreason_for_more_then_24hours", model._24HrsReason); nSqlParam[28] = new NpgsqlParameter("inestimated_distance", null); nSqlParam[29] = new NpgsqlParameter("inismobile", IsMobile); nSqlParam[30] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); nSqlParam[31] = new NpgsqlParameter("inchassis_number", model.ChassisNo); nSqlParam[32] = new NpgsqlParameter("inodometer_reading", model.OdometerReading); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_open_ticket_status"], nSqlParam); // Send msg to dealer,csm and customer on van reached. (For first time message sending when status is changed to In Progress) if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "2") && (model.TicketStatus == 3)) { DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds3 = new DataSet(); NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); string msgVanReachedCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCustomer"].ToString(); string msgVanReachedDealer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedDealer"].ToString(); string msgVanReachedCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCSM"].ToString(); if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanReachedCustomer = string.Format(msgVanReachedCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanReachedDealer = string.Format(msgVanReachedDealer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26")); msgVanReachedCSM = string.Format(msgVanReachedCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds3.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanReachedCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanReachedDealer); string[] CSMContactNo = (ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString()).Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i].ToString(), msgVanReachedCSM); objGlobalRepository.SendMessage(CSMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); } } //if (model.TicketStatus == 4) // InsertTicketDetailOnPreclousreInVECV(model, model.TicketIdAlias); } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("UpdateOpenTicketaAndroid", Ex.Message, path, errorlogtf); return objModel; } } public InsertOpenTicket CheckRegistrationNumberThirdParty(InsertOpenTicket model) { InsertOpenTicket objModel = new Ticket.InsertOpenTicket(); try { GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); CustomerModel objCustomerModel = new CustomerModel(); objCustomerModel.VehicleRegistrationNumber = model.VehicleRegistrationNumber; CustomerModel objModelCustomerModel = new CustomerModel(); objModelCustomerModel = objGlobalRepository.checkRegistartionNoandGetDetail(objCustomerModel); if (string.IsNullOrEmpty(objModelCustomerModel.VehicleRegistrationNumber)) { VehicleRepository objVehicleRepository = new VehicleRepository(_connStr); VehicleModel objVehicleModel = new VehicleModel(); objVehicleModel.RegistrationNo = model.VehicleRegistrationNumber; objVehicleModel = objVehicleRepository.GetVehicleDetail(objVehicleModel); if (!string.IsNullOrEmpty(objVehicleModel.VehicleNumberPlate) && objVehicleModel.VehicleNumberPlate.Trim().ToUpper() == model.ChassisNo.Trim().ToUpper()) { objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } else { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } } else { if (objModelCustomerModel.VehicleRegistrationNumber.Trim().ToUpper() == model.ChassisNo.Trim().ToUpper()) { objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } else { VehicleRepository objVehicleRepository = new VehicleRepository(_connStr); VehicleModel objVehicleModel = new VehicleModel(); objVehicleModel.RegistrationNo = model.VehicleRegistrationNumber; objVehicleModel = objVehicleRepository.GetVehicleDetail(objVehicleModel); if (!string.IsNullOrEmpty(objVehicleModel.ChassisNumber) && objVehicleModel.ChassisNumber.Trim().ToUpper() == model.ChassisNo.Trim().ToUpper()) { objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } else { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } } } } catch (Exception ex) { VehicleRepository objVehicleRepository = new VehicleRepository(_connStr); VehicleModel objVehicleModel = new VehicleModel(); objVehicleModel.RegistrationNo = model.VehicleRegistrationNumber; objVehicleModel = objVehicleRepository.GetVehicleDetail(objVehicleModel); if (!string.IsNullOrEmpty(objVehicleModel.ChassisNumber) && objVehicleModel.ChassisNumber.Trim().ToUpper() == model.ChassisNo.Trim().ToUpper()) { objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } else { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } objLog.ErrorLogFile("TicketRepository CheckRegistrationNumberThirdParty", ex.Message, path, errorlogtf); } return objModel; } public InsertOpenTicket CheckChassisNoNumberThirdParty(InsertOpenTicket model) { InsertOpenTicket objModel = new Ticket.InsertOpenTicket(); try { GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); CustomerModel objCustomerModel = new CustomerModel(); objCustomerModel.VehicleRegistrationNumber = model.ChassisNo; CustomerModel objModelCustomerModel = new CustomerModel(); if (model.ChassisNo != null) { objModelCustomerModel = objGlobalRepository.checkChassisNoandGetDetail(objCustomerModel); objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } else { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } } catch (Exception Ex) { if (Ex.Message == "The remote server returned an error: (400) Bad Request.") { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } else { objModel.Status = "0"; objModel.Message = Ex.Message; } objLog.ErrorLogFile("CheckChassisNoNumberThirdParty CheckChassisNoNumberThirdParty", Ex.Message, path, errorlogtf); return objModel; } return objModel; } public InsertOpenTicket CheckChassisNoNumberThirdPartyPreclosure(InsertOpenTicket model) { InsertOpenTicket objModel = new Ticket.InsertOpenTicket(); //model.TicketIdAlias = "W2P0525278623"; try { List objCustomerList = new List(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); CustomerModel objCustomerModel = new CustomerModel(); objCustomerModel.VehicleRegistrationNumber = model.ChassisNo; CustomerModel objModelCustomerModel = new CustomerModel(); objModelCustomerModel.VehicleNumberPlate = model.ChassisNo; bool containsP = false; if (model.ChassisNo != null) { if (model.TicketIdAlias == null) { if (model.ChassisNo.ToLower() == "dummychassiseos") { } else { containsP = model.ChassisNo.StartsWith("E"); } } else { containsP = model.TicketIdAlias.Contains("P"); } if (containsP == true) { //objModelCustomerModel = objGlobalRepository.checkChassisNoandGetDetailEPS(objModelCustomerModel); // objModelCustomerModel = objGlobalRepository.checkChassisNoandGetCustomerDetailEPS(objModelCustomerModel); objCustomerList = objGlobalRepository.checkChassisNoandGetCustomerDetailEPS(objModelCustomerModel); if (objCustomerList.Count <= 0) { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } //if (objModelCustomerModel.VehicleNumberPlate == "" || (objModelCustomerModel.VehicleNumberPlate == null)) //{ // objModel.Status = "2"; // objModel.Message = "Invalid Chassis Number"; //} } else { objModelCustomerModel = objGlobalRepository.checkChassisNoandGetDetailpreclosure(objCustomerModel); if (objModelCustomerModel.Status == "0") { objModel.Status = "2"; objModel.Message = "Please try again later"; } else { objModel.Status = "1"; objModel.Message = "Valid Chassis Number"; } } } else { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } } catch (Exception Ex) { if (Ex.Message == "The remote server returned an error: (400) Bad Request.") { objModel.Status = "2"; objModel.Message = "Invalid Chassis Number"; } else { objModel.Status = "0"; objModel.Message = Ex.Message; } objLog.ErrorLogFile("CheckChassisNoNumberThirdParty CheckChassisNoNumberThirdPartyPreclosure", Ex.Message, path, errorlogtf); return objModel; } return objModel; } /// /// To get customer open ticket full details ticket wise /// /// ticket info /// customer open ticket full details ticket wise public List GetCustomerOpenTicketFullDetailTicketWise(CustomerOpenTicketFullDetailsTicketWise model) { List objListTicketModel = new List(); CustomerOpenTicketFullDetailsTicketWise objmodel = new CustomerOpenTicketFullDetailsTicketWise(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParamstatus = new NpgsqlParameter[1]; nSqlParamstatus[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet dsstatus = new DataSet(); dsstatus = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_TicketStatus_By_TicketId"], nSqlParamstatus); if (dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { model.OpenCloseStatus = dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); if (model.OpenCloseStatus == "open") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "close") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_closed_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "open_kam") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_open_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "close_kam") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_closed_ticket_full_details_ticket_wise"], nSqlParam); } if (model.OpenCloseStatus == "open" || model.OpenCloseStatus == "close" || model.OpenCloseStatus == "open_kam" || model.OpenCloseStatus == "close_kam") { if (ds.Tables[0].Rows.Count > 0) { double totalDist = 0.0; double currDist = 0.0; double prevDist = 0.0; if (model.OpenCloseStatus == "close") { DataSet dsDistanceParamValues = new DataSet(); NpgsqlParameter[] nSqlParamDistance = new NpgsqlParameter[1]; nSqlParamDistance[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsDistanceParamValues = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_device_alias_and_activity_time"], nSqlParamDistance); // Get Actual Distance. if (dsDistanceParamValues.Tables[0].Rows.Count > 0) { TrackingGetModel oTrackingGetModel = new TrackingGetModel(); oTrackingGetModel.DeviceAlias = dsDistanceParamValues.Tables[0].Rows[0]["_device_alias"].ToString(); oTrackingGetModel.FromDate = dsDistanceParamValues.Tables[0].Rows[0]["_accept"].ToString(); oTrackingGetModel.ToDate = dsDistanceParamValues.Tables[0].Rows[0]["_reached"].ToString(); oTrackingGetModel.Token = model.Token; DistanceCalc oDistanceCalc = new DistanceCalc(); List objList = new List(); TrackingRepository objTrackingRepository = new TrackingRepository(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ConnectionString); objList = objTrackingRepository.GetTrackingDetailDeviceAliasWise(oTrackingGetModel); //return objList; double lat = 0.0; double lng = 0.0; double tempLat = 0.0; double tempLng = 0.0; int counter = 0; var data = objList.Where(w => w.DeviceAlias == oTrackingGetModel.DeviceAlias); int totalPoints = data.Count(); double[] tempLatitude = { 0.0, 0.0 }; double[] tempLongitude = { 0.0, 0.0 }; if (data != null && totalPoints > 0) { foreach (var item in data) { if (double.TryParse(item.Latitude, out tempLat) && double.TryParse(item.Longitude, out tempLng)) { tempLatitude[0] = tempLatitude[1]; tempLongitude[0] = tempLongitude[1]; tempLatitude[1] = tempLat; tempLongitude[1] = tempLng; if (counter == 0) { tempLatitude[0] = tempLat; tempLongitude[0] = tempLng; } lat += tempLat; lng += tempLng; counter++; } currDist = oDistanceCalc.DistanceInKM(tempLatitude, tempLongitude); totalDist = totalDist + currDist; prevDist = prevDist + currDist; } } } // added for filter old/new feedback. // Get Open ticket full deatils objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketFullDetailsTicketWise { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), UsersId = s.Field("users_id"), UsersAuthEngineId = s.Field("users_auth_engine_id"), UsersUserName = s.Field("users_user_name"), UsersDesignation = s.Field("users_designation"), UsersObjectId = s.Field("users_object_id"), UsersCity = s.Field("users_city"), UsersState = s.Field("users_state"), UsersRegion = s.Field("users_region"), UsersLanguage = s.Field("users_language"), TimezoneInfoDisplayName = s.Field("timezone_info_display_name"), UserOrganizationName = s.Field("user_organization_name"), UserOrganizationAlias = s.Field("user_organization_alias"), UserOrganizationCity = s.Field("user_organization_city"), UserOrganizationState = s.Field("user_organization_state"), UserOrganizationCountry = s.Field("user_organization_country"), UserOrganizationRegion = s.Field("user_organization_region"), DealerOrVanId = s.Field("dealer_or_van_id"), DealerOrVanName = s.Field("dealer_or_van_name"), DealerOrVanDefaultLongitude = s.Field("dealer_or_van_default_lattitude"), DealerOrVanDefaultLattitude = s.Field("dealer_or_van_default_longitude"), DealerOrVanCity = s.Field("dealer_or_van_city"), DealerOrVanState = s.Field("dealer_or_van_state"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), TicketClosedReason = s.Field("ticket_closed_reason"), //added on 25-11-2020 JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), DealerOrServiceEnggContactNumber = s.Field("contact_number"), EstimatedDistance = s.Field("estimated_distance"), Status = "1", OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field("opportunity_loss") : null, Dealerdealer_name = s.Field("dealer_dealer_name"), DealerContactNumber1 = s.Field("dealer_contact_number1"), DealerCity = s.Field("dealer_city"), DealerState = s.Field("dealer_state"), ChassisNo = s.Field("chassis_no"), KmCovered = s.Field("km_covered"), ActualDistance = Math.Ceiling(totalDist).ToString(), WM_Name = s.Field("wm_name"), Dealer_Id = s.Field("dealer_id"), Vehicle_tagging = s.Field("vehicle_tagging"), TicketIdAlias = s.Field("_ticket_id_alias"), Device_Alias = s.Field("_device_alias"), TripStart = s.Field("_trip_start") != null ? Convert.ToDateTime(s.Field("_trip_start")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), TripEnd = s.Field("_trip_end") != null ? Convert.ToDateTime(s.Field("_trip_end")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VanKmCovered = s.Field("_van_covered_distance"), RemarkTicketNotClosed24Hours = s.Field("_remark_ticket_not_closed_24_hours"), ChassisNumber = s.Field("_chassis_number"), OdoMeter = s.Field("_odometer_reading"), VehicleType = s.Field("_vehicle_type"), PreviousOdometerReading = s.Field("_previous_odometer_reading"), TollFreeNoSource = s.Field("_toll_free_no_source"), FeedbackCallStatus = s.Field("_call_status"), //added on 26/11/2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), customer_type = s.Field("_customer_type"), //added on 14-01-2021 //ended on 26/11/2020 van_reached_punched_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 //current_lat = s.Field("_current_lat"), //current_long = s.Field("_current_long"), }).ToList(); } else { DataSet ds1 = new DataSet(); string res = ""; if (!String.IsNullOrWhiteSpace(model.TicketId)) { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("in_van_id", ds.Tables[0].Rows[0]["assigned_to_user_id"].ToString()); //Get Device GCm id for ticket. ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam1); res = ds1.Tables[0].Rows[0][0].ToString(); } // Get Open ticket full deatils objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketFullDetailsTicketWise { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), UsersId = s.Field("users_id"), UsersAuthEngineId = s.Field("users_auth_engine_id"), UsersUserName = s.Field("users_user_name"), UsersDesignation = s.Field("users_designation"), UsersObjectId = s.Field("users_object_id"), UsersCity = s.Field("users_city"), UsersState = s.Field("users_state"), UsersRegion = s.Field("users_region"), UsersLanguage = s.Field("users_language"), TimezoneInfoDisplayName = s.Field("timezone_info_display_name"), UserOrganizationName = s.Field("user_organization_name"), UserOrganizationAlias = s.Field("user_organization_alias"), UserOrganizationCity = s.Field("user_organization_city"), UserOrganizationState = s.Field("user_organization_state"), UserOrganizationCountry = s.Field("user_organization_country"), UserOrganizationRegion = s.Field("user_organization_region"), DealerOrVanId = s.Field("dealer_or_van_id"), DealerOrVanName = s.Field("dealer_or_van_name"), DealerOrVanDefaultLongitude = s.Field("dealer_or_van_default_lattitude"), DealerOrVanDefaultLattitude = s.Field("dealer_or_van_default_longitude"), DealerOrVanCity = s.Field("dealer_or_van_city"), DealerOrVanState = s.Field("dealer_or_van_state"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), DealerOrServiceEnggContactNumber = s.Field("contact_number"), EstimatedDistance = s.Field("estimated_distance"), Status = "1", OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field("opportunity_loss") : null, Dealerdealer_name = s.Field("dealer_dealer_name"), DealerContactNumber1 = s.Field("dealer_contact_number1"), DealerCity = s.Field("dealer_city"), DealerState = s.Field("dealer_state"), ChassisNo = s.Field("chassis_no"), KmCovered = s.Field("km_covered"), ActualDistance = Math.Ceiling(totalDist).ToString(), WM_Name = s.Field("wm_name"), Dealer_Id = s.Field("dealer_id"), Vehicle_tagging = s.Field("vehicle_tagging"), TicketIdAlias = s.Field("_ticket_id_alias"), Device_Alias = s.Field("_device_alias"), TripStart = s.Field("_trip_start") != null ? Convert.ToDateTime(s.Field("_trip_start")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), TripEnd = s.Field("_trip_end") != null ? Convert.ToDateTime(s.Field("_trip_end")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VanKmCovered = s.Field("_van_covered_distance"), RemarkTicketNotClosed24Hours = s.Field("_remark_ticket_not_closed_24_hours"), ChassisNumber = s.Field("_chassis_number"), OdoMeter = s.Field("_odometer_reading"), VehicleType = s.Field("_vehicle_type"), PreviousOdometerReading = s.Field("_previous_odometer_reading"), TollFreeNoSource = s.Field("_toll_free_no_source"), //added on 26/11/2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), customer_type = s.Field("_customer_type"), //ended on 26/11/2020 van_reached_punched_time = s.Field("_van_reached_punch_time") == null ? "" : s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm"), //added on 23-12-2020 //FeedbackCallStatus = s.Field("_call_status") //current_lat = s.Field("_current_lat"), //current_long = s.Field("_current_long"), OTP = res }).ToList(); } } } } objListTicketModel.Where(x => x.TripEnd == "01 Jan 0001 05:30:00" || x.TripEnd == "01 Jan 0001 00:00:00" || String.IsNullOrEmpty(x.TripEnd)).ToList().ForEach(x => { x.TripEnd = "-"; }); objListTicketModel.Where(x => x.TripStart == "01 Jan 0001 05:30:00" || x.TripStart == "01 Jan 0001 00:00:00" || String.IsNullOrEmpty(x.TripStart)).ToList().ForEach(x => { x.TripStart = "-"; }); return objListTicketModel; } catch (Exception Ex) { objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Status = "0" }); objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Message = Ex.Message }); objLog.ErrorLogFile("GetCustomerOpenTicketFullDetailTicketWise", Ex.Message, path, errorlogtf); return objListTicketModel; } } /// /// To get customer open ticket full details ticket wise /// /// ticket info /// customer open ticket full details ticket wise public List GetCustomerOpenTicketFullDetailTicketWiseShow(CustomerOpenTicketFullDetailsTicketWise model) { List objListTicketModel = new List(); CustomerOpenTicketFullDetailsTicketWise objmodel = new CustomerOpenTicketFullDetailsTicketWise(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParamstatus = new NpgsqlParameter[1]; nSqlParamstatus[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet dsstatus = new DataSet(); dsstatus = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_TicketStatus_By_TicketId"], nSqlParamstatus); if (dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { model.OpenCloseStatus = dsstatus.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); if (model.OpenCloseStatus == "open") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "close") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_closed_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "open_kam") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_open_ticket_full_details_ticket_wise"], nSqlParam); } else if (model.OpenCloseStatus == "close_kam") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_closed_ticket_full_details_ticket_wise"], nSqlParam); } } objListTicketModel.Where(x => x.TripEnd == "01 Jan 0001 05:30:00" || x.TripEnd == "01 Jan 0001 00:00:00" || String.IsNullOrEmpty(x.TripEnd)).ToList().ForEach(x => { x.TripEnd = "-"; }); objListTicketModel.Where(x => x.TripStart == "01 Jan 0001 05:30:00" || x.TripStart == "01 Jan 0001 00:00:00" || String.IsNullOrEmpty(x.TripStart)).ToList().ForEach(x => { x.TripStart = "-"; }); return objListTicketModel; } catch (Exception Ex) { objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Status = "0" }); objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Message = Ex.Message }); objLog.ErrorLogFile("GetCustomerOpenTicketFullDetailTicketWise", Ex.Message, path, errorlogtf); return objListTicketModel; } } /// /// To get customer open ticket full details ticket wise /// /// ticket info /// customer open ticket full details ticket wise public List GetKamOpenTicketDetails(CustomerOpenTicketFullDetailsTicketWise model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inkam_id", model.KamTicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_open_ticket"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { // Get Open ticket full deatils objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketFullDetailsTicketWise { Id = s.Field("_id"), KamTicketId = s.Field("_kam_id").ToString(), CallerLanguage = s.Field("_caller_language"), TollFreeNoSource = s.Field("_toll_free_no_source"), Warrenty = s.Field("_warranty"), TicketId = s.Field("_ticket_id"), Description = s.Field("_description"), AssignedTo = s.Field("_assigned_to"), ReportedVia = s.Field("_reported_via"), TicketStatus = s.Field("_ticket_status"), Priority = s.Field("_priority"), CustomerScore = s.Field("_customer_score"), CreatedBy = s.Field("_created_by"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("_last_modified_by"), LastModifiedTime = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("_breakdown_location"), BreakdownLongitude = s.Field("_breakdown_longitude"), BreakdownLattitude = s.Field("_breakdown_lattitude"), AssignedToUserId = s.Field("_assigned_to_user_id"), AssignedToUserLattitude = s.Field("_assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("_assigned_to_user_longitude"), Isdeclined = s.Field("_isdeclined"), EstimatedTimeForJobCompletion = s.Field("_estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("_total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("_estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("_estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("_vehicle_registration_number"), BreakdownLocationLandmark = s.Field("_breakdown_location_landmark"), BreakdownLocationState = s.Field("_state_name"), BreakdownLocationCity = s.Field("_city_name"), RouteId = s.Field("_route_id"), CustomerContactNo = s.Field("_customer_contact_no"), //UsersId = s.Field("users_id"), //UsersAuthEngineId = s.Field("users_auth_engine_id"), //UsersUserName = s.Field("users_user_name"), //UsersDesignation = s.Field("users_designation"), //UsersObjectId = s.Field("users_object_id"), //UsersCity = s.Field("users_city"), //UsersState = s.Field("users_state"), //UsersRegion = s.Field("users_region"), //UsersLanguage = s.Field("users_language"), //TimezoneInfoDisplayName = s.Field("timezone_info_display_name"), //UserOrganizationName = s.Field("user_organization_name"), //UserOrganizationAlias = s.Field("user_organization_alias"), //UserOrganizationCity = s.Field("user_organization_city"), //UserOrganizationState = s.Field("user_organization_state"), //UserOrganizationCountry = s.Field("user_organization_country"), //UserOrganizationRegion = s.Field("user_organization_region"), //DealerOrVanId = s.Field("dealer_or_van_id"), //DealerOrVanName = s.Field("dealer_or_van_name"), //DealerOrVanDefaultLongitude = s.Field("dealer_or_van_default_lattitude"), //DealerOrVanDefaultLattitude = s.Field("dealer_or_van_default_longitude"), //DealerOrVanCity = s.Field("dealer_or_van_city"), //DealerOrVanState = s.Field("dealer_or_van_state"), //TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("_repair_cost"), DefaultSlaTime = s.Field("_default_sla_time"), //SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("_suggestion_comment"), JobCompleteResponseTime = s.Field("_default_col_1"), DefaultCol2 = s.Field("_default_col_2"), DefaultCol3 = s.Field("_default_col_3"), //DealerOrServiceEnggContactNumber = s.Field("contact_number"), EstimatedDistance = s.Field("_estimated_distance"), Status = "1", OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field("_opportunity_loss") : null, //Dealerdealer_name = s.Field("dealer_dealer_name"), //DealerContactNumber1 = s.Field("dealer_contact_number1"), //DealerCity = s.Field("dealer_city"), //DealerState = s.Field("dealer_state"), //ChassisNo = s.Field("chassis_no"), KmCovered = s.Field("_km_covered"), //ActualDistance = Math.Round(totalDist, 2).ToString(), //WM_Name = s.Field("wm_name"), //Dealer_Id = s.Field("dealer_id"), Vehicle_tagging = s.Field("_vehicle_tagging"), TicketIdAlias = s.Field("_ticketid_alias"), //Device_Alias = s.Field("_device_alias") SlaMissedReason = s.Field("_sla_missed_reason"), ReasonForMoreThan24Hrs = s.Field("_reason_for_more_then_24hours"), CallStatus = s.Field("_call_status"), SuggestionComplaint = s.Field("_suggestion_complaint"), CustomerCustomerName = s.Field("_customer_customer_name"), }).ToList(); } } return objListTicketModel; } catch (Exception Ex) { objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Status = "0" }); objListTicketModel.Add(new CustomerOpenTicketFullDetailsTicketWise { Message = Ex.Message }); objLog.ErrorLogFile("GetKamOpenTicketDetails", Ex.Message, path, errorlogtf); return objListTicketModel; } } /// /// To get customer open ticket details /// /// customer info /// customer open ticket details public List GetCustomerOpenTicketDetail(CustomerOpenTicketDetail model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.isEPS == true) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); nSqlParam[3] = new NpgsqlParameter("inEngineNumber", model.Engine_number); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details_EPS"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } else { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } } return objListTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerOpenTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get customer open ticket details /// /// customer info /// customer open ticket details public CustomerOpenTicketDetail CheckTicketCreatedForRegNo(CustomerOpenTicketDetail model) { CustomerOpenTicketDetail oCustomerOpenTicketDetail = new CustomerOpenTicketDetail(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); if (model.VehicleRegisterNumber == null) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_ticket_number_for_kam"], nSqlParam); } else { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_registration_number_for_kam"], nSqlParam); } if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString() == "1") { oCustomerOpenTicketDetail.Message = "Ticket already open for this Registration No."; oCustomerOpenTicketDetail.Status = "1"; } else { oCustomerOpenTicketDetail.Message = "No ticket is open for this Registration No."; oCustomerOpenTicketDetail.Status = "0"; } } } return oCustomerOpenTicketDetail; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerOpenTicketDetail", Ex.Message, path, errorlogtf); oCustomerOpenTicketDetail.Message = "Failure"; oCustomerOpenTicketDetail.Status = "0"; return oCustomerOpenTicketDetail; } } /// /// To get customer close ticket details /// /// customer info /// customer close ticket details public List GetCustomerCloseTicketDetail(CustomerCloseTicketDetail model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket_details"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TotalTicketCloseHours = Convert.ToDouble(s.Field("within_24hrs_or_not")), FeedBackAgenName = s.Field("feedback_agent"), ReasonBeyond24Hrs = s.Field("reason_for_more_then_24hours"), CallStatus = s.Field("call_status"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } return objListTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerCloseTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } } public List GetCustomerCloseTicketDetailNew(CustomerCloseTicketDetail model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket_details_new"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TotalTicketCloseHours = Convert.ToDouble(s.Field("within_24hrs_or_not")), FeedBackAgenName = s.Field("feedback_agent"), ReasonBeyond24Hrs = s.Field("reason_for_more_then_24hours"), CallStatus = s.Field("call_status"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } return objListTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerCloseTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get ticket notification. /// /// ticket info /// status and get ticket notification public List GetTicketNotification(TicketNotificationModel model) { TicketNotificationModel objModel = new TicketNotificationModel(); List objList = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_notifications"]); if (ds.Tables[0].Rows.Count > 0) { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketNotificationModel { Id = s.Field("id"), KeyName = s.Field("key_name"), KeyValue = s.Field("key_value"), TicketStatus = s.Field("_ticket_status") }).ToList(); } } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objList; } catch (Exception Ex) { objLog.ErrorLogFile("GetTicketNotification", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; return objList; } } /// /// To get close ticket notification /// /// ticket info /// status and close ticket notification public CloseOpenNotification CloseOpenNotificationInt(CloseOpenNotification model) { CloseOpenNotification objModel = new CloseOpenNotification(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_status", model.TicketStatus); NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_close_open_notifications"], nSqlParam); objModel.Status = "1"; } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objLog.ErrorLogFile("CloseOpenNotificationWithTicket", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; return objModel; } } /// /// To get notification of open and close ticket with, ticket id wise /// /// ticket info /// status and notification of open and close ticket with, ticket id wise public CloseOpenNotification CloseOpenNotificationStr(CloseOpenNotification model) { CloseOpenNotification objModel = new CloseOpenNotification(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.NotificationId); NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_close_open_notifications"], nSqlParam); } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objLog.ErrorLogFile("CloseOpenNotificationStr", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; return objModel; } } /// /// To get close dealer open ticket notification /// /// ticket info /// status and close dealer open ticket notification public CloseOpenNotification CloseTODealerOpenNotificationStr(CloseOpenNotification model) { CloseOpenNotification objModel = new CloseOpenNotification(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("innotification_id", model.NotificationId); NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_close_to_dealer_open_notifications"], nSqlParam); objModel.Status = "1"; } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objLog.ErrorLogFile("CloseTODealerOpenNotificationStr", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; return objModel; } } /// /// To get ticket notification detail ticket id wise /// /// ticket info /// status and ticket notification detail ticket id wise public List GetTicketNotificationsWithTicketId(TicketNotificationsWithTicketId model) { TicketNotificationsWithTicketId objModel = new TicketNotificationsWithTicketId(); List objList = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_notifications_with_ticket_id"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketNotificationsWithTicketId { TicketId = s.Field("ticket_id"), TicketIdAlias = s.Field("_ticket_id_alias"), TicketStatus = s.Field("ticket_status"), NotificationTime = s.Field("_notification_time") != null ? Convert.ToDateTime(s.Field("_notification_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_notification_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DealerDealerName = s.Field("_dealer_dealer_name"), VanId = s.Field("_van_id"), VanRegistrationNumber = s.Field("_van_registration_number"), ServiceEngineerName = s.Field("service_engineer_name"), CreatedBy = s.Field("created_by"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), NotificationId = s.Field("_notification_id"), TickeStatusAlias = s.Field("ticket_status_alias"), }).ToList(); } } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objList; } catch (Exception Ex) { objLog.ErrorLogFile("GetTicketNotificationsWithTicketId", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; return objList; } } /// /// To get open and close ticket detail user id wise /// /// ticket info /// status and open and close ticket detail user id wise public TicketRequestModel GetOpenCloseTicketDetail(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); string filterval = ""; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.TicketType == null) { // model.TicketType = } else { string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } } // Get Open ticket report details. if (model.TicketType.Trim().ToLower() == "open") { if (filterval == "" || filterval == "all") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_user_wise"], nSqlParam); } else { if (filterval.ToLower() == "lcv" || filterval.ToLower() == "electric") { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("infuelType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_variant_wise"], nSqlParam); } else if (filterval.ToLower() == "eps" || filterval.ToLower() == "scv") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_status_wise"], nSqlParam); } } } else if (model.TicketType.Trim().ToLower() == "count") { if (filterval.Trim().ToLower() == "" || filterval.Trim().ToLower() == "all" || filterval.Trim().ToLower() == "close") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_count_user_wise"], nSqlParam); } else { if (filterval.ToLower() == "lcv" || filterval.ToLower() == "electric") { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("infuelType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_count_variant_wise"], nSqlParam); } else if (filterval.ToLower() == "eps" || filterval.ToLower() == "scv") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("inType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_count_status_wise"], nSqlParam); } } // Get closed ticket record count. } else { if (filterval == "" || filterval == "all") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_user_wise"], nSqlParam); } else { if (filterval.ToLower() == "lcv" || filterval.ToLower() == "electric") { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("infuelType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_variant_wise"], nSqlParam); } else if (filterval.ToLower() == "eps" || filterval.ToLower() == "scv") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("inType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_status_wise"], nSqlParam); } } // Get closed ticket report details. } if (model.TicketType.Trim().ToLower() == "count") { objModel.TicketCount = Convert.ToInt64(ds.Tables[0].Rows[0][0]); } else if (model.TicketType.Trim().ToLower() == "open") { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel { Id = s.Field("_ticket_id"), DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), AssignedTo = s.Field("_assignedto"), EstimatedTimeForJobComplition = s.Field("_estimatedtimeforjobcompletion"), Age = Convert.ToDouble(s.Field("_age")), DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_feedbackagent") : null, DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_reasonformorethen24hours") : null, VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), gps_status = s.Field("_gps_status"), current_latitude = s.Field("_current_latitude"), current_longitude = s.Field("_current_longitude"), PreClosureTime = Convert.ToDateTime(s.Field("_pre_closure_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), ChassisNo = s.Field("_chassis_number"), OdometerReading = s.Field("_odometer_reading"), Remarks = s.Field("_last_remark"), Description = s.Field("_nature_of_problem"), BreakDownLocation = s.Field("csm"), BreackDownLongitude = s.Field("csm_contact_no"), BreackDownLatitude = s.Field("rsm"), AssignedToUserLongitude = s.Field("rsm_contact_no"), AssignedToUserLatitude = s.Field("asm"), BreakdownLocationLandmark = s.Field("asm_contact_no"), Designation = s.Field("_Dealer_name_1scode"), VehicleType = s.Field("_vehicle_status"), ServiceEngineerPinPassword = s.Field("_vehicle_emission_norms"), ServiceEngineerAlias = s.Field("_created_by"), ServiceEngineerApplicationLicenseKey = s.Field("_region"), VanVanDefaultLattitude = s.Field("_fuel_type"), VanCity = s.Field("_model_no"), AuthEngineId = s.Field("_battery_voltage"), VanLatitudeAtTripStart = s.Field("_def_level"), VanLatitudeAtVanReached = s.Field("_preclosure_reason"), VanLongitudeAtTripEnd = s.Field("_fuel_level"), VanReachedPunchTime = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 }).ToList(); } else if (model.TicketType.Trim().ToLower() == "close") { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel { Id = s.Field("_ticket_id"), DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), //added on 25-09-2020 VanLatitudeAtTripStart = s.Field("_van_trip_start_latitude"), VanLongitudeAtTripStart = s.Field("_van_trip_start_longitude"), VanLatitudeAtVanReached = s.Field("_van_reached_latitude"), VanLongitudeAtVanReached = s.Field("_van_reached_longitude"), VanLatitudeAtTripEnd = s.Field("_van_trip_end_latitude"), VanLongitudeAtTripEnd = s.Field("_van_trip_end_longitude"), BreakdownLocationLatitude = s.Field("_breakdown_location_latitude"), BreakdownLocationLongitude = s.Field("_breakdown_location_longitude"), //----------------added on 25-11-2020 (start) ------------------------------------- TicketClosedReason = s.Field("_ticket_closed_reason"), //----------------added on 25-11-2020 (end) ------------------------------------- VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), AssignedTo = s.Field("_assignedto"), EstimatedTimeForJobComplition = s.Field("_estimatedtimeforjobcompletion"), Age = Convert.ToDouble(s.Field("_age")), DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_feedbackagent") : null, DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_reasonformorethen24hours") : null, CallStatus = s.Field("_call_status"), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), feedback_call_status = s.Field("_feedback_status"), total_count = Convert.ToString(s.Field("_feedback_count")), reopen_count = Convert.ToString(s.Field("_reopen_count")), Score = s.Field("_score"), ChassisNo = s.Field("_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added on 03/12/2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), AssignedToUserLatitude = s.Field("_assigned_lat"), AssignedToUserLongitude = s.Field("_assigned_long"), BreackDownLongitude = s.Field("_estimated_van_reach_time"), VanReachedPunchTime = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 }).ToList(); } objModel.TicketList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// To get open and close ticket detail user id wise for KAM /// /// ticket info /// status and open and close ticket detail user id wise public TicketRequestModel GetOpenCloseTicketDetailForKAM(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // Get Open ticket report details. if (model.TicketType.Trim().ToLower() == "open") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.KamUserId); nSqlParam[1] = new NpgsqlParameter("instart_date", null); nSqlParam[2] = new NpgsqlParameter("inend_date", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_kam_user_wise"], nSqlParam); } else if (model.TicketType.Trim().ToLower() == "count") { // Get closed ticket record count. NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.KamUserId); // here UserID == CustomerId nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", null); nSqlParam[4] = new NpgsqlParameter("inoff_set", null); nSqlParam[5] = new NpgsqlParameter("incondition", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_count_kam_user_wise"], nSqlParam); } else if (model.TicketType.Trim().ToLower() == "close") { // Get closed ticket report details. NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.KamUserId); // here UserID == CustomerId nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_kam_user_wise"], nSqlParam); } if (model.TicketType.Trim().ToLower() == "count") { objModel.TicketCount = Convert.ToInt64(ds.Tables[0].Rows[0][0]); } else if (model.TicketType.Trim().ToLower() == "open") { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel { Id = s.Field("_ticket_id"), DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), AssignedTo = s.Field("_assignedto"), EstimatedTimeForJobComplition = s.Field("_estimatedtimeforjobcompletion"), Age = Convert.ToDouble(s.Field("_age")), DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_feedbackagent") : null, DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_reasonformorethen24hours") : null, VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), gps_status = s.Field("_gps_status"), KamId = s.Field("_kam_id").ToString() }).ToList(); } else if (model.TicketType.Trim().ToLower() == "close") { objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel { Id = s.Field("_ticket_id"), DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), AssignedTo = s.Field("_assignedto"), EstimatedTimeForJobComplition = s.Field("_estimatedtimeforjobcompletion"), Age = Convert.ToDouble(s.Field("_age")), DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_feedbackagent") : null, DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_reasonformorethen24hours") : null, CallStatus = s.Field("_call_status"), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), feedback_call_status = s.Field("_feedback_status"), total_count = Convert.ToString(s.Field("_feedback_count")), KamId = s.Field("_kam_id").ToString(), IsDeleted = s.Field("_is_deleted") }).ToList(); } objModel.TicketList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetailForKAM", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// To delete dummy ticket created by KAM /// /// ticket info /// status and data public TicketRequestModel DeleteKamDummyTicket(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inkam_id", model.KamTicketId); nSqlParam[1] = new NpgsqlParameter("inuserid", model.UserId.ToString()); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_kam_tickets_open"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString() == "1") { objModel.Message = "Success"; objModel.Status = "1"; //Get Device GCm id for ticket. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inkam_id", model.KamTicketId); DataSet dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details"], nSqlParam1); if (dsGcm.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageIgnoreKamDummyTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, dr["_vehicle_registration_number"].ToString(), dr["_modified_by"].ToString()); SendNotificationModel objGcmModel = new SendNotificationModel(); objGcmModel.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel.TicketId = model.KamTicketId.ToString(); objGcmModel.NotificationCode = ConfigurationManager.AppSettings["MessageIgnoreKamDummyTicket"].ToString(); objGcmModel.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel = objGlobalRepository.GcmSendNotificationForKam(objGcmModel); objModel.Status = objGcmModel.Status; } else { objGcmModel = objGlobalRepository.FcmSendNotificationForKam(objGcmModel); objModel.Status = objGcmModel.Status; } //objModel.SenderId = objGcmModel.SenderId; } } } else { objModel.Message = "Failure"; objModel.Status = "0"; } } } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("DeleteKamDummyTicket", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// To get consolidated report. /// /// ticket info /// status and consolidated report public TicketRequestModel ConsolidatedDataReport(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); string filterval = ""; objAuthorization = new AuthenticationRepository(); if (model.consolidaetype == null) { model.consolidaetype = "old"; } if (model.TicketType == null) { // model.TicketType = } else { string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } } if (filterval.ToLower() == "all") { filterval = null; } if (filterval == null) { } else { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } } if (objAuthorization.AuthenticateDevice(model.Token)) { // get consolidated report record count. if (model.TicketType.Trim().ToLower() == "count") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_actual_km_new"], nSqlParam); } } // get consolidated report record details. else if (model.TicketType.Trim().ToLower() == "data") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_change_actual_km_new"], nSqlParam); } } if (model.TicketType.Trim().ToLower() == "count") { objModel.TicketCount = Convert.ToInt64(ds.Tables[0].Rows[0][0]); } else { objList = ds.Tables[0].AsEnumerable().Select(s => new ConsolidatedReportModel { ticket_id = s.Field("_ticket_id"), customer_name = s.Field("_customer_name"), customer_contact_no = s.Field("_customer_contact_no"), vehicle_type = s.Field("_vehicle_type"), chassis_number = s.Field("_chassis_number"), //vehicle_instalation_date = Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), vehicle_instalation_date = s.Field("_vehicle_instalation_date"),//;String.IsNullOrEmpty(s.Field("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])), breakdown_location = s.Field("_breakdown_location"), default_sla_time = s.Field("_default_sla_time"), //response = s.Field("_response"), response = s.Field("_response") == null || Convert.ToInt32(s.Field("_response")) <= 0 ? "0" : s.Field("_response"), eos_team_member_and_van = s.Field("_eos_team_member_and_van"), dealer_name = s.Field("_dealer_name"), dealer_contact_no = s.Field("_dealer_contact_no"), created_by = s.Field("_created_by"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), state = s.Field("_state"), city = s.Field("_city"), month_name = s.Field("_month_name"), time_slot = s.Field("_time_slot"), open_call_hrs = s.Field("_open_call_hrs"), language_name = s.Field("_language_name"), region = s.Field("_region"), landmark = s.Field("_landmark"), dealer_code = s.Field("_dealer_code"), warranty = s.Field("_warranty"), vehicle_model = s.Field("_vehicle_model"), load_carried = s.Field("_load_carried"), type_of_load_carried = s.Field("_type_of_load_carried"), call_assigned_to = s.Field("_call_assigned_to"), owner_name = s.Field("_owner_name"), owner_contact_number = s.Field("_owner_contact_number"), customer_vehicle_regn_no = s.Field("_customer_vehicle_regn_no"), nature_of_problem = s.Field("_nature_of_problem"), closure_remarks = s.Field("_closure_remarks"), estimated_cost = s.Field("_estimated_cost"), estimated_time = s.Field("_estimated_time"), time_stamps_status_1 = s.Field("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_2 = s.Field("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_3 = s.Field("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_4 = s.Field("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_5 = s.Field("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, escalation_level_van_not_move_1 = s.Field("_escalation_level_van_not_move_1"), escalation_level_van_not_move_2 = s.Field("_is_location_change"), escalation_level_van_not_move_3 = s.Field("_dealer_change_reason"), escalation_level_van_not_move_4 = s.Field("_dealer_change_reason_other_remark"), escalation_level_van_not_move_5 = s.Field("_vehicle_status"), escalation_level_van_not_move_6 = (s.Field("_location_change_time")).ToString(), // escalation_level_van_not_move_6 = s.Field(s.Field("_location_change_time") != null ? Convert.ToDateTime(s.Field("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null), //escalation_level_van_not_move_6 = s.Field("_escalation_level_van_not_move_6"), escalation_level_van_not_move_7 = s.Field("_escalation_level_van_not_move_7"), escalation_level_van_not_move_8 = s.Field("_escalation_level_van_not_move_8"), escalation_level_van_not_move_9 = s.Field("_escalation_level_van_not_move_9"), escalation_level_van_not_move_10 = s.Field("_escalation_level_van_not_move_10"), escalation_level_ticket_closer_1 = s.Field("_escalation_level_ticket_closer_1"), escalation_level_ticket_closer_2 = s.Field("_escalation_level_ticket_closer_2"), escalation_level_ticket_closer_3 = s.Field("_escalation_level_ticket_closer_3"), escalation_level_ticket_closer_4 = s.Field("_escalation_level_ticket_closer_4"), escalation_level_ticket_closer_5 = s.Field("_escalation_level_ticket_closer_5"), escalation_level_ticket_closer_6 = s.Field("_escalation_level_ticket_closer_6"), escalation_level_ticket_closer_7 = s.Field("_escalation_level_ticket_closer_7"), escalation_level_ticket_closer_8 = s.Field("_escalation_level_ticket_closer_8"), escalation_level_ticket_closer_9 = s.Field("_escalation_level_ticket_closer_9"), escalation_level_ticket_closer_10 = s.Field("_escalation_level_ticket_closer_10"), call_closure_status = s.Field("_call_closure_status"), feedback_taken = s.Field("_feedback_taken"), feedback_parameter_wise_score = s.Field("_feedback_parameter_wise_score"), feedback_ease_of_getting_call = s.Field("_feedback_ease_of_getting_call"), feedback_response_of_call_center = s.Field("_feedback_response_of_call_center"), feedback_timely_updation_by_dealer = s.Field("_feedback_timely_updation_by_dealer"), feedback_total_repair_time = s.Field("_feedback_total_repair_time"), feedback_eos_charges = s.Field("_feedback_eos_charges"), feedback_over_all_experience = s.Field("_feedback_over_all_experience"), other_remarks = s.Field("_other_remarks"), feedback_agent = s.Field("_feedback_agent"), how_did_you_come_to_know_of_eos = s.Field("_how_did_you_come_to_know_of_eos"), total_inbound_calls = s.Field("_total_inbound_calls"), total_outbound_calls = s.Field("_total_outbound_calls"), vehicle_name = s.Field("_customer_vehicle_name"), organization = s.Field("organization_alias"), call_status = s.Field("_call_status"), complaints = s.Field("_complaints"), suggestion = s.Field("_suggestion"), feedback_count = s.Field("_feedback_count").ToString(), ticketid_alias = s.Field("_ticket_id_alias"), wm_name = s.Field("_wm_name"), DealerTicketOtherRemark = s.Field("_other_remarks_for_dealer"), KmCovered = s.Field("_km_covered"), estimated_distance = s.Field("_estimated_distance"), van_covered_distance = s.Field("_van_covered_distance"), trip_start_time = Convert.ToDateTime(s.Field("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), trip_end_time = Convert.ToDateTime(s.Field("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), _call_closed_within_24_hours = s.Field("_call_closed_within_24_hours"), _eicher_promise = s.Field("_eicher_promise"), opportunity_loss_remark = s.Field("_opportunity_loss_remark"), opportunity_loss = s.Field("_opportunity_loss"), remark_ticket_not_closed_24_hours = s.Field("_remark_ticket_not_closed_24_hours"), reopen_count = s.Field("_reopen_count"), remark_ticket_not_closed_24_hours_remarks = s.Field("_remark_ticket_not_closed_24_hours_remarks"), opportunity_lost_remarks = s.Field("_opportunity_lost_remarks"), ChassisNo = s.Field("_vehicle_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added for consolidate report last_Updated_Time = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, //added for feedback on 5-05-2020 are_you_satisfied = s.Field("_are_you_satisfied") == true ? "Yes" : s.Field("_are_you_satisfied") != null && s.Field("_are_you_satisfied") == false ? "No" : null, not_satisfied_option = s.Field("_not_satisfied_selected_option"), not_satisfied_reason = s.Field("_not_satisfied_reason"), response_time_reassignment = s.Field("_response_time_reassignment"), //added on 14-12-2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 //------ added on 25-11-2020 start-------------- ticket_closed_reason = s.Field("_ticket_closed_reason"), product_variant_name = s.Field("_product_name") //---------- added on 25-11-2020 end -------------------- }).ToList(); } objList.Where(x => x.trip_start_time == "01 Jan 0001 05:30:00" || x.trip_start_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_start_time = "-"; }); objList.Where(x => x.trip_end_time == "01 Jan 0001 05:30:00" || x.trip_end_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_end_time = "-"; }); objModel.ConsolidatedReportModelList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("ConsolidatedDataReport", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } public TicketRequestModel ConsolidatedDataReportActualKMLatest(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); string filterval = ""; objAuthorization = new AuthenticationRepository(); if (model.TicketType == null) { // model.TicketType = } else { string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } } if (filterval.ToLower() == "all") { filterval = null; } if (filterval == null) { } else { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } } if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.TicketType.Trim().ToLower() == "count") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_actual_km_new"], nSqlParam); } } else if (model.TicketType.Trim().ToLower() == "data") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_change_actual_km_new"], nSqlParam); } } if (model.TicketType.Trim().ToLower() == "count") { objModel.TicketCount = Convert.ToInt64(ds.Tables[0].Rows[0][0]); } else { objList = ds.Tables[0].AsEnumerable().Select(s => new ConsolidatedReportModel { ticket_id = s.Field("_ticket_id"), customer_name = s.Field("_customer_name"), customer_contact_no = s.Field("_customer_contact_no"), vehicle_type = s.Field("_vehicle_type"), chassis_number = s.Field("_chassis_number"), //vehicle_instalation_date = Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), vehicle_instalation_date = s.Field("_vehicle_instalation_date"),//;String.IsNullOrEmpty(s.Field("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])), breakdown_location = s.Field("_breakdown_location"), default_sla_time = s.Field("_default_sla_time"), //response = s.Field("_response"), response = s.Field("_response") == null || Convert.ToInt32(s.Field("_response")) <= 0 ? "0" : s.Field("_response"), eos_team_member_and_van = s.Field("_eos_team_member_and_van"), dealer_name = s.Field("_dealer_name"), dealer_contact_no = s.Field("_dealer_contact_no"), created_by = s.Field("_created_by"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), state = s.Field("_state"), city = s.Field("_city"), month_name = s.Field("_month_name"), time_slot = s.Field("_time_slot"), open_call_hrs = s.Field("_open_call_hrs"), language_name = s.Field("_language_name"), region = s.Field("_region"), landmark = s.Field("_landmark"), dealer_code = s.Field("_dealer_code"), warranty = s.Field("_warranty"), vehicle_model = s.Field("_vehicle_model"), load_carried = s.Field("_load_carried"), type_of_load_carried = s.Field("_type_of_load_carried"), call_assigned_to = s.Field("_call_assigned_to"), owner_name = s.Field("_owner_name"), owner_contact_number = s.Field("_owner_contact_number"), customer_vehicle_regn_no = s.Field("_customer_vehicle_regn_no"), nature_of_problem = s.Field("_nature_of_problem"), closure_remarks = s.Field("_closure_remarks"), estimated_cost = s.Field("_estimated_cost"), estimated_time = s.Field("_estimated_time"), time_stamps_status_1 = s.Field("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_2 = s.Field("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_3 = s.Field("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_4 = s.Field("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_5 = s.Field("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, escalation_level_van_not_move_1 = s.Field("_escalation_level_van_not_move_1"), escalation_level_van_not_move_2 = s.Field("_is_location_change"), escalation_level_van_not_move_3 = s.Field("_dealer_change_reason"), escalation_level_van_not_move_4 = s.Field("_dealer_change_reason_other_remark"), escalation_level_van_not_move_5 = s.Field("_vehicle_status"), escalation_level_van_not_move_6 = (s.Field("_location_change_time")).ToString(), // escalation_level_van_not_move_6 = s.Field(s.Field("_location_change_time") != null ? Convert.ToDateTime(s.Field("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null), //escalation_level_van_not_move_6 = s.Field("_escalation_level_van_not_move_6"), escalation_level_van_not_move_7 = s.Field("_escalation_level_van_not_move_7"), escalation_level_van_not_move_8 = s.Field("_escalation_level_van_not_move_8"), escalation_level_van_not_move_9 = s.Field("_escalation_level_van_not_move_9"), escalation_level_van_not_move_10 = s.Field("_escalation_level_van_not_move_10"), escalation_level_ticket_closer_1 = s.Field("_escalation_level_ticket_closer_1"), escalation_level_ticket_closer_2 = s.Field("_escalation_level_ticket_closer_2"), escalation_level_ticket_closer_3 = s.Field("_escalation_level_ticket_closer_3"), escalation_level_ticket_closer_4 = s.Field("_escalation_level_ticket_closer_4"), escalation_level_ticket_closer_5 = s.Field("_escalation_level_ticket_closer_5"), escalation_level_ticket_closer_6 = s.Field("_escalation_level_ticket_closer_6"), escalation_level_ticket_closer_7 = s.Field("_escalation_level_ticket_closer_7"), escalation_level_ticket_closer_8 = s.Field("_escalation_level_ticket_closer_8"), escalation_level_ticket_closer_9 = s.Field("_escalation_level_ticket_closer_9"), escalation_level_ticket_closer_10 = s.Field("_escalation_level_ticket_closer_10"), call_closure_status = s.Field("_call_closure_status"), feedback_taken = s.Field("_feedback_taken"), feedback_parameter_wise_score = s.Field("_feedback_parameter_wise_score"), feedback_ease_of_getting_call = s.Field("_feedback_ease_of_getting_call"), feedback_response_of_call_center = s.Field("_feedback_response_of_call_center"), feedback_timely_updation_by_dealer = s.Field("_feedback_timely_updation_by_dealer"), feedback_total_repair_time = s.Field("_feedback_total_repair_time"), feedback_eos_charges = s.Field("_feedback_eos_charges"), feedback_over_all_experience = s.Field("_feedback_over_all_experience"), other_remarks = s.Field("_other_remarks"), feedback_agent = s.Field("_feedback_agent"), how_did_you_come_to_know_of_eos = s.Field("_how_did_you_come_to_know_of_eos"), total_inbound_calls = s.Field("_total_inbound_calls"), total_outbound_calls = s.Field("_total_outbound_calls"), vehicle_name = s.Field("_customer_vehicle_name"), organization = s.Field("organization_alias"), call_status = s.Field("_call_status"), complaints = s.Field("_complaints"), suggestion = s.Field("_suggestion"), feedback_count = s.Field("_feedback_count").ToString(), ticketid_alias = s.Field("_ticket_id_alias"), wm_name = s.Field("_wm_name"), DealerTicketOtherRemark = s.Field("_other_remarks_for_dealer"), KmCovered = s.Field("_km_covered"), estimated_distance = s.Field("_estimated_distance"), van_covered_distance = s.Field("_van_covered_distance"), trip_start_time = Convert.ToDateTime(s.Field("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), trip_end_time = Convert.ToDateTime(s.Field("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), _call_closed_within_24_hours = s.Field("_call_closed_within_24_hours"), _eicher_promise = s.Field("_eicher_promise"), opportunity_loss_remark = s.Field("_opportunity_loss_remark"), opportunity_loss = s.Field("_opportunity_loss"), remark_ticket_not_closed_24_hours = s.Field("_remark_ticket_not_closed_24_hours"), reopen_count = s.Field("_reopen_count"), remark_ticket_not_closed_24_hours_remarks = s.Field("_remark_ticket_not_closed_24_hours_remarks"), opportunity_lost_remarks = s.Field("_opportunity_lost_remarks"), ChassisNo = s.Field("_vehicle_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added for consolidate report last_Updated_Time = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, //added for feedback on 5-05-2020 are_you_satisfied = s.Field("_are_you_satisfied") == true ? "Yes" : s.Field("_are_you_satisfied") != null && s.Field("_are_you_satisfied") == false ? "No" : null, not_satisfied_option = s.Field("_not_satisfied_selected_option"), not_satisfied_reason = s.Field("_not_satisfied_reason"), response_time_reassignment = s.Field("_response_time_reassignment"), //added on 14-12-2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 //------ added on 25-11-2020 start-------------- ticket_closed_reason = s.Field("_ticket_closed_reason") //---------- added on 25-11-2020 end -------------------- }).ToList(); } objList.Where(x => x.trip_start_time == "01 Jan 0001 05:30:00" || x.trip_start_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_start_time = "-"; }); objList.Where(x => x.trip_end_time == "01 Jan 0001 05:30:00" || x.trip_end_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_end_time = "-"; }); objModel.ConsolidatedReportModelList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("ConsolidatedDataReportActualKM", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// To get escalation levels /// /// contains escalation level input information /// status and escalation levels public EscalationLevelOutputModel GetEscalationLevels(EscalationLevelInputModel model) { EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel(); List oEscalationLevelList = new List(); try { objAuthorization = new AuthenticationRepository(); // validating security token if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.ModelNumber == null) { if (model.ProductVariant == null) { model.VehicleType = model.VehicleType; } else { if (model.ProductVariant.ToLower() == "electric") { model.VehicleType = model.VehicleType + " EV"; } } } else { string str = model.ModelNumber.ToLower(); string substring = "titan"; if (str.Contains(substring)) { if (model.ProductVariant == null) { model.VehicleType = model.VehicleType + " TITAN"; } else { if (model.ProductVariant.ToLower() == "electric") { model.VehicleType = model.VehicleType + " TITAN" + " EV"; } } } } DataSet escalationLevelDataset = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("in_dealer_id", model.DelerId); nSqlParam[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleType); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type"], nSqlParam); // binding escalation level to model list if (escalationLevelDataset.Tables[0].Rows.Count > 0) { oEscalationLevelList = escalationLevelDataset.Tables[0].AsEnumerable().Select(s => new EscalationLevel { DelaerId = s.Field("dealer_id"), ManagerName = s.Field("manager_name"), ManagerLevel = s.Field("manager_level"), ManagerPhoneNo = s.Field("phones"), VehicleType = s.Field("van_type") }).ToList(); } oEscalationLevelOutputModel.EscalationLevelList = oEscalationLevelList; } oEscalationLevelOutputModel.Status = "1"; return oEscalationLevelOutputModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetEscalationLevels", Ex.Message, path, errorlogtf); throw Ex; } } /// /// This method is used to Insert Open Dummy Ticket Details /// /// ticket info /// Dummy Id public InsertOpenTicket InsertDummyTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); //SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "0"; DataSet ds = new DataSet(); // DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[37]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.CustomerContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimated_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_insert_open_ticket_details"], nSqlParam); if (Convert.ToString(ds.Tables[0].Rows[0]["sp_dummy_insert_open_ticket_details"]) != "0") { objModel.KamTicketId = ds.Tables[0].Rows[0]["sp_dummy_insert_open_ticket_details"].ToString(); // getting dummy ticket id objModel.Status = "1"; objModel.Message = "Success"; } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertDummyTicket", Ex.Message, path, errorlogtf); return objModel; } } //----------------------- added on 23-12-2020(start)-------------------------------- public VanReachedTimeModel VanReachedDateTime(VanReachedTimeModel model) { VanReachedTimeModel objModel = new VanReachedTimeModel(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); int UtcMinute = 0; if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", model.VanReachedTime != null ? Convert.ToDateTime(model.VanReachedTime).AddMinutes(UtcMinute) : model.VanReachedTime); nSqlParam[1] = new NpgsqlParameter("in_ticket_id_alias", model.TicketIdAlias); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_van_reached_date_time"], nSqlParam); objModel.Status = "1"; objModel.Message = "Successfully saved van reached punch in time"; } else { objModel.Status = "0"; objModel.Message = "Fail the token validation"; } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = "Catch exception"; objLog.ErrorLogFile("TicketDetailsController GetEscalationLevels", Ex.Message, path, errorlogtf); return objModel; } } //----------------------- added on 23-12-2020(end)-------------------------------- /// /// To get ticket details /// /// Ticket Info /// ticket details public List GetDummyTicketDetails(DummyOpenTicketDetail model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_get_customer_saved_open_ticket_details"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new DummyOpenTicketDetail { DummyId = s.Field("dummy_id"), TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("_route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TicketIdAlias = s.Field("_ticket_id_alias"), CallerLanguage = s.Field("_caller_language"), Warranty = s.Field("_warranty"), TollFreeNoSource = s.Field("_toll_free_no_source"), StateName = s.Field("_state_name"), CityName = s.Field("_city_name"), EstimatedDistance = s.Field("_estimated_distance"), OpportunityLoss = s.Field("_opportunity_loss"), KmCovered = s.Field("_km_covered"), VehicleTagging = s.Field("_vehicle_tagging"), ReasonForMoreThan24Hours = s.Field("_reason_for_more_then_24hours"), CallStatus = s.Field("_call_status"), SuggestionComplaint = s.Field("_suggestion_complaint"), CustomerName = s.Field("customer_customer_name"), vehicle_model_number = s.Field("_vehicle_model_number"), customer_id = s.Field("_customer_id"), customer_address_id = s.Field("_customer_address_id"), product_variant = s.Field("_product_variant"), customer_mobile_number = s.Field("_customer_mobile_number"), driver_mobile_number = s.Field("_driver_mobile_number"), driver_name = s.Field("_driver_name"), //iskam = s.Field("_iskam"), customer_address = s.Field("_customer_address"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_type = s.Field("_vehicle_type"), customer_type = s.Field("_customer_type"), //vehicle_installation_date = s.Field("_vehicle_installation_date") != null ? Convert.ToDateTime(s.Field("_vehicle_installation_date")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) vehicle_installation_date = s.Field("_vehicle_installation_date"), // timestamp without time zone, }).ToList(); } } return objListTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetDummyTicketDetails", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get open dummy ticket detail user id wise /// /// ticket info /// status and open dummy ticket detail user id wise public TicketRequestModel GetDummyOpenTicketDetailUserWise(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // Get Open ticket report details. if (model.TicketType.Trim().ToLower() == "open") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_get_open_tickets_user_wise"], nSqlParam); } if (model.TicketType.Trim().ToLower() == "open") { objList = ds.Tables[0].AsEnumerable().Select(s => new DummyOpenTicketDetail { DummyId = s.Field("_dummy_id"), Description = s.Field("_description"), AssignedTo = s.Field("_assigned_to"), ReportedVia = s.Field("_reported_via"), TicketStatus = s.Field("_ticket_status"), Priority = s.Field("_priority"), CustomerScore = s.Field("_customer_score"), CreatedBy = s.Field("_created_by"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("_last_modified_by"), LastModifiedTime = Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("_breakdown_location"), BreakdownLongitude = s.Field("_breakdown_longitude"), BreakdownLattitude = s.Field("_breakdown_latitude"), AssignedToUserId = s.Field("_assigned_to_user_id"), AssignedToUserLongitude = s.Field("_assigned_to_user_longitude"), AssignedToUserLattitude = s.Field("_assigned_to_user_latitude"), EstimatedTimeForJobCompletion = s.Field("_estimated_time_for_job_completion"), EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("_estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("_vehicle_registration_number"), BreakdownLocationLandmark = s.Field("_breakdown_location_landmark"), RouteId = s.Field("_route_id"), CustomerContactNo = s.Field("_customer_contact_no"), RepairCost = s.Field("_repair_cost"), DefaultSlaTime = s.Field("_default_sla_time"), TicketIdAlias = s.Field("_ticketid_alias"), TicketId = s.Field("_ticket_id"), StateName = s.Field("_state_name"), CityName = s.Field("_city_name"), CallerLanguage = s.Field("_caller_language"), Warranty = s.Field("_warranty"), TollFreeNoSource = s.Field("_toll_free_no_source"), EstimatedDistance = s.Field("_estimated_distance"), VehicleTagging = s.Field("_vehicle_tagging"), SuggestionComment = s.Field("_suggestion_comment"), OpportunityLoss = s.Field("_opportunity_loss"), ReasonForMoreThan24Hours = s.Field("_reason_for_more_then_24hours"), CallStatus = s.Field("_call_status"), SuggestionComplaint = s.Field("_suggestion_complaint"), CustomerName = s.Field("customer_name") }).ToList(); } objModel.DummyTicketList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetDummyOpenTicketDetailUserWise", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// This is used to delete dummy save ticket details /// /// Input paramter to delete particular vehicle saved ticket /// Message and Status public InsertOpenTicket DeleteDummyOpenTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_delete_open_ticket"], nSqlParam); objModel.Status = "1"; objModel.Message = "Deleted Successfully."; } } catch (Exception Ex) { objLog.ErrorLogFile("DeleteDummyOpenTicket", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } #region Offline Methods /// /// To insert bulk opent ticket details /// /// bulk opent ticket details /// status public OfflineTicket InsertBulkOpenTicketDetail(OfflineTicket model) { OfflineTicket objTicketStatus = new OfflineTicket(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { List objList = new List(); JavaScriptSerializer jss = new JavaScriptSerializer(); objList = jss.Deserialize>(model.BulkTicketStr); for (int i = 0; i < objList.Count; i++) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[26]; nSqlParam[0] = new NpgsqlParameter("inticket_id", objList[i].TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", objList[i].AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", objList[i].ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", objList[i].Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", objList[i].CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", objList[i].BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", objList[i].LastModifiedBy); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", objList[i].LastModifiedTime); nSqlParam[8] = new NpgsqlParameter("inticket_status", objList[i].TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", objList[i].Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", objList[i].BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", objList[i].BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", objList[i].AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", objList[i].AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", objList[i].AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", objList[i].EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", objList[i].EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", objList[i].BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", objList[i].RouteId); nSqlParam[19] = new NpgsqlParameter("inrepair_cost", objList[i].RepairCost); nSqlParam[20] = new NpgsqlParameter("indefault_sla_time", objList[i].DefaultSlaTime); nSqlParam[21] = new NpgsqlParameter("insla_missed_reason", objList[i].SlaMissedReason); nSqlParam[22] = new NpgsqlParameter("insuggestion_comment", objList[i].SuggestionComment); nSqlParam[23] = new NpgsqlParameter("indefault_col_1", objList[i].JobCompleteResponseTime); nSqlParam[24] = new NpgsqlParameter("indefault_col_2", objList[i].DefaultCol2); nSqlParam[25] = new NpgsqlParameter("indefault_col_3", objList[i].DefaultCol3); NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, "sp_update_open_ticket_status_for_offline_data", nSqlParam); } objTicketStatus.Status = "1"; } else { objTicketStatus.Status = "0"; objTicketStatus.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("InsertBulkOpenTicketDetail", Ex.Message, path, errorlogtf); objTicketStatus.Status = "0"; objTicketStatus.Message = Ex.Message; } return objTicketStatus; } #endregion #region PutApi /// /// To update open ticket details /// /// open ticket details /// status public InsertOpenTicket UpdateOpenTicketWebPut(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { model.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[21]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[8] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", model.Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[19] = new NpgsqlParameter("inopportunity_loss", model.OpportunityLost); nSqlParam[20] = new NpgsqlParameter("inreason_for_more_then_24hours", model._24HrsReason); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_open_ticket_status"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { if (model.TicketId != null && model.TicketId != "") { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_service_engg_device_gcm_id"], nSqlParam1); if (dsGcm.Tables[0].Rows.Count > 0) { if (dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"] != null && dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString() != "") { objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["sp_get_service_engg_device_gcm_id"].ToString(); objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageUpdate"]; objGcmModel.TicketId = model.TicketId; objGcmModel = objGlobalRepository.GcmSendNotificationNew(objGcmModel); objModel.SenderId = objGcmModel.SenderId; } objGcmModel.DeviceGcmId = dsGcm.Tables[0].Rows[0]["_device_id"].ToString(); objGcmModel.NotificationMessage = ConfigurationManager.AppSettings["MessageUpdate"]; objGcmModel.TicketId = objModel.TicketId; // GCM id if (Convert.ToInt32(dsGcm.Tables[0].Rows[0]["_push_notification_bit"]) == 0) { objGcmModel = objGlobalRepository.GcmSendNotificationNew(objGcmModel); objModel.SenderId = objGcmModel.SenderId; objModel.Status = objGcmModel.Status; } //FCM ID else { objGcmModel = objGlobalRepository.FcmSendNotification(objGcmModel); objModel.SenderId = objGcmModel.SenderId; objModel.Status = objGcmModel.Status; } } } } } else { model.Status = "0"; model.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { model.Status = "0"; model.Message = Ex.Message; return objModel; } } #endregion /// /// To update open ticket for android /// /// open ticket detail for updation /// contain response status 1 or 0 public InsertOpenTicket UpdateOpenTrip(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds2 = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[2] = new NpgsqlParameter("inlast_modification_time", model.LastModifiedTime); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inremarks", model.OtherRemarks); nSqlParam[5] = new NpgsqlParameter("inflag", model.Flag); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_trip_end"], nSqlParam); } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("UpdateOpenTrip", Ex.Message, path, errorlogtf); return objModel; } } /// /// This method is used to Insert Open Dummy Ticket Details /// /// ticket info /// Dummy Id public InsertOpenTicket InsertDraftTicket(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); //SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "0"; DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); //DataSet ds2 = new DataSet(); // DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { //string strPar = model.VehicleRegistrationNumber; string strPar = (model.VehicleRegistrationNumber).Replace("-", " ").Replace(" ", String.Empty); //added on 15-02-2021 //Added to reduce API responce time NpgsqlParameter[] SqlParam = new NpgsqlParameter[1]; SqlParam[0] = new NpgsqlParameter("inregistration_number", (model.VehicleRegistrationNumber).Replace("-", " ").Replace(" ", String.Empty)); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dummy_draft_ticket_count"], SqlParam); if (ds.Tables[0].Rows[0]["dummy_ticket_count"].ToString() == "0" && ds.Tables[0].Rows[0]["open_ticket_count"].ToString() == "0") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[41]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); //nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", (model.VehicleRegistrationNumber).Replace("-", " ").Replace(" ", String.Empty)); //added on 15-02-2021 nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.DriverContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimated_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); nSqlParam[37] = new NpgsqlParameter("inComment", model.Comments); nSqlParam[38] = new NpgsqlParameter("inis_kam_user", model.IsKamUser); nSqlParam[39] = new NpgsqlParameter("indriver_name", model.DriverName); nSqlParam[40] = new NpgsqlParameter("inchassis_number", model.ChassisNo); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_insert_draft_ticket_details"], nSqlParam); if (Convert.ToString(ds.Tables[0].Rows[0]["sp_dummy_insert_draft_ticket_details"]) != "0") { objModel.TicketId = ds.Tables[0].Rows[0]["sp_dummy_insert_draft_ticket_details"].ToString(); // getting dummy ticket id objModel.Status = "1"; objModel.Message = "Success"; string email_body = "Hello User

A new Draft ticket is created for Registation Number:" + model.VehicleRegistrationNumber; email_body += "
The draft Ticket ID is " + objModel.TicketId; email_body += "
Please check."; } } else { if (ds.Tables[0].Rows[0][0].ToString() != "0") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.Text, "Select dummy_id from dummy_tickets_open where vehicle_registration_number=('" + strPar + "')"); objModel.TicketId = Convert.ToString(ds.Tables[0].Rows[0]["dummy_id"]); objModel.Status = "0"; } else { ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.Text, "Select ticketid_alias from tickets_open where vehicle_registration_number=('" + strPar + "')"); objModel.TicketId = Convert.ToString(ds1.Tables[0].Rows[0]["ticketid_alias"]); objModel.Status = "0"; } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertDummyTicket", Ex.Message, path, errorlogtf); return objModel; } } public TicketInfoModel getTicketInfoAPI(InsertOpenTicket model) { TicketInfoModel objTicketInfoModel = new TicketInfoModel(); TicketRequestModel objTicketRequestModel = new TicketRequestModel(); List objList = new List(); try { objAuthorization = new AuthenticationRepository(); DataSet ds = new DataSet(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (!string.IsNullOrEmpty(model.TicketId)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_info_by_ticket_id"], nSqlParam); } else if (!string.IsNullOrEmpty(model.ChassisNo)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_chassis_no", model.ChassisNo); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_info_by_chassis_no"], nSqlParam); } else if (!string.IsNullOrEmpty(model.VehicleRegistrationNumber)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_reg_no", model.VehicleRegistrationNumber); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_info_by_reg_no"], nSqlParam); } if (ds.Tables[0].Rows.Count > 0) { objTicketInfoModel.TicketStatusAlias = ds.Tables[0].AsEnumerable().Select(s => s.Field("_ticket_status_alias")).FirstOrDefault(); objTicketInfoModel.CreationTime = ds.Tables[0].AsEnumerable() .Select(s => Convert.ToDateTime(s.Field("_creation_time")) .AddMinutes(Convert.ToInt16(model.UtcMinute)) .ToString(ConfigurationManager.AppSettings["DateTimeFormat"])) .FirstOrDefault(); objTicketInfoModel.VehicleRegistrationNo = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_registration_number")).FirstOrDefault(); objTicketInfoModel.ticketid_alias = ds.Tables[0].AsEnumerable().Select(s => s.Field("_ticket_id_alias")).FirstOrDefault(); objTicketInfoModel.TicketStatus = ds.Tables[0].AsEnumerable().Select(s => s.Field("_ticket_status")).FirstOrDefault(); //added on 15-01-2021 objTicketInfoModel.ChassisNo = ds.Tables[0].AsEnumerable().Select(s => s.Field("_chassis_number")).FirstOrDefault(); //added on 15-01-2021 objTicketInfoModel.TicketStatusId = ds.Tables[0].AsEnumerable().Select(s => s.Field("_ticket_status_id")).FirstOrDefault(); objTicketInfoModel.Status = "1"; objTicketInfoModel.Message = "Exist"; } else { objTicketInfoModel.Status = "0"; objTicketInfoModel.Message = "not Exist"; } } } catch (Exception Ex) { objLog.ErrorLogFile("getEstimatedVanReach", Ex.Message, path, errorlogtf); objTicketInfoModel.Status = "0"; } return objTicketInfoModel; } /// /// This method is used to Insert Open Dummy Ticket Details /// /// ticket info /// Dummy Id public GetVanReachDetails getVanReachStatus(GetVanReachDetails model) { GetVanReachDetails objModel = new GetVanReachDetails(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); //SendNotificationModel objGcmModel = new SendNotificationModel(); try { //objModel.Status = "0"; DataSet ds = new DataSet(); // DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inid", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_reach_status"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objModel.Message = "Success"; objModel.assigned_to_user_longitude = ds.Tables[0].Rows[0]["_assigned_to_user_longitude"].ToString(); objModel.assigned_to_user_lattitude = ds.Tables[0].Rows[0]["_assigned_to_user_lattitude"].ToString(); objModel.ticketid_alias = ds.Tables[0].Rows[0]["_ticketid_alias"].ToString(); objModel.service_engineer_name = ds.Tables[0].Rows[0]["_service_engineer_name"].ToString(); objModel.contact_number = ds.Tables[0].Rows[0]["_contact_number"].ToString(); } else { //objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["0"].ToString(); } } return objModel; } catch (Exception Ex) { //objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertDummyTicket", Ex.Message, path, errorlogtf); return objModel; } } // --------------- added on 19-01-2021 start -------------------------------- public List GetAllDraftTicketCancelResonList(DraftTicketDetailModel model) { List objListDraftTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_draft_ticket_cancel_reason_list"]); if (ds.Tables[0].Rows.Count > 0) { objListDraftTicketModel = ds.Tables[0].AsEnumerable().Select(s => new DraftTicketDetailModel { DraftTicketCancelReason = s.Field("reason_name"), }).ToList(); } } return objListDraftTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetDummyTicketDetails", Ex.Message, path, errorlogtf); throw Ex; } } public DraftTicketDetailModel SaveDraftTicketCancelReson(DraftTicketDetailModel model) { DraftTicketDetailModel oDraftTicketDetailModel = new DraftTicketDetailModel(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[5]; nSqlParam[0] = new NpgsqlParameter("inDraftTicketId", model.DraftTicketId); nSqlParam[1] = new NpgsqlParameter("inRegistrationNumber", model.RegistrationNumber); nSqlParam[2] = new NpgsqlParameter("inChassisNumber", model.ChassisNumber); nSqlParam[3] = new NpgsqlParameter("inDraftTicketCancelReason", model.DraftTicketCancelReason); nSqlParam[4] = new NpgsqlParameter("indraftticketcancelremark", model.OthersReason); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_draft_ticket_cancel_reason"], nSqlParam); oDraftTicketDetailModel.Status = "1"; oDraftTicketDetailModel.Message = "Successfully saved van reached punch in time"; } else { oDraftTicketDetailModel.Status = "0"; oDraftTicketDetailModel.Message = "Fail the token validation"; } return oDraftTicketDetailModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketDetails SaveDraftTicketCancelReson", Ex.Message, path, errorlogtf); oDraftTicketDetailModel.Status = "0"; oDraftTicketDetailModel.Message = "Catch exception"; return oDraftTicketDetailModel; } } //------------ added on 09-03-2021 start ------------------------ public CancelledDraftTicketReportModel DummyCancelledDataReport(CancelledDraftTicketReportModel model) { CancelledDraftTicketReportModel objModel = new CancelledDraftTicketReportModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // Get Dummy Cancelled report details. //NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_cancelled_dummy_tickets_by_mobile"]); objList = ds.Tables[0].AsEnumerable().Select(s => new CancelledDraftTicketModel { DraftTicketId = s.Field("_dummy_id"), VehicleRegistrationNumber = s.Field("_vehicle_registration_number"), ChassisNumber = s.Field("_chassis_number"), Comments = s.Field("_customer_comments"), ContactNumber = s.Field("_contact_number"), DriverName = s.Field("_driver_name"), KamUser = s.Field("_kam_user"), //CreationTime = Convert.ToString(s.Field("_creation_time")), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), TollFreeNoSource = s.Field("_toll_free_no_source"), TicketCancelReason = s.Field("_ticket_cancel_reason"), TicketCancelRemark = s.Field("_ticket_cancel_remark"), }).ToList(); } objModel.CancelledDraftTicketList = objList; objModel.Status = "1"; } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } //------------ added on 09-03-2021 end ------------------------ //Added By Priya public ReportOpenTicketModel ConsolidatedDataReportNew(TicketRequestModel model) { ReportOpenTicketModel objModel = new ReportOpenTicketModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); string filterval = ""; if (model.consolidaetype == null) { model.consolidaetype = "old"; } if (model.TicketType == null) { } else { string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } } if (objAuthorization.AuthenticateDevice(model.Token)) { if (filterval.ToLower() == "all") { filterval = null; } if (filterval == null) { } else { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } } if (model.TicketType.Trim().ToLower() == "count") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_count_actual_km_new"], nSqlParam); } } else if (model.TicketType.Trim().ToLower() == "data") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); nSqlParam[8] = new NpgsqlParameter("infuelType", filterval); if (model.consolidaetype.ToLower() == "old") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_new"], nSqlParam); } else { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_change_actual_km_new"], nSqlParam); } } if (model.TicketType.Trim().ToLower() == "count") { objModel.TicketCount = Convert.ToInt32(ds.Tables[0].Rows[0][0]); } else { objList = ds.Tables[0].AsEnumerable().Select(s => new ConsolidatedReportModelNew { ticket_id = s.Field("_ticket_id"), customer_name = s.Field("_customer_name"), customer_contact_no = s.Field("_customer_contact_no"), vehicle_type = s.Field("_vehicle_type"), chassis_number = s.Field("_chassis_number"), //vehicle_instalation_date = Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), vehicle_instalation_date = s.Field("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])), breakdown_location = s.Field("_breakdown_location"), default_sla_time = s.Field("_default_sla_time"), //response = s.Field("_response"), response = s.Field("_response") == null || Convert.ToInt32(s.Field("_response")) <= 0 ? "0" : s.Field("_response"), eos_team_member_and_van = s.Field("_eos_team_member_and_van"), dealer_name = s.Field("_dealer_name"), dealer_contact_no = s.Field("_dealer_contact_no"), created_by = s.Field("_created_by"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), state = s.Field("_state"), city = s.Field("_city"), month_name = s.Field("_month_name"), time_slot = s.Field("_time_slot"), open_call_hrs = s.Field("_open_call_hrs"), language_name = s.Field("_language_name"), region = s.Field("_region"), landmark = s.Field("_landmark"), dealer_code = s.Field("_dealer_code"), warranty = s.Field("_warranty"), vehicle_model = s.Field("_vehicle_model"), load_carried = s.Field("_load_carried"), type_of_load_carried = s.Field("_type_of_load_carried"), call_assigned_to = s.Field("_call_assigned_to"), owner_name = s.Field("_owner_name"), owner_contact_number = s.Field("_owner_contact_number"), customer_vehicle_regn_no = s.Field("_customer_vehicle_regn_no"), nature_of_problem = s.Field("_nature_of_problem"), closure_remarks = s.Field("_closure_remarks"), estimated_cost = s.Field("_estimated_cost"), estimated_time = s.Field("_estimated_time"), time_stamps_status_1 = s.Field("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_2 = s.Field("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_3 = s.Field("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_4 = s.Field("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_5 = s.Field("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, escalation_level_van_not_move_1 = s.Field("_escalation_level_van_not_move_1"), escalation_level_van_not_move_2 = s.Field("_escalation_level_van_not_move_2"), escalation_level_van_not_move_3 = s.Field("_escalation_level_van_not_move_3"), escalation_level_van_not_move_4 = s.Field("_escalation_level_van_not_move_4"), escalation_level_van_not_move_5 = s.Field("_escalation_level_van_not_move_5"), escalation_level_van_not_move_6 = s.Field("_escalation_level_van_not_move_6"), escalation_level_van_not_move_7 = s.Field("_escalation_level_van_not_move_7"), escalation_level_van_not_move_8 = s.Field("_escalation_level_van_not_move_8"), escalation_level_van_not_move_9 = s.Field("_escalation_level_van_not_move_9"), escalation_level_van_not_move_10 = s.Field("_escalation_level_van_not_move_10"), escalation_level_ticket_closer_1 = s.Field("_escalation_level_ticket_closer_1"), escalation_level_ticket_closer_2 = s.Field("_escalation_level_ticket_closer_2"), escalation_level_ticket_closer_3 = s.Field("_escalation_level_ticket_closer_3"), escalation_level_ticket_closer_4 = s.Field("_escalation_level_ticket_closer_4"), escalation_level_ticket_closer_5 = s.Field("_escalation_level_ticket_closer_5"), escalation_level_ticket_closer_6 = s.Field("_escalation_level_ticket_closer_6"), escalation_level_ticket_closer_7 = s.Field("_escalation_level_ticket_closer_7"), escalation_level_ticket_closer_8 = s.Field("_escalation_level_ticket_closer_8"), escalation_level_ticket_closer_9 = s.Field("_escalation_level_ticket_closer_9"), escalation_level_ticket_closer_10 = s.Field("_escalation_level_ticket_closer_10"), call_closure_status = s.Field("_call_closure_status"), feedback_taken = s.Field("_feedback_taken"), feedback_parameter_wise_score = s.Field("_feedback_parameter_wise_score"), feedback_ease_of_getting_call = s.Field("_feedback_ease_of_getting_call"), feedback_response_of_call_center = s.Field("_feedback_response_of_call_center"), feedback_timely_updation_by_dealer = s.Field("_feedback_timely_updation_by_dealer"), feedback_total_repair_time = s.Field("_feedback_total_repair_time"), feedback_eos_charges = s.Field("_feedback_eos_charges"), feedback_over_all_experience = s.Field("_feedback_over_all_experience"), other_remarks = s.Field("_other_remarks"), feedback_agent = s.Field("_feedback_agent"), how_did_you_come_to_know_of_eos = s.Field("_how_did_you_come_to_know_of_eos"), total_inbound_calls = s.Field("_total_inbound_calls"), total_outbound_calls = s.Field("_total_outbound_calls"), vehicle_name = s.Field("_customer_vehicle_name"), organization = s.Field("organization_alias"), call_status = s.Field("_call_status"), complaints = s.Field("_complaints"), suggestion = s.Field("_suggestion"), feedback_count = s.Field("_feedback_count").ToString(), ticketid_alias = s.Field("_ticket_id_alias"), wm_name = s.Field("_wm_name"), DealerTicketOtherRemark = s.Field("_other_remarks_for_dealer"), KmCovered = s.Field("_km_covered"), estimated_distance = s.Field("_estimated_distance"), van_covered_distance = s.Field("_van_covered_distance"), trip_start_time = Convert.ToDateTime(s.Field("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), trip_end_time = Convert.ToDateTime(s.Field("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), _call_closed_within_24_hours = s.Field("_call_closed_within_24_hours"), _eicher_promise = s.Field("_eicher_promise"), opportunity_loss_remark = s.Field("_opportunity_loss_remark"), opportunity_loss = s.Field("_opportunity_loss"), remark_ticket_not_closed_24_hours = s.Field("_remark_ticket_not_closed_24_hours"), reopen_count = s.Field("_reopen_count"), remark_ticket_not_closed_24_hours_remarks = s.Field("_remark_ticket_not_closed_24_hours_remarks"), opportunity_lost_remarks = s.Field("_opportunity_lost_remarks"), ChassisNo = s.Field("_vehicle_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added for consolidate report last_Updated_Time = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, //added for feedback on 5-05-2020 are_you_satisfied = s.Field("_are_you_satisfied") == true ? "Yes" : s.Field("_are_you_satisfied") != null && s.Field("_are_you_satisfied") == false ? "No" : null, not_satisfied_option = s.Field("_not_satisfied_selected_option"), not_satisfied_reason = s.Field("_not_satisfied_reason"), response_time_reassignment = s.Field("_response_time_reassignment"), //added on 14-12-2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 location_change_time = s.Field("_location_change_time") != null ? Convert.ToDateTime(s.Field("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, is_location_change = s.Field("_is_location_change"), dealer_change_reason = s.Field("_dealer_change_reason"), dealer_change_reason_other_remark = s.Field("_dealer_change_reason_other_remark"), vehicle_status = s.Field("_vehicle_status"), //------ added on 25-11-2020 start-------------- ticket_closed_reason = s.Field("_ticket_closed_reason"), fuel_type = s.Field("_product_variant") //---------- added on 25-11-2020 end -------------------- }).ToList(); } objList.Where(x => x.trip_start_time == "01 Jan 0001 05:30:00" || x.trip_start_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_start_time = "-"; }); objList.Where(x => x.trip_end_time == "01 Jan 0001 05:30:00" || x.trip_end_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_end_time = "-"; }); objModel.ConsolidatedReportModelList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("ConsolidatedDataReport", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } public ReportOpenTicketModel ConsolidatedDataReportActualKM(TicketRequestModel model) { ReportOpenTicketModel objModel = new ReportOpenTicketModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); string filterval = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_Actual_km"], nSqlParam); var strExpr = "_ticket_activity ='7'"; // ds.Tables[0].DefaultView.RowFilter = "_ticket_activity = '7'"; var dv = ds.Tables[0].DefaultView; dv.RowFilter = strExpr; var newDS = new DataSet(); var newDT = dv.ToTable(); newDS.Tables.Add(newDT); objList = ds.Tables[0].AsEnumerable().Select(s => new ConsolidatedReportModelNew { ticket_id = s.Field("_ticket_id"), customer_name = s.Field("_customer_name"), customer_contact_no = s.Field("_customer_contact_no"), vehicle_type = s.Field("_vehicle_type"), chassis_number = s.Field("_chassis_number"), //vehicle_instalation_date = Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), vehicle_instalation_date = s.Field("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])), breakdown_location = s.Field("_breakdown_location"), default_sla_time = s.Field("_default_sla_time"), //response = s.Field("_response"), response = s.Field("_response") == null || Convert.ToInt32(s.Field("_response")) <= 0 ? "0" : s.Field("_response"), eos_team_member_and_van = s.Field("_eos_team_member_and_van"), dealer_name = s.Field("_dealer_name"), dealer_contact_no = s.Field("_dealer_contact_no"), created_by = s.Field("_created_by"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), state = s.Field("_state"), city = s.Field("_city"), month_name = s.Field("_month_name"), time_slot = s.Field("_time_slot"), open_call_hrs = s.Field("_open_call_hrs"), language_name = s.Field("_language_name"), region = s.Field("_region"), landmark = s.Field("_landmark"), dealer_code = s.Field("_dealer_code"), warranty = s.Field("_warranty"), vehicle_model = s.Field("_vehicle_model"), load_carried = s.Field("_load_carried"), type_of_load_carried = s.Field("_type_of_load_carried"), call_assigned_to = s.Field("_call_assigned_to"), owner_name = s.Field("_owner_name"), owner_contact_number = s.Field("_owner_contact_number"), customer_vehicle_regn_no = s.Field("_customer_vehicle_regn_no"), nature_of_problem = s.Field("_nature_of_problem"), closure_remarks = s.Field("_closure_remarks"), estimated_cost = s.Field("_estimated_cost"), estimated_time = s.Field("_estimated_time"), time_stamps_status_1 = s.Field("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_2 = s.Field("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_3 = s.Field("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_4 = s.Field("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_5 = s.Field("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, escalation_level_van_not_move_1 = s.Field("_escalation_level_van_not_move_1"), escalation_level_van_not_move_2 = s.Field("_escalation_level_van_not_move_2"), escalation_level_van_not_move_3 = s.Field("_escalation_level_van_not_move_3"), escalation_level_van_not_move_4 = s.Field("_escalation_level_van_not_move_4"), escalation_level_van_not_move_5 = s.Field("_escalation_level_van_not_move_5"), escalation_level_van_not_move_6 = s.Field("_escalation_level_van_not_move_6"), escalation_level_van_not_move_7 = s.Field("_escalation_level_van_not_move_7"), escalation_level_van_not_move_8 = s.Field("_escalation_level_van_not_move_8"), escalation_level_van_not_move_9 = s.Field("_escalation_level_van_not_move_9"), escalation_level_van_not_move_10 = s.Field("_escalation_level_van_not_move_10"), escalation_level_ticket_closer_1 = s.Field("_escalation_level_ticket_closer_1"), escalation_level_ticket_closer_2 = s.Field("_escalation_level_ticket_closer_2"), escalation_level_ticket_closer_3 = s.Field("_escalation_level_ticket_closer_3"), escalation_level_ticket_closer_4 = s.Field("_escalation_level_ticket_closer_4"), escalation_level_ticket_closer_5 = s.Field("_escalation_level_ticket_closer_5"), escalation_level_ticket_closer_6 = s.Field("_escalation_level_ticket_closer_6"), escalation_level_ticket_closer_7 = s.Field("_escalation_level_ticket_closer_7"), escalation_level_ticket_closer_8 = s.Field("_escalation_level_ticket_closer_8"), escalation_level_ticket_closer_9 = s.Field("_escalation_level_ticket_closer_9"), escalation_level_ticket_closer_10 = s.Field("_escalation_level_ticket_closer_10"), call_closure_status = s.Field("_call_closure_status"), feedback_taken = s.Field("_feedback_taken"), feedback_parameter_wise_score = s.Field("_feedback_parameter_wise_score"), feedback_ease_of_getting_call = s.Field("_feedback_ease_of_getting_call"), feedback_response_of_call_center = s.Field("_feedback_response_of_call_center"), feedback_timely_updation_by_dealer = s.Field("_feedback_timely_updation_by_dealer"), feedback_total_repair_time = s.Field("_feedback_total_repair_time"), feedback_eos_charges = s.Field("_feedback_eos_charges"), feedback_over_all_experience = s.Field("_feedback_over_all_experience"), other_remarks = s.Field("_other_remarks"), feedback_agent = s.Field("_feedback_agent"), how_did_you_come_to_know_of_eos = s.Field("_how_did_you_come_to_know_of_eos"), total_inbound_calls = s.Field("_total_inbound_calls"), total_outbound_calls = s.Field("_total_outbound_calls"), vehicle_name = s.Field("_customer_vehicle_name"), organization = s.Field("organization_alias"), call_status = s.Field("_call_status"), complaints = s.Field("_complaints"), suggestion = s.Field("_suggestion"), feedback_count = s.Field("_feedback_count").ToString(), ticketid_alias = s.Field("_ticket_id_alias"), wm_name = s.Field("_wm_name"), DealerTicketOtherRemark = s.Field("_other_remarks_for_dealer"), KmCovered = s.Field("_km_covered"), estimated_distance = s.Field("_estimated_distance"), van_covered_distance = s.Field("_van_covered_distance"), trip_start_time = Convert.ToDateTime(s.Field("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), trip_end_time = Convert.ToDateTime(s.Field("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), _call_closed_within_24_hours = s.Field("_call_closed_within_24_hours"), _eicher_promise = s.Field("_eicher_promise"), opportunity_loss_remark = s.Field("_opportunity_loss_remark"), opportunity_loss = s.Field("_opportunity_loss"), remark_ticket_not_closed_24_hours = s.Field("_remark_ticket_not_closed_24_hours"), reopen_count = s.Field("_reopen_count"), remark_ticket_not_closed_24_hours_remarks = s.Field("_remark_ticket_not_closed_24_hours_remarks"), opportunity_lost_remarks = s.Field("_opportunity_lost_remarks"), ChassisNo = s.Field("_vehicle_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added for consolidate report last_Updated_Time = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, //added for feedback on 5-05-2020 are_you_satisfied = s.Field("_are_you_satisfied") == true ? "Yes" : s.Field("_are_you_satisfied") != null && s.Field("_are_you_satisfied") == false ? "No" : null, not_satisfied_option = s.Field("_not_satisfied_selected_option"), not_satisfied_reason = s.Field("_not_satisfied_reason"), response_time_reassignment = s.Field("_response_time_reassignment"), //added on 14-12-2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 location_change_time = s.Field("_location_change_time") != null ? Convert.ToDateTime(s.Field("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, is_location_change = s.Field("_is_location_change"), dealer_change_reason = s.Field("_dealer_change_reason"), dealer_change_reason_other_remark = s.Field("_dealer_change_reason_other_remark"), vehicle_status = s.Field("_vehicle_status"), //------ added on 25-11-2020 start-------------- ticket_closed_reason = s.Field("_ticket_closed_reason"), fuel_type = s.Field("_product_variant") //---------- added on 25-11-2020 end -------------------- }).ToList(); objList.Where(x => x.trip_start_time == "01 Jan 0001 05:30:00" || x.trip_start_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_start_time = "-"; }); objList.Where(x => x.trip_end_time == "01 Jan 0001 05:30:00" || x.trip_end_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_end_time = "-"; }); objModel.ConsolidatedReportModelList = objList; objModel.Status = "1"; } catch (Exception Ex) { objLog.ErrorLogFile("ConsolidatedDataReport", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } public ReportOpenTicketModel GetReportCloseTicketDetailNew(TicketRequestModel model) { ReportOpenTicketModel objModel = new ReportOpenTicketModel(); // List objList = new List(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; string filterval = ""; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } // Get Open ticket report details. if (model.TicketType.Trim().ToLower() == "close") { if (filterval.Trim().ToLower() == "" || filterval.Trim().ToLower() == "all" || filterval.Trim().ToLower() == "open") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_user_wise_report"], nSqlParam); } else { //NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; // nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); // nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); // nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); // nSqlParam[3] = new NpgsqlParameter("inType", filterval); // ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_status_wise_report"], nSqlParam); if (filterval.ToLower() == "lcv" || filterval.ToLower() == "electric") { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("infuelType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_variant_wise_report"], nSqlParam); } else if (filterval.ToLower() == "eps" || filterval.ToLower() == "scv") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("inType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_status_wise_report"], nSqlParam); } } /* NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_closed_tickets_user_wise_report"], nSqlParam); */ objList = ds.Tables[0].AsEnumerable().Select(s => new TicketListCloseTickets { Id = s.Field("_ticket_id"), // DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), //added on 25-09-2020 VanLatitudeAtTripStart = s.Field("_van_trip_start_latitude"), VanLongitudeAtTripStart = s.Field("_van_trip_start_longitude"), VanLatitudeAtVanReached = s.Field("_van_reached_latitude"), VanLongitudeAtVanReached = s.Field("_van_reached_longitude"), VanLatitudeAtTripEnd = s.Field("_van_trip_end_latitude"), VanLongitudeAtTripEnd = s.Field("_van_trip_end_longitude"), BreakdownLocationLatitude = s.Field("_breakdown_location_latitude"), BreakdownLocationLongitude = s.Field("_breakdown_location_longitude"), //----------------added on 25-11-2020 (start) ------------------------------------- TicketClosedReason = s.Field("_ticket_closed_reason"), //----------------added on 25-11-2020 (end) ------------------------------------- VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), AssignedTo = s.Field("_assignedto"), EstimatedTimeForJobComplition = s.Field("_estimatedtimeforjobcompletion"), Age = Convert.ToDouble(s.Field("_age")), DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_feedbackagent") : null, DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field("_reasonformorethen24hours") : null, CallStatus = s.Field("_call_status"), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), feedback_call_status = s.Field("_feedback_status"), total_count = Convert.ToString(s.Field("_feedback_count")), reopen_count = Convert.ToString(s.Field("_reopen_count")), Score = s.Field("_score"), ChassisNo = s.Field("_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added on 03/12/2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), AssignedToUserLatitude = s.Field("_assigned_lat"), AssignedToUserLongitude = s.Field("_assigned_long"), BreackDownLongitude = s.Field("_estimated_van_reach_time"), VanAssignedLat = s.Field("_assigned_lat"), VanAssignedLong = s.Field("_assigned_long"), EstimatedVanReachTime = s.Field("_estimated_van_reach_time"), fuel_type = s.Field("_fuel_type"), VanReachedPunchTime = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 model_number = s.Field("_model_number"), battery_voltage = s.Field("_battery_voltage") == null ? "" : s.Field("_battery_voltage"), fuelLevelInLtr = s.Field("_fuelLevelInLtr") == null ? "" : s.Field("_fuelLevelInLtr"), defLevelInLtr = s.Field("_defLevelInLtr") == null ? "" : s.Field("_defLevelInLtr"), TripENDBY = s.Field("_tripendstatus") == null ? "U" : (s.Field("_tripendstatus")).ToUpper(), }).ToList(); objModel.TicketcloseList = objList; objModel.Status = "1"; } } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } /// /// To get open and close ticket detail user id wise /// /// ticket info /// status and open and close ticket detail user id wise public ReportOpenTicketModel GetOpenCloseTicketDetailNew(TicketRequestModel model) { ReportOpenTicketModel objModel = new ReportOpenTicketModel(); // List objList = new List(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); string[] filterType = model.TicketType.ToString().Split(','); int cout = filterType.Length; string filterval = ""; if (cout == 2) { { model.TicketType = filterType[0]; filterval = filterType[1]; } } else { model.TicketType = filterType[0]; } if (objAuthorization.AuthenticateDevice(model.Token)) { // Get Open ticket report details. if (model.TicketType.Trim().ToLower() == "open") { if (filterval.Trim().ToLower() == "" || filterval.Trim().ToLower() == "all" || filterval.Trim().ToLower() == "open") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_user_wise_report"], nSqlParam); } else { //NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; // nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); // nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); // nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); // nSqlParam[3] = new NpgsqlParameter("inType", filterval); // ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_status_wise_report"], nSqlParam); if (filterval.ToLower() == "lcv" || filterval.ToLower() == "electric") { if (filterval.ToLower() == "lcv") { filterval = "diesel,cng"; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("infuelType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_variant_wise_report"], nSqlParam); } else if (filterval.ToLower() == "eps" || filterval.ToLower() == "scv") { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inType", filterval); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_status_wise_report"], nSqlParam); } } objList = ds.Tables[0].AsEnumerable().Select(s => new TicketListOpenTickets { // Id = s.Field("_ticket_id"), // DefaultSlaTime = s.Field("_default_sla_time"), CustomeContact_no = s.Field("_customer_contact_no"), assigned_to = s.Field("_assignedto"), TotalTicketLifeCycleTimeSlab = s.Field("_total_ticket_lifecycle_time_sla") == null || s.Field("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field("_total_ticket_lifecycle_time_sla"), ServiceEngineerName = s.Field("_van_dealer_name"), DealerDealerName = s.Field("_dealer_name"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), TicketStatusAlias = s.Field("_ticket_status_alias"), VehicleTagging = s.Field("_customer_vehicle_model_tagging"), CustomerName = s.Field("_customer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), // LastModifiedTime = Convert.ToDateTime(s.Field("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), // gps_status = s.Field("_gps_status"), // current_latitude = s.Field("_current_latitude"), // current_longitude = s.Field("_current_longitude"), PreClosureTime = Convert.ToDateTime(s.Field("_pre_closure_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), ChassisNo = s.Field("_chassis_number"), OdometerReading = s.Field("_odometer_reading"), Remarks = s.Field("_last_remark"), Description = s.Field("_nature_of_problem"), CSMName = s.Field("csm"), CSMNo = s.Field("csm_contact_no"), RSMName = s.Field("rsm"), RSMNo = s.Field("rsm_contact_no"), ASMName = s.Field("asm"), ASMNo = s.Field("asm_contact_no"), dealer1scode = s.Field("_Dealer_name_1scode"), Vehicle_Status = s.Field("_vehicle_status"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), CreatedBy = s.Field("_created_by"), Region = s.Field("_region"), fuel_type = s.Field("_fuel_type"), model_number = s.Field("_model_number"), battery_voltage = s.Field("_battery_voltage") == null ? "" : s.Field("_battery_voltage"), fuelLevelInLtr = s.Field("_fuelLevelInLtr") == null ? "" : s.Field("_fuelLevelInLtr"), defLevelInLtr = s.Field("_defLevelInLtr") == null ? "" : s.Field("_defLevelInLtr"), preclosurereason = s.Field("_preclosereaon") == null ? "" : s.Field("_preclosereaon"), VanReachedPunchTime = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 }).ToList(); objModel.TicketopenList = objList; objModel.Status = "1"; } } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objModel; } public string InsertRabbitMqdata(RabittMqDataModel model) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[16]; nSqlParam[0] = new NpgsqlParameter("intemporary_eos_ticket", model.temporary_eos_ticket_number); nSqlParam[1] = new NpgsqlParameter("ineos_ticket_number", model.eos_ticket_number); nSqlParam[2] = new NpgsqlParameter("inticket_status", model.ticket_status); nSqlParam[3] = new NpgsqlParameter("inticket_status_description", model.ticket_status_description); nSqlParam[4] = new NpgsqlParameter("inassigned_to_user_id", model.assigned_to_user_id); nSqlParam[5] = new NpgsqlParameter("invan_number", model.van_number); nSqlParam[6] = new NpgsqlParameter("intechnician_name", model.technician_name); nSqlParam[7] = new NpgsqlParameter("intechnician_number", model.technician_number); nSqlParam[8] = new NpgsqlParameter("inlast_modified_time", model.last_modified_time); nSqlParam[9] = new NpgsqlParameter("ineos_ticket_closure_comment", model.eos_ticket_closure_comment); nSqlParam[10] = new NpgsqlParameter("invehicle_registration_number", model.vehicle_registration_number); nSqlParam[11] = new NpgsqlParameter("inchassis_number", model.chassis_number); nSqlParam[12] = new NpgsqlParameter("indealer_code", model.dealer_code); nSqlParam[13] = new NpgsqlParameter("inbreakdown_location", model.breakdown_location); nSqlParam[14] = new NpgsqlParameter("inbreakdown_longitude", model.breakdown_longitude); nSqlParam[15] = new NpgsqlParameter("inbreakdown_lattitude", model.breakdown_lattitude); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_rabitt_mq_data"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("InsertRabbitMqdata", Ex.Message, path, errorlogtf); } return strmessage; } public string InsertSVCDetails(SVCDetails model) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; nSqlParam[0] = new NpgsqlParameter("inCustomerName", model.CustomerName); nSqlParam[1] = new NpgsqlParameter("inCustomerNumber", model.CustomerNumber); nSqlParam[2] = new NpgsqlParameter("inAddress", model.Address); nSqlParam[3] = new NpgsqlParameter("inisoemn", model.isoem); nSqlParam[4] = new NpgsqlParameter("inoemName", model.oemName); nSqlParam[5] = new NpgsqlParameter("inCreatedBy", model.CreatedBy); nSqlParam[6] = new NpgsqlParameter("inQuantity", model.Quantity); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_SVC_data"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("InsertSVCDetails", Ex.Message, path, errorlogtf); } return strmessage; } public string InsertAccidentalDetails(AccidentalDetails model) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inCustomerName", model.CustomerName); nSqlParam[1] = new NpgsqlParameter("inCustomerNumber", model.CustomerNumber); nSqlParam[2] = new NpgsqlParameter("inAddress", model.Location); nSqlParam[3] = new NpgsqlParameter("inisabulancesupportrequired", model.isabulancesupportrequired); nSqlParam[4] = new NpgsqlParameter("inisdealersupportrequired", model.isdealersupportrequired); nSqlParam[5] = new NpgsqlParameter("indealerconnect", model.Dealer_Connect); nSqlParam[6] = new NpgsqlParameter("inreg_no", model.Registration_number); nSqlParam[7] = new NpgsqlParameter("inCreatedBy", model.CreatedBy); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_accidental_data"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("InsertAccidentalDetails", Ex.Message, path, errorlogtf); } return strmessage; } public string InsertEPSSalesDetails(EPSSalesDetails model) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inCustomerName", model.CustomerName); nSqlParam[1] = new NpgsqlParameter("inCustomerNumber", model.CustomerNumber); nSqlParam[2] = new NpgsqlParameter("inAddress", model.Location); nSqlParam[3] = new NpgsqlParameter("inQunatity", model.Qunatity); nSqlParam[4] = new NpgsqlParameter("inProductType", model.ProductType); nSqlParam[5] = new NpgsqlParameter("inCreatedBy", model.CreatedBy); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_eps_sales_lead_data"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { string strmsg = sendEPSLeadDetailmail(model); strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("InsertEPSSalesDetails", Ex.Message, path, errorlogtf); } return strmessage; } public string getEstimatedVanReach(string ticketid) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", ticketid); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_reach_estimated_time"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_van_reach_estimated_time"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("getEstimatedVanReach", Ex.Message, path, errorlogtf); } return strmessage; } public string getOTP(InsertOpenTicket model) { string strmessage = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("in_ticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("in_van_id", ""); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_otp"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_ticket_otp"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } } catch (Exception Ex) { objLog.ErrorLogFile("usp_get_ticket_otp", Ex.Message, path, errorlogtf); } return strmessage; } public string getLanguage(InsertOpenTicket model) { string strmessage = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", model.TicketId); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_Language"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_ticket_Language"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } } catch (Exception Ex) { objLog.ErrorLogFile("usp_get_ticket_Language", Ex.Message, path, errorlogtf); } return strmessage; } public string getLanguageByUser(InsertOpenTicket model) { string strmessage = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_user_id", model.TicketId); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_user_Language"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_user_language_cce"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } } catch (Exception Ex) { objLog.ErrorLogFile("getLanguageByUser", Ex.Message, path, errorlogtf); } return strmessage; } public string getimeForSMS(string ticketid) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", ticketid); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_time_for_sms"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_time_for_sms"]); DateTime parsedDate = DateTime.ParseExact(strmessage, "yyyy-MM-dd HH:mm:ss", null); // Format the DateTime object into dd-MM-yyyy hh:mm:ss tt format (12-hour time) strmessage = parsedDate.ToString("dd-MM-yyyy hh:mm:ss tt"); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("getimeForSMS", Ex.Message, path, errorlogtf); } return strmessage; } public string updateislocationchange(string ticketid, string BreakdownLocation, string breakdownLongitude, string breakdownLattitude, string state, string City, string Route, string Landmark) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketid); nSqlParam[1] = new NpgsqlParameter("inBreakdown_Location", BreakdownLocation); nSqlParam[2] = new NpgsqlParameter("inbreakdownLongitude", breakdownLongitude); nSqlParam[3] = new NpgsqlParameter("inbreakdownLattitude", breakdownLattitude); nSqlParam[4] = new NpgsqlParameter("inCity", City); nSqlParam[5] = new NpgsqlParameter("instate", state); nSqlParam[6] = new NpgsqlParameter("inRoute", Route); nSqlParam[7] = new NpgsqlParameter("inLandmark", Landmark); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_location_change_flag"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success"; // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("updateislocationchange", Ex.Message, path, errorlogtf); } return strmessage; } public string updatedealerchangereason(string ticketid, string reason, string otherreason) { string strmessage = ""; try { objLog.ErrorLogFile("updatedealerchangereason called", "start", path, errorlogtf); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketid); nSqlParam[1] = new NpgsqlParameter("inreason", reason); nSqlParam[2] = new NpgsqlParameter("inotherreason", otherreason); ; DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_dealer_change_reason"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success"; objLog.ErrorLogFile("updatedealerchangereason called", "success", path, errorlogtf); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("updatedealerchangereason", Ex.Message, path, errorlogtf); } return strmessage; } /// /// To get Warranty list /// /// Warranty list public List GetdealerchangereasonList() { List objList = new List(); try { DataSet ds = new DataSet(); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_change_reason_details"]); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { objList = ds.Tables[0].AsEnumerable().Select(s => new TollFreeNoSourceModel { Id = s.Field("id"), ReasonAlias = s.Field("reason_alias"), ReasonName = s.Field("reason_name"), TypeAlias = s.Field("type_alias"), TypeId = s.Field("type_id"), }).ToList(); } } } catch (Exception Ex) { objLog.ErrorLogFile("GetTollFreeNoSources", Ex.Message, path, errorlogtf); } return objList; } public VECVReportRequestModel GetTicketDetailVECVCalculation(VECVReportRequestModel model) { VECVReportRequestModel detailVecvCalculation = new VECVReportRequestModel(); List vecvCalculationList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_vecv_report_details"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) vecvCalculationList = ds.Tables[0].AsEnumerable().Select(s => new VECVCalculation { AssignedTo = s.Field("_assigned_to"), TicketStatus = s.Field("_ticket_status"), TicketStatusAlias = s.Field("_ticket_status_alias"), TicketIdAlias = s.Field("_ticket_id_alias"), DealerCode = s.Field("_dealer_code"), AssignedToUserId = s.Field("_assigned_to_user_id"), Dealer_name = s.Field("_dealer_name"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).ToString("dd MMM yyy HH:mm:ss"), LastModifiedTime = Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //Convert.ToDateTime(s.Field("_last_modified_time")).ToString("dd MMM yyy HH:mm:ss"), Call_Closure = Convert.ToDateTime(s.Field("_call_closure")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //Convert.ToDateTime(s.Field("_call_closure")).ToString("dd MMM yyy HH:mm:ss"), Call_Preclosed = Convert.ToDateTime(s.Field("_call_preclosed")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //Convert.ToDateTime(s.Field("_call_preclosed")).ToString("dd MMM yyy HH:mm:ss"), Reassignment_Time = Convert.ToDateTime(s.Field("_reassignment_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), ////Convert.ToDateTime(s.Field("_reassignment_time")).ToString("dd MMM yyy HH:mm:ss"), Ticket_Accepted = Convert.ToDateTime(s.Field("_ticket_accepted")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //Convert.ToDateTime(s.Field("_ticket_accepted")).ToString("dd MMM yyy HH:mm:ss"), //VanReachedTime = Convert.ToDateTime(s.Field("_vanreachedtime")).ToString("dd MMM yyy HH:mm:ss"), VanReachedTime = Convert.ToDateTime(s.Field("_vanreachedtime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Van_Reached = Convert.ToDateTime(s.Field("_vanreachedtime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //VanReachedTime = s.Field("_vanreachedtime") != null ? Convert.ToDateTime(s.Field("_vanreachedtime")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_vanreachedtime")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), }).ToList(); detailVecvCalculation.TicketList = vecvCalculationList; detailVecvCalculation.Status = "1"; } else { detailVecvCalculation.Status = "0"; detailVecvCalculation.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return detailVecvCalculation; } catch (Exception ex) { detailVecvCalculation.Status = "0"; detailVecvCalculation.Message = ex.Message; this.objLog.ErrorLogFile("GetDealerOpenTicketDetail", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } /// /// To get customer open ticket history /// /// device and ticket info /// status and customer open ticket history public TicketOpenModelCogentAPI GetOpenTicketHistoryForCogent(string mobile_no) { TicketOpenModelCogentAPI objTicketModel = new TicketOpenModelCogentAPI(); try { DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inmobile_number ", mobile_no); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_Cogent_API"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel.CustomeContact_no = dsOpen.Tables[0].Rows[0]["_mobile_number"].ToString(); objTicketModel.CustomerName = dsOpen.Tables[0].Rows[0]["_customer_name"].ToString(); objTicketModel.VehicleRegistrationNo = dsOpen.Tables[0].Rows[0]["_vehicle_registration_number"].ToString(); objTicketModel.TicketIdAlias = dsOpen.Tables[0].Rows[0]["_ticketid_alias"].ToString(); objTicketModel.TicketStatusAlias = dsOpen.Tables[0].Rows[0]["_ticket_status_alias"].ToString(); objTicketModel.TicketStatus = dsOpen.Tables[0].Rows[0]["_ticket_status"].ToString(); objTicketModel.isExists = true; } else { objTicketModel.isExists = false; } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get van and dealer list. /// /// van and dealer info /// van and dealer list public List GetVanDealerListStateWiseGetAllVan(VanDealerListStateWise model) { List objListModel = new List(); // VanDealerListStateWise objModel = new VanDealerListStateWise(); VanDealerListStateWiseGetAllVan objModel = new VanDealerListStateWiseGetAllVan(); try { // objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWiseGetAllVan(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["_latitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["_longitude"].ToString(); objModel.DeviceStatus = ds.Tables[0].Rows[i]["_device_status"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); //objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.Latitude).FirstOrDefault() == null ? // ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : // listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.Latitude).FirstOrDefault(); //objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.Longitude).FirstOrDefault() == null ? // ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : // listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.Longitude).FirstOrDefault(); ; //objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.DeviceStatus).FirstOrDefault() == null ? // "False" : // listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) // .Select(s => s.DeviceStatus).FirstOrDefault() // ; } objListModel.Add(objModel); } } } else { //objListModel.st = "0"; //objListModel. = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { //objListModel.Status = "0"; //objListModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWiseGetAllVan", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get van and dealer list. /// /// van and dealer info /// van and dealer list public List GetVanListStateWise(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.Fuel_type == null) { } else { if (model.Fuel_type.ToLower() == "electric") { } else { model.Fuel_type = "diesel,cng"; } } DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[5]; if (model.StateName == null || model.StateName == "van") { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("indealer_1sCode", model.DealerSCode.Trim()); nSqlParam1[1] = new NpgsqlParameter("infuel_type", model.Fuel_type.ToLower()); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_by_dealer"], nSqlParam1); } else { nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("indealer_1sCode", model.DealerSCode); nSqlParam[4] = new NpgsqlParameter("infuel_type", model.Fuel_type.ToLower()); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_van_list_fuel_type"], nSqlParam); } string deviceAlias = ""; if (model.StateName == null) { } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } else { if (model.StateName == null) { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); VanDealerListStateWise objVanDealerListStateWise = new VanDealerListStateWise(); objVanDealerListStateWise = GetVanlatlngbydevicealias(objModel.DeviceAlias); objModel.Limit = objVanDealerListStateWise.DealerVanLattitude; objModel.Status = objVanDealerListStateWise.DealerVanLongitude; //if (dslatlng.Tables[0].Rows.Count > 0) //{ // for (int j = 0; j < dslatlng.Tables[0].Rows.Count; j++) // { // if (j == 0) // { // objModel.Limit = ds.Tables[0].Rows[j]["dealer_van_lattitude"].ToString(); // objModel.Status = ds.Tables[0].Rows[j]["dealer_van_longitude"].ToString(); // } // } //} } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; } objListModel.Add(objModel); } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWise", Ex.Message, path, errorlogtf); throw Ex; } } public List GetVanListDealerWise(string DealerSCode, VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { objModel.Status = "1"; if (model.Fuel_type.ToLower() == "electric") { } else { model.Fuel_type = "diesel,cng"; } DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); //NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; //nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); //nSqlParam[1] = new NpgsqlParameter("indealer_1sCode", DealerSCode); //nSqlParam[2] = new NpgsqlParameter("infuel_type", model.Fuel_type.ToLower()); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[5]; nSqlParam[0] = new NpgsqlParameter("inuser_id ", model.UserId); nSqlParam[1] = new NpgsqlParameter("instate_name ", model.StateName); nSqlParam[2] = new NpgsqlParameter("inlimit ", model.Limit); nSqlParam[3] = new NpgsqlParameter("indealer_1sCode", model.DealerSCode); nSqlParam[4] = new NpgsqlParameter("infuel_type", model.Fuel_type.ToLower()); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_wise_van_list_fuel_type"], nSqlParam); string deviceAlias = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "van") { if (i == 0) { deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); } else { deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString(); } } } //Get device tracking log nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objModel = new VanDealerListStateWise(); //get dealer details. if (ds.Tables[0].Rows[i]["_type"].ToString().Trim().ToLower() == "dealer") { objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString(); objModel.DealerVanLongitude = ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString(); objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DeviceStatus = "False"; objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } else { //get van details and bind with tracking log device alias wise. objModel.DealerVanId = ds.Tables[0].Rows[i]["dealer_van_id"].ToString(); objModel.DealerVanName = ds.Tables[0].Rows[i]["dealer_van_name"].ToString(); objModel.DealerVanLattitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_lattitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Latitude).FirstOrDefault(); objModel.DealerVanLongitude = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault() == null ? ds.Tables[0].Rows[i]["dealer_van_longitude"].ToString() : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.Longitude).FirstOrDefault(); ; objModel.DeviceStatus = listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() == null ? "False" : listTracking.Where(w => w.DeviceAlias.Equals(ds.Tables[0].Rows[i]["device_alias"].ToString())) .Select(s => s.DeviceStatus).FirstOrDefault() ; objModel.DealerVanCity = ds.Tables[0].Rows[i]["dealer_van_city"].ToString(); objModel.DealerVanState = ds.Tables[0].Rows[i]["dealer_van_state"].ToString(); objModel.DeviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString(); objModel.NoOfAssignedTicket = Convert.ToInt64(ds.Tables[0].Rows[i]["no_of_assigned_ticket"].ToString()); objModel.Type = ds.Tables[0].Rows[i]["_type"].ToString(); objModel.RemainingTime = ds.Tables[0].Rows[i]["remaining_time"].ToString(); objModel.DealerSCode = ds.Tables[0].Rows[i]["dealer_id"].ToString(); objModel.DealerOrVanContactNo = ds.Tables[0].Rows[i]["contact_number"].ToString(); objModel.Fuel_type = ds.Tables[0].Rows[i]["fueltype"].ToString(); } objListModel.Add(objModel); } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); return objListModel; } } return objListModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListStateWise", Ex.Message, path, errorlogtf); throw Ex; } } public CustomerVehicleModelDBM GetwarrantyDetailsDBM(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCustomerVehicleModel = new CustomerVehicleModelDBM(); try { objCustomerVehicleModel.Status = 1; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; if (model.VehicleNumberPlate == null || model.VehicleNumberPlate == "") { } else { nSqlParam[0] = new NpgsqlParameter("inchassis_number ", model.VehicleNumberPlate); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_warranty_detail_By_DBM_registration_number"], nSqlParam); } if (ds.Tables[0].Rows.Count > 0) { model.extended_warranty = ds.Tables[0].Rows[0]["_extended_warranty"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_warranty_end_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.warranty_end_date = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_warranty_end_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.warranty_end_date = ""; } } } else { model.Status = 0; model.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return model; } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetCustomerDetails", Ex.Message, path, errorlogtf); return objCustomerVehicleModel; } } /// /// To get customer details /// /// device and ticket info /// status and customer details public CustomerVehicleModelDBM GetCustomerDetailsDBM(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCustomerVehicleModel = new CustomerVehicleModelDBM(); try { objCustomerVehicleModel.Status = 1; if (model.VehicleRegistrationNumber == null) { model.VehicleRegistrationNumber = ""; } if (model.VehicleNumberPlate == null) { model.VehicleNumberPlate = ""; } objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; if (System.Configuration.ConfigurationManager.AppSettings["isdatalakemailsend"] != "true") { Stopwatch stopwatch = Stopwatch.StartNew(); if (model.VehicleRegistrationNumber == null || model.VehicleRegistrationNumber == "") { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", null); nSqlParam[1] = new NpgsqlParameter("inchassis_number ", model.VehicleNumberPlate); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_By_DBM"], nSqlParam); stopwatch.Stop(); if (System.Configuration.ConfigurationManager.AppSettings["insecond"] != "true") { // if (stopwatch.Elapsed.TotalSeconds > 10) if (stopwatch.Elapsed.TotalMilliseconds > Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["milisecondtimestamp"])) { sendmailDataLake(); Console.WriteLine($"Stored procedure took too long: {stopwatch.Elapsed.TotalSeconds} seconds"); } else { Console.WriteLine($"Stored procedure executed in: {stopwatch.Elapsed.TotalSeconds} seconds"); } } else { // if (stopwatch.Elapsed.TotalSeconds > 10) if (stopwatch.Elapsed.TotalMilliseconds > Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["secondtimestamp"])) { sendmailDataLake(); Console.WriteLine($"Stored procedure took too long: {stopwatch.Elapsed.TotalSeconds} seconds"); } else { Console.WriteLine($"Stored procedure executed in: {stopwatch.Elapsed.TotalSeconds} seconds"); } } } else { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber); nSqlParam[1] = new NpgsqlParameter("inchassis_number ", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_By_DBM_registration_number"], nSqlParam); stopwatch.Stop(); if (System.Configuration.ConfigurationManager.AppSettings["insecond"] != "true") { // if (stopwatch.Elapsed.TotalSeconds > 10) if (stopwatch.Elapsed.TotalMilliseconds > Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["milisecondtimestamp"])) { sendmailDataLake(); Console.WriteLine($"Stored procedure took too long: {stopwatch.Elapsed.TotalSeconds} seconds"); } else { Console.WriteLine($"Stored procedure executed in: {stopwatch.Elapsed.TotalSeconds} seconds"); } } else { // if (stopwatch.Elapsed.TotalSeconds > 10) if (stopwatch.Elapsed.TotalSeconds > Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["secondtimestamp"])) { sendmailDataLake(); Console.WriteLine($"Stored procedure took too long: {stopwatch.Elapsed.TotalSeconds} seconds"); } else { Console.WriteLine($"Stored procedure executed in: {stopwatch.Elapsed.TotalSeconds} seconds"); } } } } else { if (model.VehicleRegistrationNumber == null || model.VehicleRegistrationNumber == "") { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", null); nSqlParam[1] = new NpgsqlParameter("inchassis_number ", model.VehicleNumberPlate); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_By_DBM"], nSqlParam); } else { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber); nSqlParam[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[0].Rows.Count > 0) { model.VehicleRegistrationNumber = ds.Tables[0].Rows[0]["_vehicle_registration_number"].ToString(); model.VehicleNumberPlate = ds.Tables[0].Rows[0]["vehicle_number_plate"].ToString(); model.VehicleModelNumber = ds.Tables[0].Rows[0]["_customer_vehicle_model_name"].ToString(); model.VehicleType = ds.Tables[0].Rows[0]["_vehicle_type"].ToString(); model.product_variant = ds.Tables[0].Rows[0]["_vertical"].ToString(); model.OdoMeterReading = ds.Tables[0].Rows[0]["_odo_meter_reading"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.VehicleSalesDate = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_sales_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.VehicleSalesDate = ""; } model.vehicle_installation_date = ds.Tables[0].Rows[0]["_vehicle_Installation_date"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_installation_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.vehicle_installation_date = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_installation_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.vehicle_installation_date = ""; } if (model.vehicle_installation_date == "NaN NaN NaN" || model.vehicle_installation_date == "" || model.vehicle_installation_date == "null") { model.vehicle_installation_date = ""; } if (model.VehicleSalesDate == "NaN NaN NaN" || model.VehicleSalesDate == "" || model.VehicleSalesDate == "null") { model.VehicleSalesDate = ""; } model.VehicleEmissionNorms = ds.Tables[0].Rows[0]["_vehicle_emmision_norms"].ToString(); model.VehicleFuelType = ds.Tables[0].Rows[0]["_vehicle_fuel_type"].ToString(); model.vehicle_warranty = ds.Tables[0].Rows[0]["_vehicle_warranty"].ToString(); model.CustomerName = ds.Tables[0].Rows[0]["_customer_customer_name"].ToString(); model.CustomerMobile1 = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); // model. = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); model.CustomerAddress = ds.Tables[0].Rows[0]["_customer_address"].ToString(); model.CustomerState = ds.Tables[0].Rows[0]["_customer_state"].ToString(); model.CustomerCity = ds.Tables[0].Rows[0]["_customer_city"].ToString(); model.vehicle_amc = ds.Tables[0].Rows[0]["_vehicle_amc"].ToString(); if (model.vehicle_amc.ToLower() == "active") { model.vehicle_amc = "yes"; model.AMCType = ds.Tables[0].Rows[0]["_vehicle_amc_type"].ToString(); model.AMCDate = ds.Tables[0].Rows[0]["_vehicle_amc_date"].ToString(); } else { model.vehicle_amc = "no"; model.AMCType = ""; model.AMCDate = ""; } if (ds.Tables[0].Rows[0]["_customer_id"].ToString() == null) { model.CustomerId = ""; } else { model.CustomerId = ds.Tables[0].Rows[0]["_customer_id"].ToString(); } model.CustomerType = ds.Tables[0].Rows[0]["_customer_type"].ToString(); model.userType = "DBMDataLake"; } } else { model.Status = 0; model.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return model; } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetCustomerDetails", Ex.Message, path, errorlogtf); return objCustomerVehicleModel; } } public CustomerVehicleModelDBM GetCustomerDetailsDBMChassisNo(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCustomerVehicleModel = new CustomerVehicleModelDBM(); try { objCustomerVehicleModel.Status = 1; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inchassis_number ", model.VehicleNumberPlate); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_detail_by_dbm_chassis_number"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { model.VehicleRegistrationNumber = model.VehicleRegistrationNumber;//ds.Tables[0].Rows[0]["_vehicle_registration_number"].ToString(); model.VehicleNumberPlate = ds.Tables[0].Rows[0]["vehicle_number_plate"].ToString(); model.VehicleModelNumber = ds.Tables[0].Rows[0]["_customer_vehicle_model_name"].ToString(); model.VehicleType = ds.Tables[0].Rows[0]["_vehicle_type"].ToString(); model.product_variant = ds.Tables[0].Rows[0]["_vertical"].ToString(); model.OdoMeterReading = ds.Tables[0].Rows[0]["_odo_meter_reading"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.VehicleSalesDate = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_sales_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.VehicleSalesDate = ""; } model.vehicle_installation_date = ds.Tables[0].Rows[0]["_vehicle_Installation_date"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_installation_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.vehicle_installation_date = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_installation_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.vehicle_installation_date = ""; } if (model.vehicle_installation_date == "NaN NaN NaN" || model.vehicle_installation_date == "" || model.vehicle_installation_date == "null") { model.vehicle_installation_date = ""; } if (model.VehicleSalesDate == "NaN NaN NaN" || model.VehicleSalesDate == "" || model.VehicleSalesDate == "null") { model.VehicleSalesDate = ""; } model.VehicleEmissionNorms = ds.Tables[0].Rows[0]["_vehicle_emmision_norms"].ToString(); model.VehicleFuelType = ds.Tables[0].Rows[0]["_vehicle_fuel_type"].ToString(); model.vehicle_warranty = ds.Tables[0].Rows[0]["_vehicle_warranty"].ToString(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); model.extended_warranty = tokens[0]; model.warranty_end_date = tokens[1]; } string WARRANTY = ""; WARRANTY = objGlobalRepository.getvehiclewarranty(model.VehicleRegistrationNumber); model.vehicle_warranty = WARRANTY; model.CustomerName = ds.Tables[0].Rows[0]["_customer_customer_name"].ToString(); model.CustomerMobile1 = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); // model. = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); model.CustomerAddress = ds.Tables[0].Rows[0]["_customer_address"].ToString(); model.CustomerState = ds.Tables[0].Rows[0]["_customer_state"].ToString(); model.CustomerCity = ds.Tables[0].Rows[0]["_customer_city"].ToString(); model.vehicle_amc = ds.Tables[0].Rows[0]["_vehicle_amc"].ToString(); if (model.vehicle_amc.ToLower() == "active") { model.vehicle_amc = "yes"; model.AMCType = ds.Tables[0].Rows[0]["_vehicle_amc_type"].ToString(); model.AMCDate = ds.Tables[0].Rows[0]["_vehicle_amc_date"].ToString(); } else { model.vehicle_amc = "no"; model.AMCType = ""; model.AMCDate = ""; } if (ds.Tables[0].Rows[0]["_customer_id"].ToString() == null) { model.CustomerId = ""; } else { model.CustomerId = ds.Tables[0].Rows[0]["_customer_id"].ToString(); } model.CustomerType = ds.Tables[0].Rows[0]["_customer_type"].ToString(); model.userType = "DBMDataLake"; } } else { model.Status = 0; model.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return model; } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetCustomerDetails", Ex.Message, path, errorlogtf); return objCustomerVehicleModel; } } public string updateopenticketvalues(CustomerVehicleModelDBM model) { string strmessage = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[27]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketNo); nSqlParam[1] = new NpgsqlParameter("incustomername", model.CustomerName); nSqlParam[2] = new NpgsqlParameter("invehiclefueltype", model.VehicleFuelType); nSqlParam[3] = new NpgsqlParameter("inVehicleModelNumber", model.VehicleModelNumber); nSqlParam[4] = new NpgsqlParameter("incustomertype", model.CustomerType); nSqlParam[5] = new NpgsqlParameter("inchassisnumber", model.VehicleNumberPlate); nSqlParam[6] = new NpgsqlParameter("inInsDate", model.vehicle_installation_date); nSqlParam[7] = new NpgsqlParameter("inwarranty", model.vehicle_warranty); nSqlParam[8] = new NpgsqlParameter("inAMC", model.vehicle_amc); nSqlParam[9] = new NpgsqlParameter("invehicletype", model.VehicleType); nSqlParam[10] = new NpgsqlParameter("inVehicleSalesDate", model.VehicleSalesDate); nSqlParam[11] = new NpgsqlParameter("inemmissionnorms", model.VehicleEmissionNorms); nSqlParam[12] = new NpgsqlParameter("inproductvariant", model.product_variant); nSqlParam[13] = new NpgsqlParameter("inCustomerAddress", model.CustomerAddress); nSqlParam[14] = new NpgsqlParameter("inCustomerMobile1", model.CustomerMobile1); nSqlParam[15] = new NpgsqlParameter("inCustomerId", model.CustomerId); nSqlParam[16] = new NpgsqlParameter("inDrivername", model.OdoMeterReading); nSqlParam[17] = new NpgsqlParameter("inDriverNo", model.CustomerMobile2); nSqlParam[18] = new NpgsqlParameter("inAMCType", model.AMCType); nSqlParam[19] = new NpgsqlParameter("inAMCDate", model.AMCDate); nSqlParam[20] = new NpgsqlParameter("inextendedwarranty", model.extended_warranty); nSqlParam[21] = new NpgsqlParameter("inwarantyendCDate", model.warranty_end_date); nSqlParam[22] = new NpgsqlParameter("inusertype", model.userType); nSqlParam[23] = new NpgsqlParameter("infuelLevelInLtr", model.fuelLevelInLtr); nSqlParam[24] = new NpgsqlParameter("infuelLevelInPer", model.fuelLevelInPer); nSqlParam[25] = new NpgsqlParameter("indefLevelInLtr", model.defLevelInLtr); nSqlParam[26] = new NpgsqlParameter("inBatteryvoltage", model.BatteryVoltage); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_ticket_open_values"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success"; // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("updateopenticketvalues", Ex.Message, path, errorlogtf); } return strmessage; } public string updateopenticketvalueseps(CustomerVehicleModelDBM model) { string strmessage = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[29]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketNo); nSqlParam[1] = new NpgsqlParameter("incustomername", model.CustomerName); nSqlParam[2] = new NpgsqlParameter("invehiclefueltype", model.VehicleFuelType); nSqlParam[3] = new NpgsqlParameter("inVehicleModelNumber", model.VehicleModelNumber); nSqlParam[4] = new NpgsqlParameter("incustomertype", model.CustomerType); nSqlParam[5] = new NpgsqlParameter("inchassisnumber", model.VehicleNumberPlate); nSqlParam[6] = new NpgsqlParameter("inInsDate", model.vehicle_installation_date); nSqlParam[7] = new NpgsqlParameter("inwarranty", model.vehicle_warranty); nSqlParam[8] = new NpgsqlParameter("inAMC", model.vehicle_amc); nSqlParam[9] = new NpgsqlParameter("invehicletype", model.VehicleType); nSqlParam[10] = new NpgsqlParameter("inVehicleSalesDate", model.VehicleSalesDate); nSqlParam[11] = new NpgsqlParameter("inemmissionnorms", model.VehicleEmissionNorms); nSqlParam[12] = new NpgsqlParameter("inproductvariant", model.product_variant); nSqlParam[13] = new NpgsqlParameter("inCustomerAddress", model.CustomerAddress); nSqlParam[14] = new NpgsqlParameter("inCustomerMobile1", model.CustomerMobile1); nSqlParam[15] = new NpgsqlParameter("inCustomerId", model.CustomerId); nSqlParam[16] = new NpgsqlParameter("inDrivername", model.OdoMeterReading); nSqlParam[17] = new NpgsqlParameter("inDriverNo", model.CustomerMobile2); nSqlParam[18] = new NpgsqlParameter("inAMCType", model.AMCType); nSqlParam[19] = new NpgsqlParameter("inAMCDate", model.AMCDate); nSqlParam[20] = new NpgsqlParameter("inextendedwarranty", model.extended_warranty); nSqlParam[21] = new NpgsqlParameter("inwarantyendCDate", model.warranty_end_date); nSqlParam[22] = new NpgsqlParameter("inusertype", model.userType); nSqlParam[23] = new NpgsqlParameter("infuelLevelInLtr", model.fuelLevelInLtr); nSqlParam[24] = new NpgsqlParameter("infuelLevelInPer", model.fuelLevelInPer); nSqlParam[25] = new NpgsqlParameter("indefLevelInLtr", model.defLevelInLtr); nSqlParam[26] = new NpgsqlParameter("inBatteryvoltage", model.BatteryVoltage); nSqlParam[27] = new NpgsqlParameter("inEngineNumber", model.Engine_number); nSqlParam[28] = new NpgsqlParameter("inEps", model.isEPS); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_ticket_open_values_new"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success"; TicketRepository objTicketRepository = new TicketRepository(_connStr); string isSend = objTicketRepository.sendEPSNewTicketmail(model.TicketNo); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("updateopenticketvalues", Ex.Message, path, errorlogtf); } return strmessage; } public string updateDummyopenticketvalues(CustomerVehicleModelDBM model) { string strmessage = ""; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[19]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketNo); nSqlParam[1] = new NpgsqlParameter("incustomername", model.CustomerName); nSqlParam[2] = new NpgsqlParameter("invehiclefueltype", model.VehicleFuelType); nSqlParam[3] = new NpgsqlParameter("inVehicleModelNumber", model.VehicleModelNumber); nSqlParam[4] = new NpgsqlParameter("incustomertype", model.CustomerType); nSqlParam[5] = new NpgsqlParameter("inchassisnumber", model.VehicleNumberPlate); nSqlParam[6] = new NpgsqlParameter("inInsDate", model.vehicle_installation_date); nSqlParam[7] = new NpgsqlParameter("inwarranty", model.vehicle_warranty); nSqlParam[8] = new NpgsqlParameter("inAMC", model.vehicle_amc); nSqlParam[9] = new NpgsqlParameter("invehicletype", model.VehicleType); nSqlParam[10] = new NpgsqlParameter("inVehicleSalesDate", model.VehicleSalesDate); nSqlParam[11] = new NpgsqlParameter("inemmissionnorms", model.VehicleEmissionNorms); nSqlParam[12] = new NpgsqlParameter("inproductvariant", model.product_variant); nSqlParam[13] = new NpgsqlParameter("inCustomerAddress", model.CustomerAddress); nSqlParam[14] = new NpgsqlParameter("inCustomerMobile1", model.CustomerMobile1); nSqlParam[15] = new NpgsqlParameter("inCustomerId", model.CustomerId); nSqlParam[16] = new NpgsqlParameter("inDrivername", model.OdoMeterReading); nSqlParam[17] = new NpgsqlParameter("inDriverNo", model.CustomerMobile2); nSqlParam[18] = new NpgsqlParameter("inStateName", model.CustomerState); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_Dummy_ticket_open_values"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "success"; // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception ex) { objLog.ErrorLogFile("updateDummyopenticketvalues", ex.Message, path, errorlogtf); } } return strmessage; } public CustomerModelDBM getTicketInfo(string Token, string ticketID, string OpenCloseStatus) { CustomerModelDBM objModel = new CustomerModelDBM(); objAuthorization = new AuthenticationRepository(); try { if (objAuthorization.AuthenticateDevice(Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketID); if (OpenCloseStatus == "open") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_additional_details_ticket_wise"], nSqlParam); } else if (OpenCloseStatus == "close") { ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_additional_details_closed_ticket_wise"], nSqlParam); } objModel.DriverName = ds.Tables[0].AsEnumerable().Select(s => s.Field("_driver_name")).FirstOrDefault(); objModel.DriverNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field("_driver_mobile_number")).FirstOrDefault(); objModel.CustomerMobileNumber1 = ds.Tables[0].AsEnumerable().Select(s => s.Field("_owner_number")).FirstOrDefault(); objModel.CustomerAddress = ds.Tables[0].AsEnumerable().Select(s => s.Field("_owner_Location")).FirstOrDefault(); objModel.CustomerType = ds.Tables[0].AsEnumerable().Select(s => s.Field("_customer_type")).FirstOrDefault(); //added on 15-01-2021 objModel.CustomerId = ds.Tables[0].AsEnumerable().Select(s => s.Field("_customer_id")).FirstOrDefault(); //added on 15-01-2021 objModel.CustomerAlias = ds.Tables[0].AsEnumerable().Select(s => s.Field("_owner_name")).FirstOrDefault(); //added on 15-01-2021 objModel.RegistrationNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field("_registration_number")).FirstOrDefault(); objModel.VehicleInstallationDate = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_installation_date")).FirstOrDefault(); if (objModel.VehicleInstallationDate == "NaN NaN NaN" || objModel.VehicleInstallationDate == "" || objModel.VehicleInstallationDate == "null") { objModel.VehicleInstallationDate = "-"; } objModel.VehicleType = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_type")).FirstOrDefault(); // objModel.VehicleInstallationDate = Convert.ToDateTime(objModel.VehicleInstallationDate).ToShortDateString(); objModel.VehicleType = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_type")).FirstOrDefault(); objModel.VehicleModelNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_model")).FirstOrDefault(); objModel.VehicleAMC = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_amc")).FirstOrDefault(); objModel.VehicleWarranty = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_warranty")).FirstOrDefault(); objModel.VehicleSalesDate = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_sales_date")).FirstOrDefault(); if (objModel.VehicleSalesDate == "NaN NaN NaN" || objModel.VehicleSalesDate == "" || objModel.VehicleSalesDate == "null") { objModel.VehicleSalesDate = "-"; } //else //{ // objModel.VehicleSalesDate = Convert.ToDateTime(objModel.VehicleSalesDate).ToShortDateString(); //} objModel.VehicleEmissionNorms = ds.Tables[0].AsEnumerable().Select(s => s.Field("_vehicle_emission_norms")).FirstOrDefault(); objModel.VehicleNumberPlate = ds.Tables[0].AsEnumerable().Select(s => s.Field("_chassis_no")).FirstOrDefault(); objModel.ProductVariant = ds.Tables[0].AsEnumerable().Select(s => s.Field("_product_variant")).FirstOrDefault(); objModel.VehicleAMCDate = ds.Tables[0].AsEnumerable().Select(s => s.Field("_amc_date")).FirstOrDefault(); objModel.VehicleAMCDate = Convert.ToDateTime(objModel.VehicleAMCDate).ToShortDateString(); objModel.VehicleAMCType = ds.Tables[0].AsEnumerable().Select(s => s.Field("_amc_type")).FirstOrDefault(); objModel.ExtendedWarranty = ds.Tables[0].AsEnumerable().Select(s => s.Field("_extended_warranty")).FirstOrDefault(); // objModel.VehicleAMCDate = Convert.ToDateTime(objModel.VehicleAMCDate).ToShortDateString(); objModel.WarrantyEndDate = ds.Tables[0].AsEnumerable().Select(s => s.Field("_warranty_end_date")).FirstOrDefault(); objModel.fuelLevelInLtr = ds.Tables[0].AsEnumerable().Select(s => s.Field("_fuelLevelInLtr")).FirstOrDefault(); objModel.fuelLevelInPer = ds.Tables[0].AsEnumerable().Select(s => s.Field("_fuelLevelInPer")).FirstOrDefault(); objModel.defLevelInLtr = ds.Tables[0].AsEnumerable().Select(s => s.Field("_defLevelInLtr")).FirstOrDefault(); objModel.BatteryVoltage = ds.Tables[0].AsEnumerable().Select(s => s.Field("_battery_voltage")).FirstOrDefault(); objModel.KamName = ds.Tables[0].AsEnumerable().Select(s => s.Field("_kam_name")).FirstOrDefault(); objModel.KamNo = ds.Tables[0].AsEnumerable().Select(s => s.Field("_kam_no")).FirstOrDefault(); objModel.FleetManagerName = ds.Tables[0].AsEnumerable().Select(s => s.Field("_fleet_mananger_name")).FirstOrDefault(); objModel.FleetManagerNo = ds.Tables[0].AsEnumerable().Select(s => s.Field("_fleet_manager_no")).FirstOrDefault(); } } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCustomerOpenTicketFullDetailTicketWise_Controller", Ex.Message, path, errorlogtf); throw Ex; } return objModel; } /// To get customer close ticket details /// /// customer info /// customer close ticket details public string GetCustomerCloseTicketDetailCount(CustomerCloseTicketDetail model) { string count = ""; try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket_details_new"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { count = ds.Tables[0].Rows.Count.ToString(); } else { count = "0"; } return count; } } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerCloseTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } return count; } public string GetVehicleTypeByModelNumber(string modelNo) { string strmessage = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_model_number", modelNo); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_vehicle_type_by_model_no"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_vehicle_type_by_model_no"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } return strmessage; } public string GetDummyTicketByTicketId(string registrationNumber) { string strmessage = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_registration_number", registrationNumber); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dummy_id_by_reg_no"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_dummy_id_by_reg_no"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } return strmessage; } public string GetChassisNoByRegno(string registrationNumber) { string strmessage = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_registration_number", registrationNumber); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_chassis_no_by_reg_no"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_chassis_no_by_reg_no"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } return strmessage; } /// /// To get customer close ticket details /// /// customer info /// customer close ticket details public List GetCustomerCloseTicketDetailTopTen(CustomerCloseTicketDetail model) { List objListTicketModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.isEPS == true) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber ?? ""); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo ?? ""); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId ?? ""); nSqlParam[3] = new NpgsqlParameter("inenginenumber", model.Engine_Number ?? ""); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket_details_Top_Ten_EPS"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TotalTicketCloseHours = Convert.ToDouble(s.Field("within_24hrs_or_not")), FeedBackAgenName = s.Field("feedback_agent"), ReasonBeyond24Hrs = s.Field("reason_for_more_then_24hours"), CallStatus = s.Field("call_status"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } else { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.VehicleRegisterNumber); nSqlParam[1] = new NpgsqlParameter("inmobile_number", model.CustomerContactNo); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_close_ticket_details_Top_Ten"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListTicketModel = ds.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail { TicketId = s.Field("ticket_id"), Description = s.Field("description"), AssignedTo = s.Field("assigned_to"), ReportedVia = s.Field("reported_via"), TicketStatus = s.Field("ticket_status"), Priority = s.Field("priority"), CustomerScore = s.Field("customer_score"), CreatedBy = s.Field("created_by"), CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), LastModifiedBy = s.Field("last_modified_by"), LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), BreakdownLocation = s.Field("breakdown_location"), BreakdownLongitude = s.Field("breakdown_longitude"), BreakdownLattitude = s.Field("breakdown_lattitude"), AssignedToUserId = s.Field("assigned_to_user_id"), AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"), AssignedToUserLongitude = s.Field("assigned_to_user_longitude"), Isdeclined = s.Field("isdeclined"), EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"), TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"), EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegisterNumber = s.Field("vehicle_register_number"), BreakdownLocationLandmark = s.Field("breakdown_location_landmark"), RouteId = s.Field("route_id"), CustomerContactNo = s.Field("customer_contact_no"), TicketStatusAlias = s.Field("ticket_status_alias"), RepairCost = s.Field("repair_cost"), DefaultSlaTime = s.Field("default_sla_time"), SlaMissedReason = s.Field("sla_missed_reason"), SuggestionComment = s.Field("suggestion_comment"), JobCompleteResponseTime = s.Field("default_col_1"), DefaultCol2 = s.Field("default_col_2"), DefaultCol3 = s.Field("default_col_3"), TotalTicketCloseHours = Convert.ToDouble(s.Field("within_24hrs_or_not")), FeedBackAgenName = s.Field("feedback_agent"), ReasonBeyond24Hrs = s.Field("reason_for_more_then_24hours"), CallStatus = s.Field("call_status"), TicketIdAlias = s.Field("_ticket_id_alias"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : (s.Field("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020 }).ToList(); } } } return objListTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerCloseTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } } /// /// This is used to delete dummy save ticket details /// /// Input paramter to delete particular vehicle saved ticket /// Message and Status /// /// To get customer details /// /// device and ticket info /// status and customer details public CustomerVehicleModelDBM GetSaveTicketDetails(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCustomerVehicleModel = new CustomerVehicleModelDBM(); try { objCustomerVehicleModel.Status = 1; if (model.VehicleRegistrationNumber == null) { model.VehicleRegistrationNumber = ""; } if (model.VehicleNumberPlate == null) { model.VehicleNumberPlate = ""; } objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inregistration_number ", model.VehicleRegistrationNumber); nSqlParam[1] = new NpgsqlParameter("inchassis_number ", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_dummy_open_ticket"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { model.VehicleRegistrationNumber = ds.Tables[0].Rows[0]["_vehicle_registration_number"].ToString(); model.VehicleNumberPlate = ds.Tables[0].Rows[0]["vehicle_number_plate"].ToString(); model.VehicleModelNumber = ds.Tables[0].Rows[0]["_customer_vehicle_model_name"].ToString(); model.VehicleType = ds.Tables[0].Rows[0]["_vehicle_type"].ToString(); model.product_variant = ds.Tables[0].Rows[0]["_vertical"].ToString(); model.OdoMeterReading = ds.Tables[0].Rows[0]["_odo_meter_reading"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.VehicleSalesDate = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_sales_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.VehicleSalesDate = ""; } model.vehicle_installation_date = ds.Tables[0].Rows[0]["_vehicle_Installation_date"].ToString(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["_vehicle_installation_date"].ToString())) { // DateTime dt = DateTime.ParseExact((ds.Tables[0].Rows[0]["_vehicle_sales_date"].ToString()), "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); model.vehicle_installation_date = Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[0]["_vehicle_installation_date"])).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]); //dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { model.vehicle_installation_date = ""; } model.VehicleEmissionNorms = ds.Tables[0].Rows[0]["_vehicle_emmision_norms"].ToString(); model.VehicleFuelType = ds.Tables[0].Rows[0]["_vehicle_fuel_type"].ToString(); // model.vehicle_warranty = ds.Tables[0].Rows[0]["_vehicle_warranty"].ToString(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); model.extended_warranty = tokens[0]; model.warranty_end_date = tokens[1]; } string WARRANTY = ""; WARRANTY = objGlobalRepository.getvehiclewarranty(model.VehicleRegistrationNumber); model.vehicle_warranty = WARRANTY; model.CustomerName = ds.Tables[0].Rows[0]["_customer_customer_name"].ToString(); model.CustomerMobile1 = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); // model. = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); model.CustomerAddress = ds.Tables[0].Rows[0]["_customer_address"].ToString(); model.CustomerState = ds.Tables[0].Rows[0]["_customer_state"].ToString(); model.CustomerCity = ds.Tables[0].Rows[0]["_customer_city"].ToString(); model.vehicle_amc = ds.Tables[0].Rows[0]["_vehicle_amc"].ToString(); if (ds.Tables[0].Rows[0]["_customer_id"].ToString() == null) { model.CustomerId = ""; } else { model.CustomerId = ds.Tables[0].Rows[0]["_customer_id"].ToString(); } model.CustomerType = ds.Tables[0].Rows[0]["_customer_type"].ToString(); } } else { model.Status = 0; model.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return model; } catch (Exception Ex) { //objCustomerVehicleModel = new CustomerVehicleModel(); objCustomerVehicleModel.Status = 0; objCustomerVehicleModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetCustomerDetails", Ex.Message, path, errorlogtf); return objCustomerVehicleModel; } } public string insertPaymentDetails(PaymentDetailsModel model) { string strmessage = ""; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (Convert.ToInt32(model.Amount.Trim()) > 0) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; // nSqlParam[0] = new NpgsqlParameter("inpayment_date", model.payment_date != null ? Convert.ToDateTime(model.payment_date).AddMinutes(UtcMinute) : model.payment_date); nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inticketid_alias", model.TicketId_Alias); nSqlParam[2] = new NpgsqlParameter("increated_by", model.Created_By); nSqlParam[3] = new NpgsqlParameter("inpayment_date", model.payment_date.AddMinutes(Convert.ToInt32(-model.UtcMinutes))); nSqlParam[4] = new NpgsqlParameter("incustomer_name", model.CustomerName); nSqlParam[5] = new NpgsqlParameter("incustomer_mobile_number", model.CustomerMobileNumber); nSqlParam[6] = new NpgsqlParameter("inmode_of_payment", model.ModeOfPayment); nSqlParam[7] = new NpgsqlParameter("inamount", model.Amount); nSqlParam[8] = new NpgsqlParameter("inamount", model.remarks); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_payment_detail"], nSqlParam); strmessage = "Payment detail successfully saved"; } else { strmessage = "Please enter correct amount"; } } else { strmessage = "Fail "; } return strmessage; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository insertPaymentDetails", Ex.Message, path, errorlogtf); strmessage = "Catch exception"; return strmessage; } } public List GetPaymentDetailsHistory(PaymentDetailsModel 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[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_payment_detail"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new PaymentDetailsModel { TicketId = s.Field("ticket_id"), TicketId_Alias = s.Field("ticketid_alias"), CustomerMobileNumber = s.Field("customer_mobile_number"), CustomerName = s.Field("customer_name"), ModeOfPayment = s.Field("mode_of_payment"), remarks = (s.Field("remarks")), Amount = s.Field("amount"), Created_By = s.Field("created_by"), payment_date = (s.Field("payment_date")), DateAlias = s.Field("date_alias"), RegistrationNumber = s.Field("Registration_number"), DealerName = s.Field("_dealer_name"), TimeAlias = s.Field("time_alias"), Created_By_type = s.Field("created_by_type"), addstatus = s.Field("addstatus"), }).ToList(); } } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf); throw Ex; } } public List GetAllPaymentDetailsHistory() { List objTicketModel = new List(); try { DataSet dsClose = new DataSet(); DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_all_payment_detail"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new PaymentDetailsModel { TicketId = s.Field("ticket_id"), TicketId_Alias = s.Field("ticketid_alias"), CustomerMobileNumber = s.Field("customer_mobile_number"), CustomerName = s.Field("customer_name"), ModeOfPayment = s.Field("mode_of_payment"), remarks = (s.Field("remarks")), Amount = s.Field("amount"), Created_By = s.Field("created_by"), payment_date = (s.Field("payment_date")), DateAlias = s.Field("date_alias"), TimeAlias = s.Field("time_alias"), Created_By_type = s.Field("created_by_type"), addstatus = s.Field("addstatus"), }).ToList(); } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository GetAllPaymentDetailsHistory", Ex.Message, path, errorlogtf); } return objTicketModel; } public List GetAllSVCDeatils() { List objTicketModel = new List(); try { DataSet dsClose = new DataSet(); DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_SVC_data"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new SVCDetails { CustomerNumber = s.Field("_customer_number"), Address = s.Field("_address"), oemName = s.Field("_eom_name"), CustomerName = s.Field("_customer_name"), CreatedBy = s.Field("_created_by"), isoem = (s.Field("_iseom")), creation_time = (s.Field("creation_date")), Quantity = (s.Field("_quantity")), }).ToList(); } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository GetAllSVCDeatils", Ex.Message, path, errorlogtf); } return objTicketModel; } public List GetAllAccidentalDetails() { List objTicketModel = new List(); try { DataSet dsClose = new DataSet(); DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_accidental_data"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new AccidentalDetails { CustomerNumber = s.Field("_customer_number"), Location = s.Field("_address"), Dealer_Connect = s.Field("_dealer_connect"), CustomerName = s.Field("_customer_name"), CreatedBy = s.Field("_created_by"), isdealersupportrequired = (s.Field("_isdealersupportrequired")), isabulancesupportrequired = (s.Field("_isabulancesupportrequired")), creation_time = (s.Field("creation_date")), Registration_number = (s.Field("_vehicle_registration_number")), }).ToList(); } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository AccidentalDetails", Ex.Message, path, errorlogtf); } return objTicketModel; } public List GetAllEPSSalesDetails() { List objTicketModel = new List(); try { DataSet dsClose = new DataSet(); DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_eps_sales_data"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new EPSSalesDetails { CustomerNumber = s.Field("_customer_number"), Location = s.Field("_address"), Qunatity = s.Field("_quantity"), CustomerName = s.Field("_customer_name"), CreatedBy = s.Field("_created_by"), ProductType = (s.Field("_producttype")), creation_time = (s.Field("creation_date")), }).ToList(); } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository GetAllEPSSalesDetails", Ex.Message, path, errorlogtf); } return objTicketModel; } public ReportRequestModel GetAllDealerDetails() { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List vecvCalculationList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_all_dealer_detail"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { vecvCalculationList = ds.Tables[0].AsEnumerable().Select(s => new DealerReport { Dealer1Scode = s.Field("_id"), DealerName = s.Field("_name"), State = s.Field("_state"), City = s.Field("_city"), Longitude = s.Field("_longitude"), Organisation = s.Field("_organisation"), FuelType = s.Field("_fueltype"), Latitude = s.Field("_latitude"), AppVersion = s.Field("_app_version"), }).ToList(); } detailVecvCalculation.DelearList = vecvCalculationList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetDealerOpenTicketDetail", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public ReportRequestModel GetAllVanDetails() { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List vecvCalculationList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_all_van_detail"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { vecvCalculationList = ds.Tables[0].AsEnumerable().Select(s => new VanReport { Dealer1Scode = s.Field("_id"), DealerName = s.Field("_name"), State = s.Field("_state"), City = s.Field("_city"), LicenseKey = s.Field("_licenseKey"), MobileNumber = s.Field("_mobileNumber"), VanStatus = s.Field("_vanStatus"), FuelType = s.Field("_fueltype"), TechnicianName = s.Field("_technicianName"), RegistrationNumber = s.Field("_registrationNumber"), AppVersion = s.Field("_app_version"), }).ToList(); } detailVecvCalculation.VanList = vecvCalculationList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetDealerOpenTicketDetail", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public List getPaymentDropDown() { List objTicketModel = new List(); try { DataSet dsdropdown = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsdropdown = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_payment_drop_down"], nSqlParam); if (dsdropdown.Tables[0].Rows.Count > 0) { objTicketModel = dsdropdown.Tables[0].AsEnumerable().Select(s => new PaymentDropDown { Id = s.Field("_id"), Name = s.Field("_payment_option_name"), }).ToList(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository getPaymentDropDown", Ex.Message, path, errorlogtf); } return objTicketModel; } public List getDelayReasonDropDown() { List objTicketModel = new List(); try { DataSet dsdropdown = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsdropdown = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_delay_reason_drop_down"], nSqlParam); if (dsdropdown.Tables[0].Rows.Count > 0) { objTicketModel = dsdropdown.Tables[0].AsEnumerable().Select(s => new PaymentDropDown { Id = s.Field("_id"), Name = s.Field("_delay_reason_name"), }).ToList(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository getDelayReasonDropDown", Ex.Message, path, errorlogtf); } return objTicketModel; } public List getPreClosureDropDown() { List objTicketModel = new List(); try { DataSet dsdropdown = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsdropdown = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_preclosure_drop_down"], nSqlParam); if (dsdropdown.Tables[0].Rows.Count > 0) { objTicketModel = dsdropdown.Tables[0].AsEnumerable().Select(s => new PaymentDropDown { Id = s.Field("_id"), Name = s.Field("_payment_option_name"), }).ToList(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository getPaymentDropDown", Ex.Message, path, errorlogtf); } return objTicketModel; } public string GetTicketdetailsByTicketId(string TicketId) { string ticketstatus = ""; try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_Ticketalias_By_TicketId"], nSqlParam1); if (ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { ticketstatus = ds.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } return ticketstatus; } catch (Exception Ex) { // write error log into file // objticketModel.Status = "0"; // objticketModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetTicketdetailsByTicketId", Ex.Message, path, errorlogtf); return ticketstatus; } } public string GetTicketPrevStatusByTicketId(string TicketId) { string ticketstatus = ""; try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_PrevTicketalias_By_TicketId"], nSqlParam1); if (ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { ticketstatus = ds.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } return ticketstatus; } catch (Exception Ex) { // write error log into file // objticketModel.Status = "0"; // objticketModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetTicketPrevStatusByTicketId", Ex.Message, path, errorlogtf); return ticketstatus; } } public string GetPaymentStatusByTicketId(string TicketId) { string ticketstatus = ""; try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_paymentstatus_By_TicketId"], nSqlParam1); if (ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { ticketstatus = ds.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } return ticketstatus; } catch (Exception Ex) { // write error log into file // objticketModel.Status = "0"; // objticketModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetPaymentStatusByTicketId", Ex.Message, path, errorlogtf); return ticketstatus; } } public string GetPartStatusByTicketId(string TicketId) { string ticketstatus = ""; try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_partstatus_By_TicketId"], nSqlParam1); if (ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != null && ds.Tables[0].Rows[0]["ticket_status_alias"].ToString().Trim() != "") { ticketstatus = ds.Tables[0].Rows[0]["ticket_status_alias"].ToString(); } return ticketstatus; } catch (Exception Ex) { // write error log into file // objticketModel.Status = "0"; // objticketModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objLog.ErrorLogFile("GetPartStatusByTicketId", Ex.Message, path, errorlogtf); return ticketstatus; } } public string insertPartDetails(ParttDetailsModel model) { string strmessage = ""; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[9]; // nSqlParam[0] = new NpgsqlParameter("inpayment_date", model.payment_date != null ? Convert.ToDateTime(model.payment_date).AddMinutes(UtcMinute) : model.payment_date); nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inticketid_alias", model.TicketId_Alias); nSqlParam[2] = new NpgsqlParameter("increated_by", model.Created_By); nSqlParam[3] = new NpgsqlParameter("inpart_no", model.PartNumber); nSqlParam[4] = new NpgsqlParameter("inpart_name", model.PartName); nSqlParam[5] = new NpgsqlParameter("inquantity_issued", model.QuantityIssued); nSqlParam[6] = new NpgsqlParameter("inquantity_returned", model.QuantityReturned); nSqlParam[7] = new NpgsqlParameter("inremarks", model.remarks); nSqlParam[8] = new NpgsqlParameter("inpartid", model.PartId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_part_detail"], nSqlParam); if (model.PartId == 0) { strmessage = "part detail added successfully"; } else { strmessage = "part detail updated successfully"; } } else { strmessage = "Fail "; } return strmessage; } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository insertPartDetails", Ex.Message, path, errorlogtf); strmessage = "Catch exception"; return strmessage; } } public List GetPartDetailsHistory(ParttDetailsModel 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[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_part_detail"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objTicketModel = dsOpen.Tables[0].AsEnumerable().Select(s => new ParttDetailsModel { TicketId = s.Field("ticket_id"), TicketId_Alias = s.Field("ticketid_alias"), PartName = s.Field("part_name"), PartNumber = s.Field("part_no"), QuantityIssued = s.Field("quantity_issued"), PartId = s.Field("part_id"), QuantityReturned = (s.Field("quantity_returned")), creation_date = s.Field("created_date"), update_date = s.Field("updation_date"), TimeAliascreation = s.Field("created_time"), TimeAliasupdation = s.Field("updation_time"), //= s.Field("remarks"), Created_By = s.Field("created_by"), addstatus = s.Field("add_status"), }).ToList(); } } return objTicketModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf); throw Ex; } } public string UpdateFuelTypeDealer(string dealer_id, string fuel_type) { string strmessage = "false"; GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("indealer_id", dealer_id); nSqlParam[1] = new NpgsqlParameter("infuel_type", fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_fuel_type_dealer"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "true"; } } catch (Exception Ex) { objLog.ErrorLogFile("Ticket Repository UpdateFuelTypeDealer", Ex.Message, path, errorlogtf); } return strmessage; } public string UpdateFuelTypeVan(string reg_no, string fuel_type) { string strmessage = "false"; GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inreg_no", reg_no); nSqlParam[1] = new NpgsqlParameter("infuel_type", fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_fuel_type_van"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = "true"; } } catch (Exception Ex) { objLog.ErrorLogFile("Ticket Repository UpdateFuelTypeDealer", Ex.Message, path, errorlogtf); } return strmessage; } public string getFuelTypeVan(string van_id) { string strmessage = "false"; GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("invan_id", van_id); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_fuel_type_van"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = ds.Tables[0].Rows[0]["sp_get_fuel_type_van"].ToString();// + '&' + ds.Tables[0].Rows[0]["_state_id"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("Ticket Repository UpdateFuelTypeDealer", Ex.Message, path, errorlogtf); } return strmessage; } public string getFuelTypeDealer(string dealer_id) { string strmessage = "false"; GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indealer_id", dealer_id); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_fuel_type_dealer"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = ds.Tables[0].Rows[0]["_fuel_type"].ToString();// + '&' + ds.Tables[0].Rows[0]["_state_id"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("Ticket Repository UpdateFuelTypeDealer", Ex.Message, path, errorlogtf); } return strmessage; } public List GetStateListIdWiseFuelType(StateModel model) { List objList = new List(); StateModel objModel = new StateModel(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_fueltype ", model.StateAlias); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_state_fuel_type_wise"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objList = ds.Tables[0].AsEnumerable().Select(s => new StateModel { StateId = s.Field("state_id"), StateAlias = s.Field("state_alias") }).ToList(); } // check model has state id then return id specific details if (model.StateIdParam != null) { objList = objList.Where(s => s.StateId.ToUpper().Trim().Contains(model.StateIdParam.ToUpper().Trim())).ToList(); } // if state id is null then return all state details. if (model.StateIdParam == null) { objList = objList.Select(s => s).ToList(); } objList = objList.GroupBy(d => d.StateId).Select(d => d.FirstOrDefault()).ToList(); } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objList.Add(objModel); } return objList; } catch (Exception Ex) { objModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; objList.Add(objModel); objLog.ErrorLogFile("GlobalRepository GetStateListIdWise", Ex.Message, path, errorlogtf); return objList; } } public string gevanlatlngbydevicealias(string ticketid) { string strmessage = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", ticketid); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_lat_lng"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = ds.Tables[0].Rows[0]["_result"].ToString(); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } return strmessage; } public LiveTrackingDetailsModel getTicketDetailLiveTabTracking(LiveTrackingDetailsModel model) { string dealerid = ""; LiveTrackingDetailsModel objModel = new LiveTrackingDetailsModel(); try { DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId_Alias); string productvariant = ""; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_Details_by_ticketid_Tab_Tracking"], nSqlParamopen); if (dsOpen.Tables[0].Rows.Count > 0) { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias model.VehicleTagging = dsOpen.Tables[0].Rows[0]["_vehicle_tagging"].ToString(); // getting ticket id alias objModel.VehicleTagging = dsOpen.Tables[0].Rows[0]["_vehicle_tagging"].ToString(); // getting ticket id alias productvariant = dsOpen.Tables[0].Rows[0]["_fuel_type"].ToString(); // getting ticket id alias dealerid = dsOpen.Tables[0].Rows[0]["_dealer_id"].ToString(); objModel.TechnicianName = dsOpen.Tables[0].Rows[0]["Technician_name"].ToString(); objModel.TechnicianMobileNumber = dsOpen.Tables[0].Rows[0]["Technician_no"].ToString(); objModel.BreakdownLat = dsOpen.Tables[0].Rows[0]["_breakdown_lat"].ToString(); objModel.BreakdownLong = dsOpen.Tables[0].Rows[0]["_breakdown_lng"].ToString(); objModel.tabLat = dsOpen.Tables[0].Rows[0]["_tab_lat"].ToString(); objModel.tabLong = dsOpen.Tables[0].Rows[0]["_tab_lng"].ToString(); model.TicketId = dsOpen.Tables[0].Rows[0]["_ticketid"].ToString(); objModel.TicketId = dsOpen.Tables[0].Rows[0]["_ticketid"].ToString(); objModel.mobileOTP = dsOpen.Tables[0].Rows[0]["_otp"].ToString(); objModel.DealerName = dsOpen.Tables[0].Rows[0]["_dealer_name"].ToString(); objModel.brkLocation = dsOpen.Tables[0].Rows[0]["_location"].ToString(); } string InsertTicketDetailOnCreationInVECV = System.Web.Configuration.WebConfigurationManager.AppSettings["InsertTicketDetailOnCreationInVECV"].ToString(); List oEscalationLevelList = new List(); // getting escalation level from DB DataSet escalationLevelDataset = new DataSet(); DataSet escalationLevelDatasetsite = new DataSet(); try { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParam1[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type_cogent"], nSqlParam1); } catch (Exception Ex) { objLog.ErrorLogFile("getTicketDetailLiveTabTracking usp_get_escalation_level_by_dealer_id_vehicle_type_cogent" + model.TicketId_Alias, Ex.Message, path, errorlogtf); } string WmName = ""; string WmNumber1 = ""; string WmNumber2 = ""; string WmNumber3 = ""; string siteInhargeNumber1 = ""; string siteInhargeNumber2 = ""; string siteInhargeName = ""; // binding escalation level to model list if (escalationLevelDataset.Tables.Count > 0) { if (escalationLevelDataset.Tables[0].Rows.Count > 0) { WmNumber1 = escalationLevelDataset.Tables[0].Rows[0]["phones"].ToString(); string[] values = WmNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); WmName = escalationLevelDataset.Tables[0].Rows[0]["manager_name"].ToString(); objModel.WMName = WmName; objModel.WMNumber = WmNumber1; } } NpgsqlParameter[] nSqlParamsite = new NpgsqlParameter[3]; try { nSqlParamsite[0] = new NpgsqlParameter("in_dealer_id", dealerid); nSqlParamsite[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleTagging); nSqlParamsite[2] = new NpgsqlParameter("inticket_id", model.TicketId); escalationLevelDatasetsite = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_cogent_site_incharge"], nSqlParamsite); } catch (Exception Ex) { objLog.ErrorLogFile("getTicketDetailLiveTabTracking usp_get_escalation_level_cogent_site_incharge" + model.TicketId_Alias, Ex.Message, path, errorlogtf); } if (escalationLevelDatasetsite.Tables.Count > 0) { if (escalationLevelDatasetsite.Tables[0].Rows.Count > 0) { siteInhargeNumber1 = escalationLevelDatasetsite.Tables[0].Rows[0]["phones"].ToString(); string[] values = siteInhargeNumber1.Split(',').Select(sValue => sValue.Trim()).ToArray(); siteInhargeName = escalationLevelDatasetsite.Tables[0].Rows[0]["manager_name"].ToString(); objModel.SiteInchargeName = siteInhargeName; objModel.SiteInchargeNo = siteInhargeNumber1; } } return objModel; } catch (Exception Ex) { objModel.Message = Ex.Message; objLog.ErrorLogFile("getTicketDetailLiveTabTracking", Ex.Message, path, errorlogtf); return objModel; } } public string Encrypt(string plainText, string key, string salt) { byte[] plainBytes = Encoding.UTF8.GetBytes(plainText); byte[] encryptedBytes; using (Aes aesAlg = Aes.Create()) { Rfc2898DeriveBytes keyDerivationFunction = new Rfc2898DeriveBytes(key, Encoding.ASCII.GetBytes(salt)); aesAlg.Key = keyDerivationFunction.GetBytes(32); // AES-256 aesAlg.IV = keyDerivationFunction.GetBytes(16); // AES IV is 16 bytes using (MemoryStream msEncrypt = new MemoryStream()) { using (ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV)) { using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { csEncrypt.Write(plainBytes, 0, plainBytes.Length); csEncrypt.FlushFinalBlock(); } } encryptedBytes = msEncrypt.ToArray(); } } return Convert.ToBase64String(encryptedBytes); } public void SendEmailMultipleUser(string[] recipients, string subject, string body) { // Define the sender and the SMTP client string fromAddress = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your -email@example.com"; string smtpHost = ConfigurationManager.AppSettings["Host"].ToString();// "your-smtp-host"; int smtpPort = Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString()); // Change this according to your SMTP server settings string smtpUsername = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your-smtp-username"; string smtpPassword = ConfigurationManager.AppSettings["fromEmailPassword"].ToString();// "your-smtp-password"; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress(fromAddress); foreach (string recipient in recipients) { mail.To.Add(recipient); } mail.Subject = subject; mail.Body = body; mail.IsBodyHtml = true; // Set to false if the body is plain text using (SmtpClient smtp = new SmtpClient(smtpHost, smtpPort)) { smtp.Credentials = new NetworkCredential(smtpUsername, smtpPassword); smtp.EnableSsl = true; // Set // // to false if your SMTP server does not support SSL smtp.Send(mail); } } } public void SendEmailEPSSales(string[] recipients, string subject, string body) { // Define the sender and the SMTP client string fromAddress = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your -email@example.com"; string smtpHost = ConfigurationManager.AppSettings["Host"].ToString();// "your-smtp-host"; int smtpPort = Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString()); // Change this according to your SMTP server settings string smtpUsername = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your-smtp-username"; string smtpPassword = ConfigurationManager.AppSettings["fromEmailPassword"].ToString();// "your-smtp-password"; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress(fromAddress); foreach (string recipient in recipients) { mail.To.Add(recipient); } mail.Subject = subject; mail.Body = body; mail.IsBodyHtml = true; // Set to false if the body is plain text ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; ServicePointManager.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; using (SmtpClient smtp = new SmtpClient(smtpHost, smtpPort)) { smtp.Credentials = new NetworkCredential(smtpUsername, smtpPassword); smtp.EnableSsl = true; // Set // // to false if your SMTP server does not support SSL try { objLog.ErrorLogFile("SendEmailEPSSales", "About to send email to: " + string.Join(",", recipients), path, errorlogtf); smtp.Send(mail); } catch (Exception Ex) { objLog.ErrorLogFile("SendEmailEPSSales", Ex.Message, path, errorlogtf); if (Ex.InnerException != null) { objLog.ErrorLogFile("SendEmailEPSSales", Ex.InnerException.Message, path, errorlogtf); } } } } } public string sendmailNew(CustomerVehicleModelDBM model, string dealername, string alias, string assTo, string ass_to_text) { if (System.Configuration.ConfigurationManager.AppSettings["modelemailIsBlocked"] != "true") { string ticketIdAlias = model.TicketNo; string[] emailto = ConfigurationManager.AppSettings["Emailto"].ToString().Split(','); foreach (string ToEmail in emailto) { string body = ""; if (assTo.ToLower() == "van") { body = @"

Dear User,

Please pay attention !!!

EOS Ticket is registered for the bus segment, following are the details:

EOS Ticket Number Dealership Name Assigned To Vehicle Registration Number Vehicle Model Number Driver Name Driver Mobile Number Technician Name Technician Mobile Number Customer Voice
[Insert EOS Ticket Number] [Insert Dealership Name] [Insert assigned to] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Driver Name] [Insert Driver Mobile Number] [Insert Technician Name] [Insert Technician Mobile Number] [Insert nature of problem]

Regards,
Eicher On Road Support

Disclaimer : This is system generated E-Mail, Please do not reply on this mail.

"; } else { body = @"

Dear User,

Please pay attention !!!

EOS Ticket is registered for the bus segment, following are the details:

EOS Ticket Number Dealership Name Assigned To Vehicle Registration Number Vehicle Model Number Driver Name Driver Mobile Number Works Manager Name Works Manager Mobile Number Customer Voice
[Insert EOS Ticket Number] [Insert Dealership Name] [Insert assigned to] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Driver Name] [Insert Driver Mobile Number] [Insert Technician Name] [Insert Technician Mobile Number] [Insert nature of problem]

Regards,
Eicher On Road Support

Disclaimer : This is system generated E-Mail, Please do not reply on this mail.

"; } // Replace placeholders with actual values body = body.Replace("[Insert EOS Ticket Number]", ticketIdAlias) .Replace("[Insert Dealership Name]", dealername) .Replace("[Insert assigned to]", ass_to_text) .Replace("[Insert Vehicle Registration Number]", model.VehicleRegistrationNumber) .Replace("[Insert Vehicle Model Number]", model.VehicleModelNumber) .Replace("[Insert Driver Name]", model.CustomerName) .Replace("[Insert Driver Mobile Number]", model.CustomerMobile1) .Replace("[Insert Technician Name]", model.CustomerCity) .Replace("[Insert Technician Mobile Number]", model.CustomerMobile2) .Replace("[Insert nature of problem]", model.CustomerAddress); try { SmtpClient smtpClient = new SmtpClient(ConfigurationManager.AppSettings["Host"].ToString(), Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString())) { Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailUserName"].ToString(), ConfigurationManager.AppSettings["FromEmailPassword"].ToString()), EnableSsl = true }; // Create the email message MailMessage mailMessage = new MailMessage { From = new MailAddress(ConfigurationManager.AppSettings["EmailUserName"].ToString()), Subject = "BUS (" + model.VehicleModelNumber + ") EOS Ticket Alert - " + ticketIdAlias, Body = body, IsBodyHtml = true }; mailMessage.To.Add(ToEmail); // Send the email smtpClient.Send(mailMessage); Console.WriteLine("Email sent successfully."); } catch (Exception ex) { Console.WriteLine("Failed to send email. Error: " + ex.Message); } /* var fromEma il = new MailAddress(ConfigurationManager.AppSettings["EmailUserName"].ToString(), ConfigurationManager.AppSettings["FromEmailPassword"].ToString()); var fromEmailPassword = ConfigurationManager.AppSettings["FromEmailPassword"].ToString(); var toEmail = new MailAddress(ToEmail); var smtp = new SmtpClient { Host = ConfigurationManager.AppSettings["Host"].ToString(), Port = Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString()), EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromEmail.Address, fromEmailPassword) }; var message = new MailMessage(fromEmail, toEmail); message.Subject = "BUS ( " + model.VehicleModelNumber + ") EOS Ticket Alert- " + ticketIdAlias; // Create the email body with HTML table message.Body = body; // message.Body = "Hello," + Environment.NewLine + Environment.NewLine + "Please pay attention !!!" + Environment.NewLine + Environment.NewLine + "EOS Ticket is registered for the bus segment, following are the details:" + Environment.NewLine + Environment.NewLine + "Vehicle Registration number - " + model.VehicleRegistrationNumber + Environment.NewLine + " Vehicle Model - " +model.VehicleModelNumber+ Environment.NewLine+" EOS Ticket Number - " + ticketIdAlias + Environment.NewLine+ " Dealer Name - " +dealername + Environment.NewLine + " Driver Number - " + model.CustomerName + Environment.NewLine + "Technician Name - " + model.CustomerMobile1 + Environment.NewLine + "Regrds Eicher"; smtp.Send(message);*/ } } return "true"; } public string sendmail(CustomerVehicleModelDBM model, string dealername, string alias, string assTo, string ass_to_text, string creation_time, string csmname, string csmno, string dealerid, string ownername, string ownerno) { if (System.Configuration.ConfigurationManager.AppSettings["modelemailIsBlocked"] != "true") { string ticketIdAlias = model.TicketNo; string[] emailto = ConfigurationManager.AppSettings["Emailto"].ToString().Split(','); string body = ""; if (assTo.ToLower() == "van") { body = @"

Dear User,

Please pay attention !!!

EOS Ticket is registered for the bus segment, following are the details:

EOS Ticket Number Dealership Name Dealer SCode Ticket Creation Date & Time Assigned To Vehicle Registration Number Vehicle Model Number Owner Name Owner Mobile Number Driver Name Driver Mobile Number Technician Name Technician Mobile Number CSM Name CSM Number Customer Voice
[Insert EOS Ticket Number] [Insert Dealership Name] [Insert Dealership Id] [Insert Creation Time] [Insert assigned to] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Owner Name] [Insert Owner Mobile Number] [Insert Driver Name] [Insert Driver Mobile Number] [Insert Technician Name] [Insert Technician Mobile Number] [Insert CSM Name] [Insert CSM Id] [Insert nature of problem]

Regards,
Eicher On Road Support

Disclaimer : This is system generated E-Mail, Please do not reply on this mail.

"; } else { body = @"

Dear User,

Please pay attention !!!

EOS Ticket is registered for the bus segment, following are the details:

EOS Ticket Number Dealership Name Dealer SCode Ticket Creation Date & Time Assigned To Vehicle Registration Number Vehicle Model Number Owner Name Owner Mobile Number Driver Name Driver Mobile Number Works Manager Name Works Manager Mobile Number CSM Name CSM Number Customer Voice
[Insert EOS Ticket Number] [Insert Dealership Name] [Insert Dealership Id] [Insert Creation Time] [Insert assigned to] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Owner Name] [Insert Owner Mobile Number] [Insert Driver Name] [Insert Driver Mobile Number] [Insert Technician Name] [Insert Technician Mobile Number] [Insert CSM Name] [Insert CSM Id] [Insert nature of problem]

Regards,
Eicher On Road Support

Disclaimer : This is system generated E-Mail, Please do not reply on this mail.

"; } // Replace placeholders with actual values body = body.Replace("[Insert EOS Ticket Number]", ticketIdAlias) .Replace("[Insert Dealership Name]", dealername) .Replace("[Insert Dealership Id]", dealerid) .Replace("[Insert Creation Time]", creation_time) .Replace("[Insert assigned to]", ass_to_text) .Replace("[Insert Vehicle Registration Number]", model.VehicleRegistrationNumber) .Replace("[Insert Vehicle Model Number]", model.VehicleModelNumber) .Replace("[Insert Owner Name]", ownername) .Replace("[Insert Owner Mobile Number]", ownerno) .Replace("[Insert Driver Name]", model.CustomerName) .Replace("[Insert Driver Mobile Number]", model.CustomerMobile1) .Replace("[Insert Technician Name]", model.CustomerCity) .Replace("[Insert Technician Mobile Number]", model.CustomerMobile2) .Replace("[Insert CSM Id]", csmno) .Replace("[Insert CSM Name]", csmname) .Replace("[Insert nature of problem]", model.CustomerAddress); string mailsub = "BUS (" + model.VehicleModelNumber + ") EOS Ticket Alert- " + ticketIdAlias; SendEmailMultipleUser(emailto, mailsub, body); } return "true"; } public ReportRequestModel GetAllDetailsModelWise() { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_model_wise_all"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new ModelReport { ticketid_alias = s.Field("_ticket_id_alias"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ChassisNo = s.Field("_chassis_number"), Description = s.Field("_nature_of_problem"), Dealer1Scode = s.Field("_Dealer_name_1scode"), ServiceEngineerAlias = s.Field("_created_by"), VanVanModel = s.Field("model_number"), WM_Contact_No = s.Field("wm_contact_no"), WM_Name = s.Field("wm"), plant_code = s.Field("_plant_code"), CaseId = s.Field("_case_id"), TicketStatus = s.Field("_ticket_status"), }).ToList(); detailVecvCalculation.MoodelList = objList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetDealerOpenTicketDetail", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public ReportRequestModel GetAllReassignmentReportNew(ReportRequestModel model) { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List objList = new List(); try { model.UtcMinute = 330; DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[1] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_reassignment_tickets"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new ReassignmentReportNew { TicketIdAlias = s.Field("_ticket_id_alias"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Dealer1SCode = s.Field("_dealer_1scode"), DealerName = (s.Field("_dealer_name")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), TicketStatus = s.Field("_ticket_status"), Reassign_to = s.Field("_reassign_to"), Reassign_Reason = (s.Field("_reassign_reason") == null ? "" : s.Field("_reassign_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), ReassignTime = Convert.ToDateTime(s.Field("_reassign_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), reassignstatus = s.Field("_ticket_assign_status") == null ? "" : s.Field("_ticket_assign_status"), Fuel_type = s.Field("_vehicle_fuel_type") == null ? "" : s.Field("_vehicle_fuel_type"), organization = s.Field("_organization_name") == null ? "" : s.Field("_organization_name"), state = s.Field("_state") == null ? "" : s.Field("_state"), Vehicle_Owner_Name = (s.Field("_customer_name") == null ? "" : s.Field("_customer_name")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), Vehicle_Owner_Contact_No = s.Field("_customer_mobile_number") == null ? "" : s.Field("_customer_mobile_number"), Vehicle_Reg_No = s.Field("_vehicle_registration_number") == null ? "" : s.Field("_vehicle_registration_number"), Vehicle_Model = s.Field("_vehicle_model_number") == null ? "" : s.Field("_vehicle_model_number"), Vehicle_Type = s.Field("_vehicle_tagging") == null ? "" : s.Field("_vehicle_tagging"), BreackDownLatitude = s.Field("_breakdown_lattitude") == null ? "" : s.Field("_breakdown_lattitude"), BreackDownLongitude = s.Field("_breakdown_longitude") == null ? "" : s.Field("_breakdown_longitude"), BreakDownLocation = (s.Field("_breakdown_location") == null ? "" : s.Field("_breakdown_location")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), BreakDownLandmark = (s.Field("_breakdown_location_landmark") == null ? "" : s.Field("_breakdown_location_landmark")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), nature_of_problem = (s.Field("_nature_of_problem") == null ? "" : s.Field("_nature_of_problem")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), opportunity_loss = s.Field("_opportunity_loss") == null ? "" : s.Field("_opportunity_loss"), opportunity_loss_remark = (s.Field("_opportunity_loss_reason") == null ? "" : s.Field("_opportunity_loss_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), call_preclosed = s.Field("_call_preclosed") == null ? "" : s.Field("_call_preclosed"), call_closure = s.Field("_call_closure") == null ? "" : s.Field("_call_closure"), assigned_to = s.Field("_assigned_to") == null ? "" : s.Field("_assigned_to"), estimated_distance = s.Field("_estimated_distance") == null ? "" : s.Field("_estimated_distance"), isPreclosed = s.Field("_is_callPreclosed") == null ? "" : s.Field("_is_callPreclosed"), pre_closure_remarks = (s.Field("_preclosure_remarks") == null ? "" : s.Field("_preclosure_remarks")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), ReassignRemarks = (s.Field("_remarks") == null ? "" : s.Field("_remarks")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), Preclosure_reason = (s.Field("_preclosure_reason") == null ? "" : s.Field("_preclosure_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "), ticket_accepted = s.Field("_ticket_accepted") == null ? "" : s.Field("_ticket_accepted"), }).ToList(); detailVecvCalculation.ReassignmentReportNew = objList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetAllReassignmentReport", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public ReportRequestModel GetAllDTCReport(ReportRequestModel model) { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[1] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dtc_report_tickets"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new DTCReport { TicketIdAlias = s.Field("_ticket_id_alias"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Dealer1SCode = s.Field("_dealer_1scode"), DealerName = s.Field("_dealer_name"), DTC_CODE = s.Field("_dtc_code") == null ? "" : s.Field("_dtc_code"), DTC_Description = s.Field("_dtc_description") == null ? "" : s.Field("_dtc_description"), DTC_Occurance_Date = s.Field("_dtc_occurance_date") == null ? "" : s.Field("_dtc_occurance_date"), Opp_lost_reason = s.Field("_opp_lost_reason") == null ? "" : s.Field("_opp_lost_reason"), Opp_lost = s.Field("_opp_lost") == null ? "" : s.Field("_opp_lost"), Occurence_count = s.Field("_occurence_count") == null ? "" : s.Field("_occurence_count"), status = s.Field("_status") == null ? "" : s.Field("_status"), chassis_number = s.Field("_chassis_number") == null ? "" : s.Field("_chassis_number"), Registration_no = s.Field("_registration_no") == null ? "" : s.Field("_registration_no"), Vehicle_Emission_Norms = s.Field("_vehicle_emission_norms") == null ? "" : s.Field("_vehicle_emission_norms"), Vehicle_Model = s.Field("_vehicle_model") == null ? "" : s.Field("_vehicle_model"), vehicle_type = s.Field("_vehicle_type") == null ? "" : s.Field("_vehicle_type"), Organization = s.Field("_organization") == null ? "" : s.Field("_organization") }).ToList(); detailVecvCalculation.DTCReport = objList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetAllDTCReport", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public List GetDTCReportByTicketId(DTCReport model) { List objList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketIdAlias); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dtc_report_tickets_by_ticket_id"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new DTCReport { TicketIdAlias = s.Field("_ticket_id_alias"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Dealer1SCode = s.Field("_dealer_1scode"), DealerName = s.Field("_dealer_name"), DTC_CODE = s.Field("_dtc_code") == null ? "" : s.Field("_dtc_code"), DTC_Description = s.Field("_dtc_description") == null ? "" : s.Field("_dtc_description"), DTC_Occurance_Date = s.Field("_dtc_occurance_date") == null ? "" : s.Field("_dtc_occurance_date"), Opp_lost_reason = s.Field("_opp_lost_reason") == null ? "" : s.Field("_opp_lost_reason"), Opp_lost = s.Field("_opp_lost") == null ? "" : s.Field("_opp_lost"), Occurence_count = s.Field("_occurence_count") == null ? "" : s.Field("_occurence_count"), status = s.Field("_status") == null ? "" : s.Field("_status"), Organization = s.Field("_organization") == null ? "" : s.Field("_organization") }).ToList(); return objList; } catch (Exception ex) { objLog.ErrorLogFile("GetDTCReportByTicketId", ex.Message, this.path, this.errorlogtf); return objList; } } public string GetDTCReportCountByTicketId(DTCReport model) { string Count = ""; try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketIdAlias); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dtc_report_count_tickets_by_ticket_id"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { Count = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_dtc_report_count_tickets_by_ticket_id"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } return Count; } catch (Exception ex) { objLog.ErrorLogFile("GetDTCReportByTicketId", ex.Message, this.path, this.errorlogtf); return Count; } } public ReportRequestModel GetAllReassignmentReport() { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_reassignment_tickets"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new ReassignmentReport { TicketIdAlias = s.Field("_ticket_id_alias"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), Dealer1SCode = s.Field("_dealer_1scode"), DealerName = s.Field("_dealer_name"), TicketStatus = s.Field("_ticket_status"), Reassign_to = s.Field("_reassign_to"), Reassign_Reason = s.Field("_reassign_reason") == null ? "" : s.Field("_reassign_reason"), ReassignTime = Convert.ToDateTime(s.Field("_reassign_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), ReassignStatus = s.Field("_ticket_assign_status") == null ? "" : s.Field("_ticket_assign_status"), }).ToList(); detailVecvCalculation.ReassignmentReport = objList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetAllReassignmentReport", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public ReportRequestModel GetAlltechinicianNoReport() { ReportRequestModel detailVecvCalculation = new ReportRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_technician_no_all"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new TechnicianReport { TicketIdAlias = s.Field("_ticket_id"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), TechnicianNumber = s.Field("_technician_no"), Ticket_status = s.Field("_ticket_status"), }).ToList(); detailVecvCalculation.TechnicianReport = objList; detailVecvCalculation.Status = "1"; return detailVecvCalculation; } catch (Exception ex) { objLog.ErrorLogFile("GetAlltechinicianNoReport", ex.Message, this.path, this.errorlogtf); return detailVecvCalculation; } } public List getOpenTicketModelWiseAll() { TicketOpenModelWise objModel = new TicketOpenModelWise(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); } return objList; } public List getOpenTicketModelWise(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_tickets_model_wise"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel { Id = s.Field("_ticket_id"), ServiceEngineerContactNumber = s.Field("_dealer_contact_number1"), CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), VehicleRegistrationNo = s.Field("_vehicle_registration_number"), ticketid_alias = s.Field("_ticket_id_alias"), caller_language = s.Field("_caller_language"), ChassisNo = s.Field("_chassis_number"), Description = s.Field("_nature_of_problem"), dealer1scode = s.Field("_Dealer_name_1scode"), ServiceEngineerAlias = s.Field("_created_by"), VanVanModel = s.Field("model_number"), WM_Contact_No = s.Field("wm_contact_no"), WM_Name = s.Field("wm"), plant_code = s.Field("_plant_code"), }).ToList(); objModel.TicketList = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objList; } public string updatecaseid(string ticketid, string caseId) { string strmessage = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketid); nSqlParam[1] = new NpgsqlParameter("in_caseId", caseId); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_case_id"], nSqlParam); strmessage = "success"; return strmessage; } public List GetVanDealerListLatLngWise(VanDealerListStateWise model) { List objListModel = new List(); VanDealerListStateWise objModel = new VanDealerListStateWise(); try { objModel.Status = "1"; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); DataSet dsTracking = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inLatitude", model.DealerVanLattitude); nSqlParam[1] = new NpgsqlParameter("inLongitude", model.DealerVanLongitude); nSqlParam[2] = new NpgsqlParameter("infuelType", model.Fuel_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_lat_lng_wise"], nSqlParam); objListModel = ds.Tables[0].AsEnumerable().Select(s => new VanDealerListStateWise { DealerSCode = s.Field("dealer_van_id"), DealerVanName = s.Field("dealer_van_name"), DealerVanLattitude = s.Field("dealer_van_lattitude"), DealerVanLongitude = s.Field("dealer_van_longitude"), DealerVanCity = s.Field("dealer_van_city"), DealerVanState = s.Field("dealer_van_state"), Fuel_type = s.Field("fueltype") }).ToList(); } } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("GetVanDealerListLatLngWise", Ex.Message, path, errorlogtf); throw Ex; } return objListModel; } public EscalationLevelOutputModel GetEscalationLevelsByDealerId(EscalationLevelInputModel model) { EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel(); List oEscalationLevelList = new List(); try { objAuthorization = new AuthenticationRepository(); // validating security token if (objAuthorization.AuthenticateDevice(model.Token)) ; { // getting escalation level from DB if (model.ProductVariant == null) { model.VehicleType = ""; } else { if (model.ProductVariant.ToLower() == "electric") { model.VehicleType = "EV"; } } DataSet escalationLevelDataset = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("in_dealer_id", model.DelerId); nSqlParam[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleType); escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id"], nSqlParam); // binding escalation level to model list if (escalationLevelDataset.Tables[0].Rows.Count > 0) { oEscalationLevelList = escalationLevelDataset.Tables[0].AsEnumerable().Select(s => new EscalationLevel { DelaerId = s.Field("dealer_id"), ManagerName = s.Field("manager_name"), ManagerLevel = s.Field("manager_level"), ManagerPhoneNo = s.Field("phones"), VehicleType = s.Field("van_type") }).ToList(); } oEscalationLevelOutputModel.EscalationLevelList = oEscalationLevelList; } oEscalationLevelOutputModel.Status = "1"; return oEscalationLevelOutputModel; } catch (Exception Ex) { objLog.ErrorLogFile("GetEscalationLevels", Ex.Message, path, errorlogtf); throw Ex; } } public string getEmailFromDealerCode(string dealercode) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_dealer_code", dealercode); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_email_by_dealer_code"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_email_by_dealer_code"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("usp_get_email_by_dealer_code", Ex.Message, path, errorlogtf); } return strmessage; } public CustomerVehicleModelDBM CustomerEngineNoByEOS(string Engine_number, string VehicleRegistrationNumber) { string regno = VehicleRegistrationNumber; CustomerVehicleModelDBM model = new CustomerVehicleModelDBM(); CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { GlobalRepository objGlobalRepository = new GlobalRepository(""); // objCutomerVehicle = GetCustomerDetailsDBM(model); DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; if (Engine_number == null) { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", VehicleRegistrationNumber); nSqlParam[1] = new NpgsqlParameter("inEngineNumber", null); } else { nSqlParam[0] = new NpgsqlParameter("inregistration_number ", null); nSqlParam[1] = new NpgsqlParameter("inEngineNumber", Engine_number); } ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_details_EPS_by_eos"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { model.VehicleRegistrationNumber = ds.Tables[0].Rows[0]["_reg_no"].ToString(); model.VehicleNumberPlate = ds.Tables[0].Rows[0]["_engine_no"].ToString(); model.Engine_number = ds.Tables[0].Rows[0]["_engine_no"].ToString(); model.VehicleModelNumber = ds.Tables[0].Rows[0]["_customer_vehicle_model_name"].ToString(); model.VehicleType = ds.Tables[0].Rows[0]["_vehicle_type"].ToString(); model.product_variant = ds.Tables[0].Rows[0]["_Vehicle_PRODUCT_TYPE"].ToString(); model.SALES_DATE = ds.Tables[0].Rows[0]["_SALES_DATE"].ToString(); model.warranty_end_date = ds.Tables[0].Rows[0]["_WARRENTY_EXPIRY_DATE"].ToString(); model.OdoMeterReading = "0.0"; model.vehicle_installation_date = "";//.Tables[0].Rows[0]["_vehicle_Installation_date"].ToString(); model.VehicleEmissionNorms = ds.Tables[0].Rows[0]["_EMISSION_NORMS"].ToString(); model.Fert = ds.Tables[0].Rows[0]["_fert"].ToString(); model.VehicleFuelType = ds.Tables[0].Rows[0]["_vehicle_fuel_type"].ToString(); model.vehicle_warranty = ""; model.CustomerName = ds.Tables[0].Rows[0]["_customer_customer_name"].ToString(); model.CustomerMobile1 = ds.Tables[0].Rows[0]["_customer_mobile_number_1"].ToString(); //model. = ds.Tables[0].Rows[0]["owner_number"].ToString(); model.CustomerAddress = ""; //ds.Tables[0].Rows[0]["_customer_address"].ToString(); model.CustomerState = ""; //ds.Tables[0].Rows[0]["_customer_state"].ToString(); model.CustomerCity = ""; //ds.Tables[0].Rows[0]["_customer_city"].ToString(); model.vehicle_amc = ""; //ds.Tables[0].Rows[0]["_vehicle_amc"].ToString(); //model.CustomerType = ds.Tables[0].Rows[0]["Vehicle_type"].ToString(); model.userType = "EOSEPS"; objCutomerVehicle = model; } // model.VehicleRegistrationNumber = regno; // objCutomerVehicle.VehicleRegistrationNumber = regno; return objCutomerVehicle; } catch (Exception Ex) { // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBM", Ex.Message, path, errorlogtf); objCutomerVehicle = new CustomerVehicleModelDBM(); objCutomerVehicle.Status = 0; objCutomerVehicle.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; return objCutomerVehicle; } } //Added by mayuri on 23/07/25 public InsertOpenTicket InsertOpenTicketNonHarvester(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); if (!string.IsNullOrEmpty(model.SuggestionComment)) { model.SuggestionComment = model.SuggestionComment.Replace("/", ""); model.SuggestionComment = model.SuggestionComment.Replace(@"\", ""); } try { objModel.Status = "1"; DataSet ds = new DataSet(); DataSet dsGcm = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.VehicleRegistrationNumber == null) { model.VehicleRegistrationNumber = null; } else if (model.VehicleRegistrationNumber.ToLower() == "null") { model.VehicleRegistrationNumber = null; } NpgsqlParameter[] nSqlParam = new NpgsqlParameter[50]; nSqlParam[0] = new NpgsqlParameter("indescription", model.Description); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[5] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[6] = new NpgsqlParameter("increated_by", model.CreatedBy); nSqlParam[7] = new NpgsqlParameter("increation_time ", model.CreationTime != null ? Convert.ToDateTime(model.CreationTime).AddMinutes(-model.UtcMinute) : model.CreationTime); nSqlParam[8] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParam[9] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime != null ? Convert.ToDateTime(model.LastModifiedTime).AddMinutes(-model.UtcMinute) : model.LastModifiedTime); nSqlParam[10] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[11] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[12] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[15] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[16] = new NpgsqlParameter("inisdeclined", model.IsDeclined); nSqlParam[17] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[18] = new NpgsqlParameter("intotal_ticket_lifecycle_time_sla", model.TotalTicketLifecycleTimeSla); nSqlParam[19] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[20] = new NpgsqlParameter("invehicle_registration_number", model.VehicleRegistrationNumber); nSqlParam[21] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[22] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[23] = new NpgsqlParameter("incustomer_contact_no", model.CustomerContactNo); nSqlParam[24] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[25] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[26] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[27] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[28] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[29] = new NpgsqlParameter("instate_name", model.StateName); nSqlParam[30] = new NpgsqlParameter("incity_name", model.CityName); nSqlParam[31] = new NpgsqlParameter("incaller_language", model.CallerLanguage); nSqlParam[32] = new NpgsqlParameter("inwarranty", model.Warranty); nSqlParam[33] = new NpgsqlParameter("intoll_free_no_source", model.TollFreeeNoSource); nSqlParam[34] = new NpgsqlParameter("inestimate_distance", model.EstimateDistance); nSqlParam[35] = new NpgsqlParameter("invehicle_tagging", model.VehicleTagging); nSqlParam[36] = new NpgsqlParameter("inkm_covered", model.KmCovered); nSqlParam[37] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); //added on 26/11/2020 nSqlParam[38] = new NpgsqlParameter("invehicle_warranty", model.vehicle_warranty != null ? model.vehicle_warranty : ""); nSqlParam[39] = new NpgsqlParameter("invehicle_amc", model.vehicle_amc != null ? model.vehicle_amc : ""); nSqlParam[40] = new NpgsqlParameter("invehicle_emission_norms", model.vehicle_emission_norms != null ? model.vehicle_emission_norms : ""); nSqlParam[41] = new NpgsqlParameter("invehicle_sales_date", model.vehicle_sales_date != null ? model.vehicle_sales_date : ""); nSqlParam[42] = new NpgsqlParameter("inkam_champ_id", ""); nSqlParam[43] = new NpgsqlParameter("inkam_champ_name", ""); nSqlParam[44] = new NpgsqlParameter("inkam_champ_tel", ""); nSqlParam[45] = new NpgsqlParameter("inkam_champ_email", ""); nSqlParam[46] = new NpgsqlParameter("positionDateTime", model.positionDateTime); nSqlParam[47] = new NpgsqlParameter("inengine_number", model.ChassisNo); nSqlParam[48] = new NpgsqlParameter("inis_eps", model.IsEPS); //Added EPS_Prod_type By Mayuri Khandelwal on 29 July 2025 nSqlParam[49] = new NpgsqlParameter("INEPS_PROD_TYPE", model.EPS_prod_type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_open_ticket"], nSqlParam); string ticketIdAlias = null; // taking variable to store ticket Id alias int mobileOtp = 0; // send GCM msg to device. if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // getting ticket id alias objModel.TicketId = ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; if (!String.IsNullOrWhiteSpace(ticketIdAlias)) { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", ds.Tables[0].Rows[0]["_ticket_id"]); nSqlParam1[1] = new NpgsqlParameter("in_van_id", model.AssignedToUserId); //Get Device GCm id for ticket. dsGcm = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_create_ticket_otp"], nSqlParam1); mobileOtp = Convert.ToInt32(dsGcm.Tables[0].Rows[0]["sp_create_ticket_otp"]); objModel.Message = mobileOtp.ToString(); DataSet dsReCreateOtp = new DataSet(); //added on 01-12-2021 if (mobileOtp == 0) { NpgsqlParameter[] nSqlParam3 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", ds.Tables[0].Rows[0]["_ticket_id"]); nSqlParam1[1] = new NpgsqlParameter("in_van_id", model.AssignedToUserId); //Get Device GCm id for ticket. dsReCreateOtp = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_create_ticket_otp"], nSqlParam3); objModel.Message = dsReCreateOtp.ToString(); } } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("InsertOpenTicket", Ex.Message, path, errorlogtf); return objModel; } } #endregion #region /// /// To update open ticket for android /// /// open ticket detail for updation /// contain response status 1 or 0 public InsertOpenTicket UpdateOpenTicketaAndroidNEW(InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); SendNotificationModel objGcmModel = new SendNotificationModel(); try { objModel.Status = "1"; DataSet ds2 = new DataSet(); DataSet dsGcm = new DataSet(); int UtcMinute = 330; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { if (model.TicketStatus == 8) { // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); //commented for wrong date and time due to mobile device time //nSqlParam[2] = new NpgsqlParameter("inlast_modification_time", model.LastModifiedTime); nSqlParam[2] = new NpgsqlParameter("inlast_modification_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParam[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[4] = new NpgsqlParameter("inremarks", model.OtherRemarks); nSqlParam[5] = new NpgsqlParameter("inflag", model.Flag); //added on 23/09/2020 nSqlParam[6] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParam[7] = new NpgsqlParameter("invan_longitude", model.VanLongitude); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_trip_end"], nSqlParam); if (model.TicketIdAlias.Contains('S') == true) { DataSet dsactivity = new DataSet(); NpgsqlParameter[] nSqlParamActivity = new NpgsqlParameter[6]; // //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); nSqlParamActivity[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParamActivity[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParamActivity[2] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParamActivity[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParamActivity[4] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParamActivity[5] = new NpgsqlParameter("invan_longitude", model.VanLongitude); dsactivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_van_lat_lng_in_activity_ticket_open_scv"], nSqlParamActivity); } } else { string strTicketStatus = ""; DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_Cogent_API_By_ticketId"], nSqlParamopen); if (dsOpen.Tables.Count > 0) { if (dsOpen.Tables[0].Rows.Count > 0) { strTicketStatus = dsOpen.Tables[0].Rows[0]["_ticket_status"].ToString(); } } // get latest ticket activity for the ticket. NpgsqlParameter[] nSqlParam0 = new NpgsqlParameter[1]; nSqlParam0[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_latest_ticket_activity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_ticket_activity"], nSqlParam0); model.TicketStatusPrevious = ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString(); // updating ticket status and creating activity by trigger NpgsqlParameter[] nSqlParam = new NpgsqlParameter[39]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam[1] = new NpgsqlParameter("inassigned_to", model.AssignedTo); nSqlParam[2] = new NpgsqlParameter("inreported_via", model.ReportedVia); nSqlParam[3] = new NpgsqlParameter("inpriority", model.Priority); nSqlParam[4] = new NpgsqlParameter("incustomer_score", model.CustomerScore); nSqlParam[5] = new NpgsqlParameter("inbreakdown_location", model.BreakdownLocation); nSqlParam[6] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); //nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", model.LastModifiedTime); nSqlParam[7] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParam[8] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParam[9] = new NpgsqlParameter("indescription", model.Description); nSqlParam[10] = new NpgsqlParameter("inbreakdown_longitude", model.BreakdownLongitude); nSqlParam[11] = new NpgsqlParameter("inbreakdown_lattitude", model.BreakdownLattitude); nSqlParam[12] = new NpgsqlParameter("inassigned_to_user_id", model.AssignedToUserId); nSqlParam[13] = new NpgsqlParameter("inassigned_to_user_lattitude", model.AssignedToUserLattitude); nSqlParam[14] = new NpgsqlParameter("inassigned_to_user_longitude", model.AssignedToUserLongitude); nSqlParam[15] = new NpgsqlParameter("inestimated_time_for_job_completion", model.EstimatedTimeForJobCompletion); nSqlParam[16] = new NpgsqlParameter("inestimated_time_for_job_completion_submit_time", model.EstimatedTimeForJobCompletionSubmitTime); nSqlParam[17] = new NpgsqlParameter("inbreakdown_location_landmark", model.BreakdownLocationLandmark); nSqlParam[18] = new NpgsqlParameter("inroute_id", model.RouteId); nSqlParam[19] = new NpgsqlParameter("inrepair_cost", model.RepairCost); nSqlParam[20] = new NpgsqlParameter("indefault_sla_time", model.DefaultSlaTime); nSqlParam[21] = new NpgsqlParameter("insla_missed_reason", model.SlaMissedReason); nSqlParam[22] = new NpgsqlParameter("insuggestion_comment", model.SuggestionComment); nSqlParam[23] = new NpgsqlParameter("indefault_col_1", model.JobCompleteResponseTime); nSqlParam[24] = new NpgsqlParameter("indefault_col_2", model.DefaultCol2); nSqlParam[25] = new NpgsqlParameter("indefault_col_3", model.DefaultCol3); nSqlParam[26] = new NpgsqlParameter("inopportunity_loss", model.OpportunityLost); nSqlParam[27] = new NpgsqlParameter("inreason_for_more_then_24hours", model._24HrsReason); nSqlParam[28] = new NpgsqlParameter("inestimated_distance", null); nSqlParam[29] = new NpgsqlParameter("inother_remarks", model.OtherRemarks); nSqlParam[30] = new NpgsqlParameter("inchassis_number", model.ChassisNo); nSqlParam[31] = new NpgsqlParameter("inodometer_reading", model.OdometerReading); nSqlParam[32] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[33] = new NpgsqlParameter("inprevious_odometer_reading", model.PreviousOdometerReading); //added on 23-09-2020 nSqlParam[34] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParam[35] = new NpgsqlParameter("invan_longitude", model.VanLongitude); nSqlParam[36] = new NpgsqlParameter("inmobile_request", model.IsMobileRequest); nSqlParam[37] = new NpgsqlParameter("in_estimated_van_reach_time", model.estimatedVAnReachTime); nSqlParam[38] = new NpgsqlParameter("inpreclosure_reason", model.preclosure_reason); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_open_ticket_status"], nSqlParam); if (model.TicketIdAlias.Contains('S') == true) { DataSet dsactivity = new DataSet(); NpgsqlParameter[] nSqlParamActivity = new NpgsqlParameter[6]; // //nSqlParam[0] = new NpgsqlParameter("in_van_reached_date_time", Convert.ToDateTime(model.VanReachedTime)); nSqlParamActivity[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParamActivity[1] = new NpgsqlParameter("inlast_modified_by", model.LastModifiedBy); nSqlParamActivity[2] = new NpgsqlParameter("inlast_modified_time", DateTime.Now.AddMinutes(-UtcMinute)); nSqlParamActivity[3] = new NpgsqlParameter("inticket_status", model.TicketStatus); nSqlParamActivity[4] = new NpgsqlParameter("invan_latitude", model.VanLatitude); nSqlParamActivity[5] = new NpgsqlParameter("invan_longitude", model.VanLongitude); dsactivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_van_lat_lng_in_activity_ticket_open_scv"], nSqlParamActivity); } } } else { objModel.Status = "0"; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } return objModel; } catch (Exception Ex) { objModel.Status = "0"; objModel.Message = Ex.Message; objLog.ErrorLogFile("UpdateOpenTicketaAndroid", Ex.Message, path, errorlogtf); return objModel; } } public void TripENDDBM(InsertOpenTicket model) { string strVanReach = ""; try { if (model.TicketStatus == 5) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParamclose = new NpgsqlParameter[1]; nSqlParamclose[0] = new NpgsqlParameter("inticket_id ", model.TicketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_reach_time_close"], nSqlParamclose); if (ds == null) { } else { if (ds.Tables[0].Rows.Count > 0) { strVanReach = Convert.ToString(ds.Tables[0].Rows[0]["_creation_time"]) == "" ? "" : Convert.ToDateTime(ds.Tables[0].Rows[0]["_creation_time"]).ToString(System.Configuration.ConfigurationManager.AppSettings["DateTimeFormatSAP"]); } } } objLog.AddLogFile("TripENDDBM", model.TicketId, path, errorlogtf); UdanPushData.SendDataToSAP(null, model.TicketStatus, model.TicketId, strVanReach); acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "TripEnd", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "TripEnd", false, ex.Message, model.AssignedToUserId); } } public void SendSMSForMobile(InsertOpenTicket model) { DataSet ds_latest_ticket_activity = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); #region Sending SMS ( When ticket estimated van reach time punched ) if ((model.TicketStatus.ToString() == "9") && (model.IsMobileRequest == true)) { try { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); UrlShortener shortener = new UrlShortener(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); if (System.Configuration.ConfigurationManager.AppSettings["livetrackingsmsIsBlocked"] != "true") { string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgLiveTrackingLink"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { string strurl = Encrypt(ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; //smsSentUrl= smsSentUrl.Replace("%3D","="); msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), model.estimatedVAnReachTime, ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string serviceEnginerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(OwnerSms); objGlobalRepository.SendMessage(serviceEnginerSms); } } } else { string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgestimatedVanReachTime"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), model.estimatedVAnReachTime, // breakdown location // model.TicketIdAlias, ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string OwnerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgestimatedVanReachTime); string serviceEnginerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgestimatedVanReachTime); objGlobalRepository.SendMessage(OwnerSms); objGlobalRepository.SendMessage(serviceEnginerSms); string ticketidalias = ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); model.DriverContactNo = ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(); model.CustomerContactNo = ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(); model.VehicleRegistrationNumber = ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(); // EstimatedVanReachTimeDetailOnCreationInVECV(model, ticketidalias); } } } acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "tripstartlivetrackingsms", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "tripstartlivetrackingsms", false, ex.Message, model.AssignedToUserId); } } #endregion #region Sending SMS ( When ticket is assigned to Van ) if (ds_latest_ticket_activity.Tables.Count > 0) { if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "1") && (model.TicketStatus == 2)) { try { DataSet ds1_ticket_info = new DataSet(); DataSet ds2_ticket_info = new DataSet(); DataSet ds3_ticket_info = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = model.TicketIdAlias; // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgCustforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCustforVanTicket"].ToString(); string msgDealerforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerforVanTicket"].ToString(); string msgWMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgWMforVanTicket"].ToString(); string msgCSMforVanTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgCSMforVanTicket"].ToString(); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { //vehicle_registration_number msgCustforVanTicket = string.Format(msgCustforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ConfigurationManager.AppSettings["TollFreeNo"].ToString()); // Toll free number msgDealerforVanTicket = string.Format(msgDealerforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgWMforVanTicket = string.Format(msgWMforVanTicket, ticketIdAlias, // Ticket Id ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // EOS van registration number ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // Service Engineer Name ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(),// customer name / Number ## ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgCSMforVanTicket = string.Format(msgCSMforVanTicket, ticketIdAlias, // Ticket ID ds3_ticket_info.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle registration number ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), // breakdown location ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2_ticket_info.Tables[0].Rows[0]["dealer_city"].ToString() + ") ",// Dealer Name, Dealer City ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); string CustomerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgCustforVanTicket); string DealerSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgDealerforVanTicket); // get all contact no split in array. string[] CSMContactNo = ds3_ticket_info.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgCSMforVanTicket); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds3_ticket_info.Tables[0].Rows[0]["wm_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds3_ticket_info.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgWMforVanTicket); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); //objGlobalRepository.SendMessage(OwnerSms); #region Sending sms to KAM when ticket is Accepted // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamAcceptedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamAcceptedTicket"].ToString(); // set content in msg msgKamAcceptedTicket = string.Format(msgKamAcceptedTicket, ticketIdAlias, // ticket id ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds3_ticket_info.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds3_ticket_info.Tables[0].Rows[0]["van_reg_no"].ToString(), // vehicle reg no. ConfigurationManager.AppSettings["TollFreeNo"].ToString() // toll free number ); string KamSms = string.Format(url, ds3_ticket_info.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamAcceptedTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables.Count > 0) { if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessageAcceptKamDummyOrRealTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessageAcceptKamDummyOrRealTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); // objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); // objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } //---------------------------------------------------------------------- } } } #endregion } } acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "assignedtvansms", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "assignedtvansms", false, ex.Message, model.AssignedToUserId); } } } } #endregion #region Sending SMS (When ticket was assigned to Van and when status is changed to In Progress) ) // Send msg to dealer,csm and customer on van reached. (For first time message sending when status is changed to In Progress) if (ds_latest_ticket_activity.Tables.Count > 0) { if ((ds_latest_ticket_activity.Tables[0].Rows[0][0].ToString() == "2") && (model.TicketStatus == 3)) { try { DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds3 = new DataSet(); NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); NpgsqlParameter[] nSqlParam2_ticket_info = new NpgsqlParameter[3]; nSqlParam2_ticket_info[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info); NpgsqlParameter[] nSqlParam3_ticket_info = new NpgsqlParameter[1]; nSqlParam3_ticket_info[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds3 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam3_ticket_info); string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); string msgVanReachedCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCustomer"].ToString(); string msgVanReachedDealer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedDealer"].ToString(); string msgVanReachedCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanReachedCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanReachedCustomer = string.Format(msgVanReachedCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanReachedDealer = string.Format(msgVanReachedDealer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26"), ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanReachedCSM = string.Format(msgVanReachedCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), ds3.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanReachedCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanReachedDealer); string[] CSMContactNo = (ds.Tables[0].Rows[0]["csm_contact_no"].ToString()).Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i].ToString(), msgVanReachedCSM); objGlobalRepository.SendMessage(CSMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); #region Sending sms to KAM when ticket is Assigned to Van and Van reached // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamVanReachedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamVanReachedTicket"].ToString(); // set content in msg msgKamVanReachedTicket = string.Format(msgKamVanReachedTicket, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26") // breakdown location ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamVanReachedTicket); objGlobalRepository.SendMessage(KamSms); } } #endregion } } acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "vanreachsms", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "vanreachsms", false, ex.Message, model.AssignedToUserId); } } } #endregion // Added By priya #region Sending SMS (When van was started and when reach to location) ) //if (ds_latest_ticket_activity.Tables.Count > 0) //{ if ((model.TicketStatusPrevious == "9") && (model.TicketStatus == 3)) { try { DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); DataSet ds2 = new DataSet(); DataSet ds3 = new DataSet(); // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgVanTicketVanReachedForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCustomer"].ToString(); string msgVanTicketVanReachedForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForWM"].ToString(); string msgVanTicketVanReachedForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketVanReachedForCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); msgVanTicketVanReachedForCustomer = string.Format(msgVanTicketVanReachedForCustomer, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString() ); msgVanTicketVanReachedForWM = string.Format(msgVanTicketVanReachedForWM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ticketIdAlias, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); msgVanTicketVanReachedForCSM = string.Format(msgVanTicketVanReachedForCSM, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(),// Dealer Name, Dealer City ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver contact ); string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketVanReachedForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketVanReachedForWM); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketVanReachedForCustomer); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketVanReachedForCSM); objGlobalRepository.SendMessage(CSMsms); } string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketVanReachedForWM); objGlobalRepository.SendMessage(WMsms); } objGlobalRepository.SendMessage(CustomerSms); objGlobalRepository.SendMessage(DealerSms); objGlobalRepository.SendMessage(OwnerSms); #region Sending sms to KAM when ticket is Assigned to Van and Van reached // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { string msgKamVanReachedTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamVanReachedTicket"].ToString(); // set content in msg msgKamVanReachedTicket = string.Format(msgKamVanReachedTicket, ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // eos team name and contact ds1.Tables[0].Rows[0]["breakdown_location"].ToString().Replace("&", "%26") // breakdown location ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamVanReachedTicket); objGlobalRepository.SendMessage(KamSms); } } #endregion } } acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "vanreachsms", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "vanreachsms", false, ex.Message, model.AssignedToUserId); } } // } #endregion #region Sending SMS ( When ticket was assigned to Van and is in Pre-Closure ) // For the first time message sending when ticket status is PreClosure first time if (model.TicketStatus == 4) { try { DataSet ds1 = new DataSet(); DataSet ds = new DataSet(); DataSet ds3 = new DataSet(); DataSet ds2 = new DataSet(); string strTicketStatus = ""; DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inticketid ", model.TicketId); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_Cogent_API_By_ticketId"], nSqlParamopen); if (dsOpen.Tables.Count > 0) { if (dsOpen.Tables[0].Rows.Count > 0) { strTicketStatus = dsOpen.Tables[0].Rows[0]["_ticket_status"].ToString(); } } // get contact details for sending sms. NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1); string ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString(); model.TicketIdAlias = ticketIdAlias; // get sms content details. nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam[2] = new NpgsqlParameter("inticket_number", model.TicketId); ds1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam); nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_number", model.TicketId); ds2 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_full_details_ticket_wise"], nSqlParam); //get sending sms api url. string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); // get msg format string msgVanTicketPreCloserForCustomer = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCustomer"].ToString(); string msgVanTicketPreCloserForOwner = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForOwner"].ToString(); string msgVanTicketPreCloserForWM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForWM"].ToString(); string msgVanTicketPreCloserForCSM = System.Web.Configuration.WebConfigurationManager.AppSettings["msgVanTicketPreCloserForCSM"].ToString(); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { //string[] id = model.TicketId.Split('-'); //msgVanTicketPreCloserForCustomer = string.Format(msgVanTicketPreCloserForCustomer, // ticketIdAlias, // Ticket Id // ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // Vehicle Registration Number // ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + " (" + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + ") "// Dealer Name, Dealer City // ); msgVanTicketPreCloserForWM = string.Format(msgVanTicketPreCloserForWM, ticketIdAlias, // Ticket Id ds.Tables[0].Rows[0]["dealer_or_service_engg"].ToString() + " " + ds.Tables[0].Rows[0]["service_engineer_contact_number"].ToString(), // Service_Engineer_Name Service_Engineer_Contact ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); msgVanTicketPreCloserForCSM = string.Format(msgVanTicketPreCloserForCSM, ticketIdAlias, // Ticket ID ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString(), // Dealer Name, Dealer City ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), // owner number ds.Tables[0].Rows[0]["customer_contact_no"].ToString() // driver number ); //string CustomerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_contact_no"].ToString(), msgVanTicketPreCloserForCustomer); string DealerSms = string.Format(url, ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString(), msgVanTicketPreCloserForWM); //string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketPreCloserForOwner); string OwnerSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgVanTicketPreCloserForCSM); objGlobalRepository.SendMessage(OwnerSms); // get all contact no split in array. string[] CSMContactNo = ds.Tables[0].Rows[0]["csm_contact_no"].ToString().Split(','); for (int i = 0; i < CSMContactNo.Count(); i++) { string CSMsms = string.Format(url, CSMContactNo[i], msgVanTicketPreCloserForCSM); objGlobalRepository.SendMessage(CSMsms); } // objGlobalRepository.SendMessage(CustomerSms); //commented on 18-12-2020(stop sending message to customer on preclosure) // objGlobalRepository.SendMessage(OwnerSms); string[] WMContactNo = ds.Tables[0].Rows[0]["WM_contact_no"].ToString().Split(','); for (int i = 0; i < WMContactNo.Count(); i++) { string WMsms = string.Format(url, WMContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string[] SiteIchargeContactNo = ds.Tables[0].Rows[0]["site_incharge_contact"].ToString().Split(','); for (int i = 0; i < SiteIchargeContactNo.Count(); i++) { string WMsms = string.Format(url, SiteIchargeContactNo[i], msgVanTicketPreCloserForWM); objGlobalRepository.SendMessage(WMsms); } string typePreclosure = ""; if (model.TicketStatus.ToString() == model.TicketStatusPrevious) { } else { if (model.preclosure_reason == "Closure Request") { typePreclosure = "closure"; } if (model.preclosure_reason == "Reassignment Request") { typePreclosure = "reassign"; } model.preclosure_reason = typePreclosure; //objGlobalRepository.SendMessage(OwnerSms); } } //objGlobalRepository.SendMessage(OwnerSms); } /* #region Sending sms to KAM when ticket is Assigned to Van and in Preclosure // checking whether this ticket creation belongs to KAM user or not NpgsqlParameter[] nSqlParam01 = new NpgsqlParameter[1]; nSqlParam01[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds_kam_ticket_details = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_kam_ticket_or_not"], nSqlParam01); //============================================================================================= string msgKamPreClosureTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgKamPreClosureTicket"].ToString(); // set content in msg msgKamPreClosureTicket = string.Format(msgKamPreClosureTicket, ticketIdAlias, // ticket id ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(), // vehicle reg no. ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString() + "( " + ds2.Tables[0].Rows[0]["dealer_city"].ToString() + " )" // Dealer Name, Dealer City ); string KamSms = string.Format(url, ds.Tables[0].Rows[0]["customer_mobile_number_1"].ToString(), msgKamPreClosureTicket); objGlobalRepository.SendMessage(KamSms); //============================================================================================= if (ds_kam_ticket_details.Tables.Count > 0) { // if this ticket belongs to KAM if (ds_kam_ticket_details.Tables[0].Rows.Count > 0) { //-----------Sending GCM push to all KAM users------------------------- NpgsqlParameter[] nSqlParam11 = new NpgsqlParameter[1]; nSqlParam11[0] = new NpgsqlParameter("inkam_id", ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString()); DataSet dsGcm1 = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_kam_user_devices_details_open_tickets"], nSqlParam11); if (dsGcm1.Tables.Count > 0) { if (dsGcm1.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGcm1.Tables[0].Rows) { string notificationMessageFormat = ConfigurationManager.AppSettings["NotificationMessagePreClosureKamTicket"].ToString(); string notificationMessage = string.Format(notificationMessageFormat, ticketIdAlias, ConfigurationManager.AppSettings["TollFreeNo"].ToString()); SendNotificationModel objGcmModel1 = new SendNotificationModel(); objGcmModel1.DeviceGcmId = dr["_gcm_id"].ToString(); objGcmModel1.TicketId = ds_kam_ticket_details.Tables[0].Rows[0]["_kam_id"].ToString(); objGcmModel1.NotificationCode = ConfigurationManager.AppSettings["MessagePreClosureKamTicket"].ToString(); objGcmModel1.NotificationMessage = notificationMessage; if (Convert.ToInt32(dr["_push_notification_bit"]) == 0) { objGcmModel1 = objGlobalRepository.GcmSendNotificationForKam(objGcmModel1); //objModel.Status = objGcmModel1.Status; } else { objGcmModel1 = objGlobalRepository.FcmSendNotificationForKam(objGcmModel1); // objModel.Status = objGcmModel1.Status; } //objModel.SenderId = objGcmModel.SenderId; } } } //---------------------------------------------------------------------- } } #endregion*/ acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "jobcompletesms", true, "Success", model.AssignedToUserId); } catch (Exception ex) { acitvityUpdateForMobile(Convert.ToInt32(model.TicketStatus), model.TicketId, "jobcompletesms", false, ex.Message, model.AssignedToUserId); } } #endregion } public string acitvityUpdateForMobile(int TicketStatus, string TicketId, string ActivityStatus, Boolean issend, string message, string assUserId) { string strmessage = "false"; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[6]; nSqlParam[0] = new NpgsqlParameter("inticket_id", TicketId); nSqlParam[1] = new NpgsqlParameter("in_ticket_status", TicketStatus); nSqlParam[2] = new NpgsqlParameter("in_activity_status", ActivityStatus); nSqlParam[3] = new NpgsqlParameter("in_is_send", issend); nSqlParam[4] = new NpgsqlParameter("in_message", message); nSqlParam[5] = new NpgsqlParameter("in_userid", assUserId); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_mobile_activity_after_update_ticket"], nSqlParam); strmessage = "true"; } catch (Exception ex) { strmessage = "false"; } return strmessage; } public ApiResponse GetCaseManagementDetails(string ticketid) { ApiResponse objApiResponse = new ApiResponse(); //string url = "https://eicheruptime.vecv.net/api/v1/get-eos-details"; // Replace with your API URL string url = System.Web.Configuration.WebConfigurationManager.AppSettings["CaseManagementAPI"].ToString(); // Create a WebClient instance using (var client = new WebClient()) { // Set headers client.Headers.Add("Content-Type:application/json"); client.Headers.Add("Accept:application/json"); ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true; //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; // Create the JSON payload string payload = "{\"eos_ticket_no\":\"" + ticketid + "\"}"; try { // Send the POST request and receive the response string responseData = client.UploadString(url, "POST", payload); var jsonResponse = JObject.Parse(responseData); var apiResponse = jsonResponse.ToObject(); objApiResponse = apiResponse; } catch (WebException ex) { objLog.ErrorLogFile("case management", ex.Message, path, errorlogtf); } } return objApiResponse; } public bool SendEmailMultipleUserModelMatrix(APIValueModel model) { bool issend = false; if (ConfigurationSettings.AppSettings["emailsend"].ToString() != "true") { // Define the sender and the SMTP client string fromAddress = ConfigurationSettings.AppSettings["EmailUserName"].ToString();// "your -email@example.com"; string smtpHost = ConfigurationSettings.AppSettings["Host"].ToString();// "your-smtp-host"; int smtpPort = Convert.ToInt32(ConfigurationSettings.AppSettings["Port"].ToString()); // Change this according to your SMTP server settings string smtpUsername = ConfigurationSettings.AppSettings["EmailUserName"].ToString();// "your-smtp-username"; string smtpPassword = ConfigurationSettings.AppSettings["fromEmailPassword"].ToString();// "your-smtp-password"; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress(fromAddress); if (model.caseType == "open") { string[] recipients = ConfigurationSettings.AppSettings["EmailToOpen"].ToString().Split(','); foreach (string recipient in recipients) { mail.To.Add(recipient); } string[] recipientsccval = ConfigurationSettings.AppSettings["EmailToOpenCC"].ToString().Split(','); foreach (string recipient in recipientsccval) { mail.CC.Add(recipient); } } else if (model.caseType == "close") { if (ConfigurationSettings.AppSettings["emailToRSMASM"].ToString() != "true") { string[] recipients = model.recipients.Split(','); foreach (string recipient in recipients) { mail.To.Add(recipient); } } string[] recipientscc = ConfigurationSettings.AppSettings["EmailtoCloseCC"].ToString().Split(','); foreach (string recipient in recipientscc) { mail.CC.Add(recipient); } } mail.Subject = model.subject; if (model.caseType == "close") { mail.Body = bodyForEmailClose(model); } else if (model.caseType == "open") { mail.Body = bodyForEmailOpen(model); } mail.IsBodyHtml = true; // Set to false if the body is plain text // objLog.ErrorLogFile("email Body", mail.Body, path, errorlogtf); using (SmtpClient smtp = new SmtpClient(smtpHost, smtpPort)) { smtp.Credentials = new NetworkCredential(smtpUsername, smtpPassword); smtp.EnableSsl = true; // Set // try { smtp.Send(mail); issend = true; } // to false if your SMTP server does not support SSL catch (Exception ex) { objLog.ErrorLogFile("send mail", ex.Message, path, errorlogtf); issend = false; } // insertMatrixModel(ConfigurationSettings.AppSettings["usp_create_model_matrix"].ToString(), ticketid, caseid); } } } return issend; } public string bodyForEmailClose(APIValueModel model) { string body = ""; if (ConfigurationSettings.AppSettings["modelemailIsBlocked"] != "true") { string ticketIdAlias = model.ticketIdAlias; body = @"

Dear Team,

Please pay attention !

This is an automated notification to inform you that the following EOS Ticket have been open for more than 24 hours.Your immediate attention is required to address this & make the vehicle on road ASAP-

EOS Ticket Number Dealership Name Dealer SCode Ticket Creation Date & Time Vehicle Registration Number Vehicle Model Number Owner Name
[Insert EOS Ticket Number] [Insert Dealership Name] [Insert Dealership Id] [Insert Creation Time] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Owner Name]

Regards,
Uptime Control Room Team

"; body = body.Replace("[Insert EOS Ticket Number]", model.ticketIdAlias) .Replace("[Insert Dealership Name]", model.dealerName) .Replace("[Insert Dealership Id]", model.dealerId) .Replace("[Insert Creation Time]", model.creation_time) .Replace("[Insert Vehicle Registration Number]", model.VehicleRegistrationNumber) .Replace("[Insert Vehicle Model Number]", model.VehicleModelNumber) .Replace("[Insert Owner Name]", model.ownerName); // string mailsub = "BUS (" + model.VehicleModelNumber + ") EOS Ticket Alert- " + ticketIdAlias; } return body; } public string bodyForEmailOpen(APIValueModel model) { string body = ""; if (ConfigurationSettings.AppSettings["modelemailIsBlocked"] != "true") { string ticketIdAlias = model.ticketIdAlias; body = @"

Dear Team,

Please pay attention !

This is an automated notification to inform you that the following EOS Ticket have been open for more than 24 hours.Your immediate attention is required to address this & make the vehicle on road ASAP-

CMT Case Number EOS Ticket Number Dealership Name Dealer SCode Ticket Creation Date & Time Vehicle Registration Number Vehicle Model Number Owner Name
[Insert CMT Case Number] [Insert EOS Ticket Number] [Insert Dealership Name] [Insert Dealership Id] [Insert Creation Time] [Insert Vehicle Registration Number] [Insert Vehicle Model Number] [Insert Owner Name]

Regards,
Uptime Control Room Team

"; body = body.Replace("[Insert CMT Case Number]", model.caseId) .Replace("[Insert EOS Ticket Number]", model.ticketIdAlias) .Replace("[Insert Dealership Name]", model.dealerName) .Replace("[Insert Dealership Id]", model.dealerId) .Replace("[Insert Creation Time]", model.creation_time) .Replace("[Insert Vehicle Registration Number]", model.VehicleRegistrationNumber) .Replace("[Insert Vehicle Model Number]", model.VehicleModelNumber) .Replace("[Insert Owner Name]", model.ownerName); // string mailsub = "BUS (" + model.VehicleModelNumber + ") EOS Ticket Alert- " + ticketIdAlias; } return body; } public Int64 GetMqCount(TicketRequestModel model) { Int64 mqCoutval = 0; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[1] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_Mq_Count"], nSqlParam); mqCoutval = Convert.ToInt64(ds.Tables[0].Rows[0][0]); } } catch (Exception Ex) { objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf); } return mqCoutval; } /*public string DetailFormVAHANApi(string registration_number) { string chassis_number = ""; string vahanUrl = ConfigurationManager.AppSettings["VahanUrl"].ToString(); string apiKey = ConfigurationManager.AppSettings["VahanKey"].ToString(); if (System.Configuration.ConfigurationManager.AppSettings["vahan_Api_Active"] != "true") { try { var clientVehicleType = new RestClient(vahanUrl); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //KA01JZ4031 string issend = "true"; string jsonAuthVariable = "{\"vehicleNumber\":\"" + registration_number + "\",\n\"blacklistCheck\":\"" + issend + "\",\n\"splitAddress\":" + issend + "}"; requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("Authorization", apiKey); requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); //IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); requestVehicleType.AddJsonBody(jsonAuthVariable); // Send the request (blocking call) IRestResponse response = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(response.Content); var stringvehcileResultVehicleType = response.Content.ToString(); // string strdevicetype = ""; if (stringvehcileResultVehicleType.ToString() == "[]") { chassis_number = ""; } else { JObject json = JObject.Parse(stringvehcileResultVehicleType); // Extract the chassis value string chassis = json["result"]["chassis"].ToString(); chassis_number = chassis; } } catch (Exception Ex) { objLog.ErrorLogFile("GlobalRepository ChassisTelematicDetail ", Ex.Message, path, errorlogtf); throw Ex; } } return chassis_number; }*/ public string DetailFormVAHANApi(string registration_number) { string chassis_number = ""; string vahanUrl = ConfigurationManager.AppSettings["VahanUrl"].ToString(); string apiKey = ConfigurationManager.AppSettings["VahanKey"].ToString(); if (System.Configuration.ConfigurationManager.AppSettings["vahan_Api_Active"] != "true") { try { var clientVehicleType = new RestClient(vahanUrl); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //KA01JZ4031 string issend = "true"; string jsonAuthVariable = "{\"vehicleNumber\":\"" + registration_number + "\",\n\"blacklistCheck\":\"" + issend + "\",\n\"splitAddress\":" + issend + "}"; requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("Authorization", apiKey); requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); //IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); requestVehicleType.AddJsonBody(jsonAuthVariable); // Send the request (blocking call) IRestResponse response = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(response.Content); var stringvehcileResultVehicleType = response.Content.ToString(); TicketRepository objTicketRepository = new TicketRepository(_connStr); if (response.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (response.StatusCode == System.Net.HttpStatusCode.OK) { // string strdevicetype = ""; if (stringvehcileResultVehicleType.ToString() == "[]") { chassis_number = ""; } else { JObject json = JObject.Parse(stringvehcileResultVehicleType); // Extract the chassis value string chassis = json["result"]["chassis"].ToString(); chassis_number = chassis; } } } } } catch (Exception Ex) { objLog.ErrorLogFile("GlobalRepository ChassisTelematicDetail ", Ex.Message, path, errorlogtf); throw Ex; } } return chassis_number; } public string insertVahanDetails(VAHANAPI model) { string strmessage = ""; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; // nSqlParam[0] = new NpgsqlParameter("inpayment_date", model.payment_date != null ? Convert.ToDateTime(model.payment_date).AddMinutes(UtcMinute) : model.payment_date); nSqlParam[0] = new NpgsqlParameter("in_chassis_number", model.chassis_number); nSqlParam[1] = new NpgsqlParameter("in_model", model.model); nSqlParam[2] = new NpgsqlParameter("in_norms_type", model.normsType); nSqlParam[3] = new NpgsqlParameter("in_owner_name", model.owner); nSqlParam[4] = new NpgsqlParameter("in_vehiclemanufacturername", model.vehicleManufacturerName); nSqlParam[5] = new NpgsqlParameter("in_registration_number", model.Registration_Number); nSqlParam[6] = new NpgsqlParameter("in_fuel_type", model.type); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_vahan_details"], nSqlParam); return strmessage; } catch (Exception Ex) { objLog.ErrorLogFile("insertVahanDetails", Ex.Message, path, errorlogtf); strmessage = "Catch exception"; return strmessage; } } public string insertVahanDetailsError(VAHANAPIError model, string chassis_no, string reg_no) { string strmessage = ""; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[7]; // nSqlParam[0] = new NpgsqlParameter("inpayment_date", model.payment_date != null ? Convert.ToDateTime(model.payment_date).AddMinutes(UtcMinute) : model.payment_date); nSqlParam[0] = new NpgsqlParameter("in_error_message", model.message); nSqlParam[1] = new NpgsqlParameter("in_error_status", model.status); nSqlParam[2] = new NpgsqlParameter("in_error_reason", model.reason); nSqlParam[3] = new NpgsqlParameter("in_error_type", model.type); nSqlParam[4] = new NpgsqlParameter("in_statuscode", model.statusCode); nSqlParam[5] = new NpgsqlParameter("in_registration_number", reg_no); nSqlParam[6] = new NpgsqlParameter("in_chassis_number", chassis_no); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_vahan_details_error"], nSqlParam); return strmessage; } catch (Exception Ex) { objLog.ErrorLogFile("insertVahanDetailsError", Ex.Message, path, errorlogtf); strmessage = "Catch exception"; return strmessage; } } /* public VAHANAPI DetailFormVAHANApiAllDetails(string registration_number) { string vahanUrl = ConfigurationManager.AppSettings["VahanUrl"].ToString(); string apiKey = ConfigurationManager.AppSettings["VahanKey"].ToString(); objLog.AddLogFile("Vahan Response Url", vahanUrl.ToString(), path, errorlogtf); objLog.AddLogFile("Vahan Response Key", apiKey.ToString(), path, errorlogtf); VAHANAPI objVAHANAPI = new VAHANAPI(); try { var clientVehicleType = new RestClient(vahanUrl); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //KA01JZ4031 string issend = "true"; string jsonAuthVariable = "{\"vehicleNumber\":\"" + registration_number + "\",\n\"blacklistCheck\":\"" + issend + "\",\n\"splitAddress\":" + issend + "}"; objLog.AddLogFile("Vahan Response Json", jsonAuthVariable.ToString(), path, errorlogtf); requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("Authorization", apiKey); requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); //IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); requestVehicleType.AddJsonBody(jsonAuthVariable); objLog.AddLogFile("Vahan Response requestVehicleType", requestVehicleType.ToString(), path, errorlogtf); // Send the request (blocking call) IRestResponse response = clientVehicleType.Execute(requestVehicleType); objLog.AddLogFile("Vahan Response StatusCode", response.StatusCode.ToString(), path, errorlogtf); if (response.StatusCode == System.Net.HttpStatusCode.OK) { objLog.AddLogFile("Vahan Response Content", response.Content.ToString(), path, errorlogtf); var stringvehcileResultVehicleType = response.Content.ToString(); if (stringvehcileResultVehicleType.ToString() == "[]") { objVAHANAPI = null; } else { JObject json = JObject.Parse(stringvehcileResultVehicleType); objLog.AddLogFile("Vahan Response json response", json.ToString(), path, errorlogtf); // Extract the chassis value objVAHANAPI.chassis_number = json["result"]["chassis"].ToString(); objVAHANAPI.model = json["result"]["model"].ToString(); objVAHANAPI.normsType = json["result"]["normsType"].ToString(); objVAHANAPI.owner = json["result"]["owner"].ToString(); objVAHANAPI.vehicleManufacturerName = json["result"]["vehicleManufacturerName"].ToString(); objVAHANAPI.type = json["result"]["type"].ToString(); objVAHANAPI.Registration_Number = json["result"]["regNo"].ToString(); string str = insertVahanDetails(objVAHANAPI); } } else { string stringvehcileResultVehicleType = response.Content.ToString(); ErrorResponse objErrorResponse = new ErrorResponse(); objErrorResponse = JsonConvert.DeserializeObject(stringvehcileResultVehicleType); string str = insertVahanDetailsError(objErrorResponse.Error, "", registration_number); //insertVahanDetailsError // objVAHANAPI.chassis_number = json["result"]["chassis"].ToString(); //objVAHANAPI.model = json["result"]["model"].ToString(); //objVAHANAPI.normsType = json["result"]["normsType"].ToString(); //objVAHANAPI.owner = json["result"]["owner"].ToString(); //objVAHANAPI.vehicleManufacturerName = json["result"]["vehicleManufacturerName"].ToString(); //objVAHANAPI.type = json["result"]["type"].ToString(); //objVAHANAPI.Registration_Number = json["result"]["regNo"].ToString(); //string str = insertVahanDetails(objVAHANAPI); } } catch (Exception Ex) { objLog.ErrorLogFile("DetailFormVAHANApiAllDetails", Ex.Message, path, errorlogtf); objLog.AddLogFile("Vahan Response Error", Ex.InnerException.ToString(), path, errorlogtf); throw Ex; } return objVAHANAPI; }*/ public VAHANAPI DetailFormVAHANApiAllDetails(string registration_number) { string vahanUrl = ConfigurationManager.AppSettings["VahanUrl"].ToString(); string apiKey = ConfigurationManager.AppSettings["VahanKey"].ToString(); objLog.AddLogFile("Vahan Response Url", vahanUrl.ToString(), path, errorlogtf); objLog.AddLogFile("Vahan Response Key", apiKey.ToString(), path, errorlogtf); TicketRepository objTicketRepository = new TicketRepository(_connStr); VAHANAPI objVAHANAPI = new VAHANAPI(); try { var clientVehicleType = new RestClient(vahanUrl); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //KA01JZ4031 string issend = "true"; string jsonAuthVariable = "{\"vehicleNumber\":\"" + registration_number + "\",\n\"blacklistCheck\":\"" + issend + "\",\n\"splitAddress\":" + issend + "}"; objLog.AddLogFile("Vahan Response Json", jsonAuthVariable.ToString(), path, errorlogtf); requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("Authorization", apiKey); requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); //IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); requestVehicleType.AddJsonBody(jsonAuthVariable); objLog.AddLogFile("Vahan Response requestVehicleType", requestVehicleType.ToString(), path, errorlogtf); // Send the request (blocking call) IRestResponse response = clientVehicleType.Execute(requestVehicleType); objLog.AddLogFile("Vahan Response StatusCode", response.StatusCode.ToString(), path, errorlogtf); if (response.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } if (response.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.OK) { objLog.AddLogFile("Vahan Response Content", response.Content.ToString(), path, errorlogtf); var stringvehcileResultVehicleType = response.Content.ToString(); if (stringvehcileResultVehicleType.ToString() == "[]") { objVAHANAPI = null; } else { JObject json = JObject.Parse(stringvehcileResultVehicleType); objLog.AddLogFile("Vahan Response json response", json.ToString(), path, errorlogtf); // Extract the chassis value objVAHANAPI.chassis_number = json["result"]["chassis"].ToString(); objVAHANAPI.model = json["result"]["model"].ToString(); objVAHANAPI.normsType = json["result"]["normsType"].ToString(); objVAHANAPI.owner = json["result"]["owner"].ToString(); objVAHANAPI.vehicleManufacturerName = json["result"]["vehicleManufacturerName"].ToString(); objVAHANAPI.type = json["result"]["type"].ToString(); objVAHANAPI.Registration_Number = json["result"]["regNo"].ToString(); string str = insertVahanDetails(objVAHANAPI); } } else { string stringvehcileResultVehicleType = response.Content.ToString(); ErrorResponse objErrorResponse = new ErrorResponse(); objErrorResponse = JsonConvert.DeserializeObject(stringvehcileResultVehicleType); string str = insertVahanDetailsError(objErrorResponse.Error, "", registration_number); } } } } catch (Exception Ex) { objLog.ErrorLogFile("DetailFormVAHANApiAllDetails", Ex.Message, path, errorlogtf); objLog.AddLogFile("Vahan Response Error", Ex.InnerException.ToString(), path, errorlogtf); throw Ex; } return objVAHANAPI; } public CustomerVehicleModelDBM CustomerVehicleModelByDBM(CustomerVehicleModelDBM model) { string regno = model.VehicleRegistrationNumber; CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { GlobalRepository objGlobalRepository = new GlobalRepository(""); objCutomerVehicle = GetCustomerDetailsDBM(model); if (objCutomerVehicle.VehicleNumberPlate == null || objCutomerVehicle.VehicleNumberPlate == "") { } else { model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; objCutomerVehicle.userType = "DBMDataLake"; } model.VehicleRegistrationNumber = regno; objCutomerVehicle.VehicleRegistrationNumber = regno; return objCutomerVehicle; } catch (Exception Ex) { // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBM", Ex.Message, path, errorlogtf); objCutomerVehicle = new CustomerVehicleModelDBM(); objCutomerVehicle.Status = 0; objCutomerVehicle.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; return objCutomerVehicle; } } /* public CustomerVehicleModelDBM CustomerVehicleModelByDBMAPI(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { string regno = model.VehicleRegistrationNumber; GlobalRepository objGlobalRepository = new GlobalRepository(""); var watch1 = System.Diagnostics.Stopwatch.StartNew(); string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPIFORGETTINGCUSTOMERDATA"].ToString(), model.VehicleRegistrationNumber.ToUpper(), ""); WebRequest req = WebRequest.Create(APIRegistrationNo); req.Method = "GET"; string userNameAndPassword = ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGCUSTOMERDATA"].ToString() + ":" + ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGCUSTOMERDATA"].ToString(); req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(userNameAndPassword)); req.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGCUSTOMERDATA"].ToString(), ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGCUSTOMERDATA"].ToString()); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; WebResponse webRes = req.GetResponse(); HttpWebResponse resp = req.GetResponse() as HttpWebResponse; if (resp.StatusCode == HttpStatusCode.OK) { StreamReader ResponseDataStream = new StreamReader(resp.GetResponseStream()); String res = ResponseDataStream.ReadToEnd(); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.LoadXml(res); XmlNodeList nodeList = XMLDoc.GetElementsByTagName("content"); XNamespace ab = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string Short_Fall = string.Empty; foreach (XmlNode node in nodeList) { XDocument doc = XDocument.Parse(node.InnerXml); XElement tempElement = doc.Descendants(ab + "Vhvin").FirstOrDefault(); model.VehicleNumberPlate = tempElement.Value;//Chassis Number objCutomerVehicle.VehicleNumberPlate = model.VehicleNumberPlate; tempElement = doc.Descendants(ab + "Maktx").FirstOrDefault(); model.VehicleModelNumber = tempElement.Value; //if(model.VehicleModelNumber.ToLowe) tempElement = doc.Descendants(ab + "fueltype").FirstOrDefault(); objCutomerVehicle.VehicleFuelType = tempElement.Value; objCutomerVehicle.VehicleModelNumber = model.VehicleModelNumber; //Vehicle Product Varient tempElement = doc.Descendants(ab + "Vtext").FirstOrDefault(); model.VehicleType = tempElement.Value; if ((model.VehicleType).ToLower() == "scv") { model.VehicleType = "LMD"; } objCutomerVehicle.VehicleType = model.VehicleType; // objCutomerVehicle.vehicle_installation_date = model.VehicleType; //Vehicle Installation Date tempElement = doc.Descendants(ab + "date").FirstOrDefault(); if (!string.IsNullOrEmpty(tempElement.Value)) { DateTime dt = DateTime.ParseExact(tempElement.Value, "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); objCutomerVehicle.vehicle_installation_date = dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { objCutomerVehicle.vehicle_installation_date = ""; } tempElement = doc.Descendants(ab + "Name1").FirstOrDefault(); objCutomerVehicle.CustomerName = tempElement.Value; tempElement = doc.Descendants(ab + "CustomerId").FirstOrDefault(); objCutomerVehicle.CustomerId = tempElement.Value; tempElement = doc.Descendants(ab + "CustomerType").FirstOrDefault(); objCutomerVehicle.CustomerType = tempElement.Value; tempElement = doc.Descendants(ab + "Telf1").FirstOrDefault(); objCutomerVehicle.CustomerMobile1 = tempElement.Value; tempElement = doc.Descendants(ab + "CustAddr").FirstOrDefault(); objCutomerVehicle.CustomerAddress = tempElement.Value; tempElement = doc.Descendants(ab + "CustState").FirstOrDefault(); objCutomerVehicle.CustomerState = tempElement.Value; tempElement = doc.Descendants(ab + "Vehicle_Warranty").FirstOrDefault(); objCutomerVehicle.vehicle_warranty = tempElement.Value; tempElement = doc.Descendants(ab + "AMC").FirstOrDefault(); objCutomerVehicle.vehicle_amc = tempElement.Value; tempElement = doc.Descendants(ab + "Emission_norms").FirstOrDefault(); objCutomerVehicle.VehicleEmissionNorms = tempElement.Value; tempElement = doc.Descendants(ab + "sales_date").FirstOrDefault(); objCutomerVehicle.VehicleSalesDate = tempElement.Value; objCutomerVehicle.userType = "DBMApi"; objCutomerVehicle.VehicleRegistrationNumber = model.VehicleRegistrationNumber.ToUpper(); } } model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); objCutomerVehicle.extended_warranty = tokens[0]; objCutomerVehicle.warranty_end_date = tokens[1]; } string WARRANTY = ""; WARRANTY = objGlobalRepository.getvehiclewarranty(model.VehicleRegistrationNumber); objCutomerVehicle.vehicle_warranty = WARRANTY; } catch (Exception Ex) { objCutomerVehicle = null; // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBMAPI", Ex.Message, path, errorlogtf); } return objCutomerVehicle; }*/ public CustomerVehicleModelDBM CustomerVehicleModelByDBMAPI(CustomerVehicleModelDBM model) { CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPIFORGETTINGCUSTOMERDATA"].ToString(), model.VehicleRegistrationNumber.ToUpper(), ""); GlobalRepository objGlobalRepository = new GlobalRepository(""); TicketRepository objTicketRepository = new TicketRepository(_connStr); try { string regno = model.VehicleRegistrationNumber; var watch1 = System.Diagnostics.Stopwatch.StartNew(); WebRequest req = WebRequest.Create(APIRegistrationNo); req.Method = "GET"; string userNameAndPassword = ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGCUSTOMERDATA"].ToString() + ":" + ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGCUSTOMERDATA"].ToString(); req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(userNameAndPassword)); req.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGCUSTOMERDATA"].ToString(), ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGCUSTOMERDATA"].ToString()); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; WebResponse webRes = req.GetResponse(); HttpWebResponse resp = req.GetResponse() as HttpWebResponse; if (resp.StatusCode == HttpStatusCode.OK) { StreamReader ResponseDataStream = new StreamReader(resp.GetResponseStream()); String res = ResponseDataStream.ReadToEnd(); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.LoadXml(res); XmlNodeList nodeList = XMLDoc.GetElementsByTagName("content"); XNamespace ab = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string Short_Fall = string.Empty; foreach (XmlNode node in nodeList) { XDocument doc = XDocument.Parse(node.InnerXml); XElement tempElement = doc.Descendants(ab + "Vhvin").FirstOrDefault(); model.VehicleNumberPlate = tempElement.Value;//Chassis Number objCutomerVehicle.VehicleNumberPlate = model.VehicleNumberPlate; tempElement = doc.Descendants(ab + "Maktx").FirstOrDefault(); model.VehicleModelNumber = tempElement.Value; //if(model.VehicleModelNumber.ToLowe) tempElement = doc.Descendants(ab + "fueltype").FirstOrDefault(); objCutomerVehicle.VehicleFuelType = tempElement.Value; objCutomerVehicle.VehicleModelNumber = model.VehicleModelNumber; //Vehicle Product Varient tempElement = doc.Descendants(ab + "Vtext").FirstOrDefault(); model.VehicleType = tempElement.Value; if ((model.VehicleType).ToLower() == "scv") { model.VehicleType = "LMD"; } objCutomerVehicle.VehicleType = model.VehicleType; // objCutomerVehicle.vehicle_installation_date = model.VehicleType; //Vehicle Installation Date tempElement = doc.Descendants(ab + "date").FirstOrDefault(); if (!string.IsNullOrEmpty(tempElement.Value)) { DateTime dt = DateTime.ParseExact(tempElement.Value, "yyyymmdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); objCutomerVehicle.vehicle_installation_date = dt.ToString(ConfigurationManager.AppSettings["DateFormat"]); } else { objCutomerVehicle.vehicle_installation_date = ""; } tempElement = doc.Descendants(ab + "Name1").FirstOrDefault(); objCutomerVehicle.CustomerName = tempElement.Value; tempElement = doc.Descendants(ab + "CustomerId").FirstOrDefault(); objCutomerVehicle.CustomerId = tempElement.Value; tempElement = doc.Descendants(ab + "CustomerType").FirstOrDefault(); objCutomerVehicle.CustomerType = tempElement.Value; tempElement = doc.Descendants(ab + "Telf1").FirstOrDefault(); objCutomerVehicle.CustomerMobile1 = tempElement.Value; tempElement = doc.Descendants(ab + "CustAddr").FirstOrDefault(); objCutomerVehicle.CustomerAddress = tempElement.Value; tempElement = doc.Descendants(ab + "CustState").FirstOrDefault(); objCutomerVehicle.CustomerState = tempElement.Value; tempElement = doc.Descendants(ab + "Vehicle_Warranty").FirstOrDefault(); objCutomerVehicle.vehicle_warranty = tempElement.Value; tempElement = doc.Descendants(ab + "AMC").FirstOrDefault(); objCutomerVehicle.vehicle_amc = tempElement.Value; tempElement = doc.Descendants(ab + "Emission_norms").FirstOrDefault(); objCutomerVehicle.VehicleEmissionNorms = tempElement.Value; tempElement = doc.Descendants(ab + "sales_date").FirstOrDefault(); objCutomerVehicle.VehicleSalesDate = tempElement.Value; objCutomerVehicle.userType = "DBMApi"; objCutomerVehicle.VehicleRegistrationNumber = model.VehicleRegistrationNumber.ToUpper(); } } else if (resp.StatusCode == HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed: Unauthorized access", APIRegistrationNo); objLog.ErrorLogFile(APIRegistrationNo, "API Login Failed: Unauthorized access", path, errorlogtf); } } catch (WebException webEx) { string errorMessage = ""; if (webEx.Response != null) { using (var reader = new StreamReader(webEx.Response.GetResponseStream())) { errorMessage = reader.ReadToEnd(); } } else { errorMessage = webEx.Message; } bool isSend = objTicketRepository.emailForError(errorMessage, APIRegistrationNo); objLog.ErrorLogFile(APIRegistrationNo, errorMessage, path, errorlogtf); } model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); objCutomerVehicle.extended_warranty = tokens[0]; objCutomerVehicle.warranty_end_date = tokens[1]; } string WARRANTY = ""; WARRANTY = objGlobalRepository.getvehiclewarranty(model.VehicleRegistrationNumber); objCutomerVehicle.vehicle_warranty = WARRANTY; } catch (Exception Ex) { objCutomerVehicle = null; // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBMAPI", Ex.Message, path, errorlogtf); } return objCutomerVehicle; } public CustomerVehicleModelDBM CustomerVehicleModelByDBMBYChassisno(CustomerVehicleModelDBM model) { GlobalRepository objGlobalRepository = new GlobalRepository(""); CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { // objCutomerVehicle = objTicket.GetCustomerDetailsDBM(model); string strchassisno = GetChassisNoByRegno(model.VehicleRegistrationNumber); model.VehicleNumberPlate = strchassisno; if (System.Configuration.ConfigurationManager.AppSettings["IsDataLakeSkip"] != "true") { objCutomerVehicle = GetCustomerDetailsDBMChassisNo(model); model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; } //model.VehicleNumberPlate = "MC2BUERC0PL105890"; // objCutomerVehiclewaranty = objTiclaket.GetwarrantyDetailsDBM(model);lak string WARRANTY = ""; if (strchassisno == "") { objCutomerVehicle = null; } else { objCutomerVehicle.userType = "DBMDataLake"; WARRANTY = objGlobalRepository.getvehiclewarrantychassis(model.VehicleNumberPlate); objCutomerVehicle.vehicle_warranty = WARRANTY; model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); objCutomerVehicle.extended_warranty = tokens[0]; objCutomerVehicle.warranty_end_date = tokens[1]; } } } catch (Exception Ex) { // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBMBYChassisno", Ex.Message, path, errorlogtf); } return objCutomerVehicle; } public CustomerVehicleModelDBM CustomerVehicleModelAfterVahanChassisno(CustomerVehicleModelDBM model) { GlobalRepository objGlobalRepository = new GlobalRepository(""); CustomerVehicleModelDBM objCutomerVehicle = new CustomerVehicleModelDBM(); try { // objCutomerVehicle = objTicket.GetCustomerDetailsDBM(model); objCutomerVehicle = GetCustomerDetailsDBMChassisNo(model); model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; //model.VehicleNumberPlate = "MC2BUERC0PL105890"; // objCutomerVehiclewaranty = objTiclaket.GetwarrantyDetailsDBM(model);lak string WARRANTY = ""; if (objCutomerVehicle == null) { objCutomerVehicle = null; } else { if (objCutomerVehicle.CustomerId == null) { } else { objCutomerVehicle.userType = "DBMDataLake"; WARRANTY = objGlobalRepository.getvehiclewarrantychassis(model.VehicleNumberPlate); objCutomerVehicle.vehicle_warranty = WARRANTY; objCutomerVehicle.CustomerId = model.CustomerId; model.VehicleNumberPlate = objCutomerVehicle.VehicleNumberPlate; string extendedarranty = objGlobalRepository.getvehicleExtendedwarranty(model.VehicleNumberPlate); if (extendedarranty == "") { } else { string[] tokens = extendedarranty.Split(','); objCutomerVehicle.extended_warranty = tokens[0]; objCutomerVehicle.warranty_end_date = tokens[1]; } } } } catch (Exception Ex) { // write error log into fil objLog.ErrorLogFile("CustomerVehicleModelByDBMBYChassisno", Ex.Message, path, errorlogtf); } return objCutomerVehicle; } public VAHANAPI getVahanDetailByRegistrationNumber(string registration_number) { VAHANAPI objVAHANAPI = new VAHANAPI(); try { DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParamopen = new NpgsqlParameter[1]; nSqlParamopen[0] = new NpgsqlParameter("inregistration_number ", registration_number); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_vahan_details"], nSqlParamopen); if (dsOpen.Tables[0].Rows.Count > 0) { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias objVAHANAPI.chassis_number = dsOpen.Tables[0].Rows[0]["_chassis_number"].ToString(); // getting ticket id alias objVAHANAPI.Registration_Number = dsOpen.Tables[0].Rows[0]["_registration_number"].ToString(); // getting ticket id alias objVAHANAPI.vehicleManufacturerName = dsOpen.Tables[0].Rows[0]["_vehiclemanufacturername"].ToString(); // getting ticket id alias } else { objVAHANAPI = null; } return objVAHANAPI; } catch (Exception Ex) { objLog.ErrorLogFile("getVahanDetailByRegistrationNumber", Ex.Message, path, errorlogtf); return objVAHANAPI; } } public List GetServiceStation(ElectricServiceStationModel model) { List objListModel = new List(); try { objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inlatitude", model.lattitude); nSqlParam[1] = new NpgsqlParameter("inlongitude", model.longitude); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_electric_service_station_by_latlong"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { objListModel = ds.Tables[0].AsEnumerable().Select(s => new ElectricServiceStationModel { name = s.Field("_name"), city = s.Field("_city"), address = s.Field("_address"), state = s.Field("_state"), lattitude = s.Field("_lattitude"), longitude = s.Field("_longitude") }).ToList(); } } } catch (Exception ex) { objLog.ErrorLogFile("GetAllElectricServiceStationByLatLong", ex.Message, path, errorlogtf); } return objListModel; } public List VahanDetailReport(ReportRequestModel model) { List objVAHANAPI = new List(); try { DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[1] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_vahan_details_report"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objVAHANAPI = dsOpen.Tables[0].AsEnumerable().Select(s => new VAHANAPI { chassis_number = s.Field("_chassis_number"), Registration_Number = s.Field("_registration_number"), vehicleManufacturerName = s.Field("_vehiclemanufacturername"), model = s.Field("_model"), normsType = s.Field("_normsType"), creation_time = s.Field("_creation_time"), owner = s.Field("_owner"), type = s.Field("_type") }).ToList(); //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias } else { objVAHANAPI = null; } return objVAHANAPI; } catch (Exception Ex) { objLog.ErrorLogFile("getVahanDetailByRegistrationNumber", Ex.Message, path, errorlogtf); return objVAHANAPI; } } public List VahanDetailErrorReport(ReportRequestModel model) { List objVAHANAPI = new List(); try { DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[1] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_vahan_details_error_report"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objVAHANAPI = dsOpen.Tables[0].AsEnumerable().Select(s => new VAHANAPIError { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias message = s.Field("_message"), // getting ticket id alias status = s.Field("_status"), // getting ticket id alias reason = s.Field("_reason"), // getting ticket id alias creation_time = s.Field("_creation_time"), type = s.Field("_type"), statusCode = s.Field("_statusCode"), registration_number = s.Field("_reg_no") }).ToList(); } else { objVAHANAPI = null; } return objVAHANAPI; } catch (Exception Ex) { objLog.ErrorLogFile("VahanDetailErrorReport", Ex.Message, path, errorlogtf); return objVAHANAPI; } } public List GetAllOpenTicketCaseManagement(CaseManagementAPIModel model) { List objCaseManagementAPI = new List(); try { int UtcMinute = 330; DataSet dsOpen = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[0]; dsOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_open_ticket_details_for_casemanagement"], nSqlParam); if (dsOpen.Tables[0].Rows.Count > 0) { objCaseManagementAPI = dsOpen.Tables[0].AsEnumerable().Select(s => new CaseManagementAPIModel { //assigned_to_user_id = dsOpen.Tables[0].Rows[0]["_assigned_to_user_id"].ToString(); // getting ticket id alias EOS_Ticket_Id = s.Field("_ticket_id_alias"), // getting ticket id alias Dealer_Code = s.Field("_dealer_name_1scode"), // getting ticket id alias Dealer_Name = s.Field("_dealer_name"), Dealer_Contact_Number = s.Field("_dealer_contact_number1"), CSM_Name = s.Field("csm"), ASM_Name = s.Field("asm"), RSM_Name = s.Field("rsm"), WM_Name = s.Field("wm"), CSM_Contact = s.Field("csm_contact_no"), ASM_Contact = s.Field("asm_contact_no"), RSM_contact = s.Field("rsm_contact_no"), WM_contact = s.Field("wm_contact_no"), Registration_number = s.Field("_registration_number"), // getting ticket id alias chassis_no = s.Field("_chassis_no"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(UtcMinute)).ToString("yyyy-MM-dd HH:mm:ss"), EOS_Aging_Hrs = s.Field("_eos_sla"), Latest_Remark = s.Field("_reamrks"), EOS_Ticket_Status = s.Field("_ticket_status"), CutomerType = s.Field("_cutomer_type"), ModelNumber = s.Field("_model_number"), Region = s.Field("_region"), VehicleTagging = s.Field("_vehicle_tagging") }).ToList(); } else { objCaseManagementAPI = null; } return objCaseManagementAPI; } catch (Exception Ex) { objLog.ErrorLogFile("VahanDetailErrorReport", Ex.Message, path, errorlogtf); return objCaseManagementAPI; } } public string updateremarksCasemanagement(CaseManagementAPIModel model) { string strSuccess = ""; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2]; nSqlParam[0] = new NpgsqlParameter("inticket_id", model.EOS_Ticket_Id); nSqlParam[1] = new NpgsqlParameter("inremarks", model.Latest_Remark); DataSet ds = new DataSet(); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_remarks_case_management"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { string appversion = Convert.ToString(ds.Tables[0].Rows[0]["sp_update_remarks_case_management"]); if (appversion == "" || appversion == null) { strSuccess = "error"; } else { strSuccess = "success"; } } return strSuccess; } /* public async Task GetFuelDetails(string chassisno) { CustomerVehicleModelDBM model = new CustomerVehicleModelDBM(); if (chassisno.Length > 12) { try { Task str = getAuthCode(); string authkey = str.Result; var clientVehicleType = new RestClient(ConfigurationManager.AppSettings["fuellevel"]); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("X-IBM-Client-Id", "EOS_USER"); requestVehicleType.AddHeader("Authorization", $"Bearer {authkey}"); requestVehicleType.AddHeader("Content-Type", "application/json"); var postData = new { chassisNo = chassisno// Replace with your actual parameter }; // Add the JSON body using AddJsonBody() requestVehicleType.AddJsonBody(postData); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(responseVehicleType.Content); Console.WriteLine(responseVehicleType.Content); var stringvehcileResult = responseVehicleType.Content.ToString(); // Get the fuel level percentage var responseObject = JsonConvert.DeserializeObject(stringvehcileResult); if (responseObject != null && responseObject.vehicleData != null && responseObject.vehicleData.Length > 0) { model.fuelLevelInLtr = responseObject.vehicleData[0].fuelLevelInLtr.ToString(); model.defLevelInLtr = responseObject.vehicleData[0].defLevelInLtr.ToString(); model.fuelLevelInPer = responseObject.vehicleData[0].fuelLevelInPer.ToString(); //Console.WriteLine("Fuel Level in Percentage: " + fuelLevelInPer); } } catch (Exception Ex) { objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } } return model; }*/ public async Task GetFuelDetails(string chassisno) { CustomerVehicleModelDBM model = new CustomerVehicleModelDBM(); if (chassisno.Length > 12) { try { Task str = getAuthCode(); string authkey = str.Result; var clientVehicleType = new RestClient(ConfigurationManager.AppSettings["fuellevel"]); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.POST); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("X-IBM-Client-Id", "EOS_USER"); requestVehicleType.AddHeader("Authorization", $"Bearer {authkey}"); requestVehicleType.AddHeader("Content-Type", "application/json"); var postData = new { chassisNo = chassisno// Replace with your actual parameter }; // Add the JSON body using AddJsonBody() requestVehicleType.AddJsonBody(postData); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(responseVehicleType.Content); Console.WriteLine(responseVehicleType.Content); TicketRepository objTicketRepository = new TicketRepository(_connStr); if (responseVehicleType.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.OK) { var stringvehcileResult = responseVehicleType.Content.ToString(); // Get the fuel level percentage var responseObject = JsonConvert.DeserializeObject(stringvehcileResult); if (responseObject != null && responseObject.vehicleData != null && responseObject.vehicleData.Length > 0) { model.fuelLevelInLtr = responseObject.vehicleData[0].fuelLevelInLtr.ToString(); model.defLevelInLtr = responseObject.vehicleData[0].defLevelInLtr.ToString(); model.fuelLevelInPer = responseObject.vehicleData[0].fuelLevelInPer.ToString(); //Console.WriteLine("Fuel Level in Percentage: " + fuelLevelInPer); } } } } } catch (Exception Ex) { objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } } return model; } /*public async Task getAuthCode() { string steval = ""; try { var clientVehicleType = new RestClient("https://partnerapi.vecv.net/service-gateway/genrateToken"); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.GET); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; // string jsonAuthVariable = "{\"chassisNum\":\"" + dtcDta + "\",\n\"customerName\":\"\"" + customerName + ",\n\"casenumber\":\"\"" + casenumber + ",\n\"deviceId\":\"\"" + deviceId + "}"; requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("client-id", "EOS_USER"); // requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(responseVehicleType.Content); steval = responseVehicleType.Content; JObject json = JObject.Parse(steval); // Extract the token value steval = json["token"].ToString(); } catch (HttpRequestException e) { objLog.ErrorLogFile("Request error: {Message}", e.Message, path, errorlogtf); // Additional logging or handling } catch (Exception Ex) { objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } return steval; }*/ public async Task getAuthCode() { string steval = ""; try { var clientVehicleType = new RestClient("https://partnerapi.vecv.net/service-gateway/genrateToken"); clientVehicleType.Timeout = -1; var requestVehicleType = new RestRequest(Method.GET); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; // string jsonAuthVariable = "{\"chassisNum\":\"" + dtcDta + "\",\n\"customerName\":\"\"" + customerName + ",\n\"casenumber\":\"\"" + casenumber + ",\n\"deviceId\":\"\"" + deviceId + "}"; requestVehicleType.AddHeader("Content-Type", "application/json"); requestVehicleType.AddHeader("client-id", "EOS_USER"); // requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); TicketRepository objTicketRepository = new TicketRepository(_connStr); if (responseVehicleType.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine(responseVehicleType.Content); steval = responseVehicleType.Content; JObject json = JObject.Parse(steval); // Extract the token value steval = json["token"].ToString(); } } } } catch (HttpRequestException e) { objLog.ErrorLogFile("Request error: {Message}", e.Message, path, errorlogtf); // Additional logging or handling } catch (Exception Ex) { objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } return steval; } public string sendmailDataLake() { if (System.Configuration.ConfigurationManager.AppSettings["modelDataLakIsBlocked"] != "true") { string[] emailto = ConfigurationManager.AppSettings["EmailtoDataLake"].ToString().Split(','); foreach (string ToEmail in emailto) { string body = ""; body = @"

Dear User,

Please pay attention !!!

Datalake query taking too much time

Regards,
Eicher On Road Support

Disclaimer : This is system generated E-Mail, Please do not reply on this mail.

"; // Replace placeholders with actual values try { SmtpClient smtpClient = new SmtpClient(ConfigurationManager.AppSettings["Host"].ToString(), Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString())) { Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailUserName"].ToString(), ConfigurationManager.AppSettings["FromEmailPassword"].ToString()), EnableSsl = true }; // Create the email message MailMessage mailMessage = new MailMessage { From = new MailAddress(ConfigurationManager.AppSettings["EmailUserName"].ToString()), Subject = "Datalake error", Body = body, IsBodyHtml = true }; mailMessage.To.Add(ToEmail); // Send the email smtpClient.Send(mailMessage); Console.WriteLine("Email sent successfully."); } catch (Exception Ex) { objLog.ErrorLogFile("sendmailDataLake", Ex.Message, path, errorlogtf); } } } return "true"; } public VanDealerListStateWise GetVanlatlngbydevicealias(string deviceAlias) { VanDealerListStateWise objVanDealerListStateWise = new VanDealerListStateWise(); DataSet dsTracking = new DataSet(); try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[5]; nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias); dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam); TrackingModel objlistTracking = new TrackingModel(); List listTracking = new List(); listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel { LogId = s.Field("_log_id"), DeviceAlias = s.Field("_device_alias"), Latitude = s.Field("_latitude"), Longitude = s.Field("_longitude"), // LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), IsConnected = s.Field("_device_status"), Xcordinate = s.Field("_x_coordinate"), Ycordinate = s.Field("_y_coordinate"), Zcordinate = s.Field("_z_coordinate"), // CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), DeviceStatus = s.Field("_device_status") }).ToList(); objlistTracking = listTracking.FirstOrDefault(); objVanDealerListStateWise.DealerVanLattitude = objlistTracking.Latitude; objVanDealerListStateWise.DealerVanLongitude = objlistTracking.Longitude; // objVanDealerListStateWise.DealerVanLattitude = objlistTracking.Latitude; } catch (Exception Ex) { objLog.ErrorLogFile("GetVanlatlngbydevicealias", Ex.Message, path, errorlogtf); } return objVanDealerListStateWise; } public InsertOpenTicket GetTitanTicketDetail(InsertOpenTicket objmodel) { InsertOpenTicket model = new InsertOpenTicket(); DataSet ds1_ticket_info = new DataSet(); try { NpgsqlParameter[] nSqlParam2_ticket_info_cogent = new NpgsqlParameter[3]; nSqlParam2_ticket_info_cogent[0] = new NpgsqlParameter("inregistration_number", null); nSqlParam2_ticket_info_cogent[1] = new NpgsqlParameter("inmobile_number", null); nSqlParam2_ticket_info_cogent[2] = new NpgsqlParameter("inticket_number", objmodel.TicketId); ds1_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_customer_open_ticket_details"], nSqlParam2_ticket_info_cogent); model.TicketId = objmodel.TicketId; model.AssignedTo = "van"; model.Priority = Convert.ToInt32(ds1_ticket_info.Tables[0].Rows[0]["priority"].ToString()); model.CustomerScore = ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(); model.BreakdownLocation = ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(); model.LastModifiedBy = objmodel.LastModifiedBy; model.LastModifiedTime = objmodel.LastModifiedTime; model.TicketStatus = 1; model.Description = ds1_ticket_info.Tables[0].Rows[0]["description"].ToString(); model.BreakdownLongitude = ds1_ticket_info.Tables[0].Rows[0]["breakdown_longitude"].ToString(); model.BreakdownLattitude = ds1_ticket_info.Tables[0].Rows[0]["breakdown_lattitude"].ToString(); model.AssignedToUserId = objmodel.AssignedToUserId; ; model.AssignedToUserLattitude = objmodel.AssignedToUserLattitude; model.AssignedToUserLongitude = objmodel.AssignedToUserLongitude; model.Token = objmodel.Token; // model.EstimatedTimeForJobCompletion = ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(); // model.EstimatedTimeForJobCompletionSubmitTime != null ? Convert.ToDateTime(model.EstimatedTimeForJobCompletionSubmitTime).AddMinutes(-model.UtcMinute) : model.EstimatedTimeForJobCompletionSubmitTime = // model.BreakdownLocationLandmark = ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(); model.RouteId = Convert.ToInt32(ds1_ticket_info.Tables[0].Rows[0]["route_id"].ToString()); model.DefaultSlaTime = Convert.ToInt32(ds1_ticket_info.Tables[0].Rows[0]["default_sla_time"].ToString()); //model.JobCompleteResponseTime = ds1_ticket_info.Tables[0].Rows[0]["breakdown_location"].ToString(); model.DefaultCol2 = ds1_ticket_info.Tables[0].Rows[0]["default_col_2"].ToString(); model.DefaultCol3 = ds1_ticket_info.Tables[0].Rows[0]["default_col_3"].ToString(); model.EstimateDistance = objmodel.EstimateDistance; } catch (Exception Ex) { objLog.ErrorLogFile("GetTitanTicketDetail", Ex.Message, path, errorlogtf); } return model; } public string updatetempvandetail(InsertOpenTicket model) { string strsuccess = ""; try { DataSet ds = new DataSet(); objAuthorization = new AuthenticationRepository(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[4]; // nSqlParam[0] = new NpgsqlParameter("inpayment_date", model.payment_date != null ? Convert.ToDateTime(model.payment_date).AddMinutes(UtcMinute) : model.payment_date); nSqlParam[0] = new NpgsqlParameter("in_ticketid", model.TicketId); nSqlParam[1] = new NpgsqlParameter("in_vanreg", model.VehicleRegistrationNumber); nSqlParam[2] = new NpgsqlParameter("in_driver_name", model.DriverName); nSqlParam[3] = new NpgsqlParameter("in_driver_no", model.DriverContactNo); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_update_temp_driver_details"], nSqlParam); } catch (Exception Ex) { objLog.ErrorLogFile("updatetempvandetail", Ex.Message, path, errorlogtf); } return strsuccess; } /*public string getBatteryVoltage(string chassisNo) { string devicedetails = ""; // chassisNo = "MC2EZLRC0RA538217"; string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPIFORDEVICETYPE"].ToString(), chassisNo.ToUpper()); string batteryvoltageurl = ""; try { //string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPIFORDEVICETYPE"].ToString(), CHASSISNO.ToUpper(), ""); WebRequest req = WebRequest.Create(APIRegistrationNo); req.Method = "GET"; string userNameAndPassword = ConfigurationManager.AppSettings["EOSUSERNAMEFORDEVICETYPE"].ToString() + ":" + ConfigurationManager.AppSettings["EOSPASSWORDFORDEVICETYPE"].ToString(); req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(userNameAndPassword)); req.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EOSUSERNAMEFORDEVICETYPE"].ToString(), ConfigurationManager.AppSettings["EOSPASSWORDFORDEVICETYPE"].ToString()); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; CustomerVehicleModelDBM objVeh = new CustomerVehicleModelDBM(); WebResponse webRes = req.GetResponse(); HttpWebResponse resp = req.GetResponse() as HttpWebResponse; if (resp.StatusCode == HttpStatusCode.OK) { StreamReader ResponseDataStream = new StreamReader(resp.GetResponseStream()); String res = ResponseDataStream.ReadToEnd(); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.LoadXml(res); XmlNodeList nodeList = XMLDoc.GetElementsByTagName("content"); XNamespace ab = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string Short_Fall = string.Empty; foreach (XmlNode node in nodeList) { XDocument doc = XDocument.Parse(node.InnerXml); XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string packet_info = ""; // Accessing the vhvin property string vhvin = doc.Root.Element(d + "zteldevicetype").Value; string zimei = doc.Root.Element(d + "zimei").Value; // vhvin = "TCU 350C"; //zimei = "352467113480185"; string fullDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); DateTime dateTime = DateTime.Parse(fullDateTime); string timeBefore24Hours = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss"); string dateOnly = dateTime.ToString("yyyy-MM-dd").Replace("-", ""); string timeOnly = dateTime.ToString("HH:mm:ss").Replace(":", ""); DateTime dateTime1 = DateTime.Parse(timeBefore24Hours); string dateOnly1 = dateTime1.ToString("yyyy-MM-dd").Replace("-", ""); string timeOnly1 = dateTime1.ToString("HH:mm:ss").Replace(":", ""); string stime = dateOnly + timeOnly; string stime2 = dateOnly1 + timeOnly1; long startdate = Convert.ToInt64(stime2); long enddate = Convert.ToInt64(stime); var devicettypeval = ""; if (vhvin == "TCU 350A") { packet_info = "getLatestLocation_perbs4"; devicettypeval = "PER_BS4"; } if (vhvin == "TCU 350C") { packet_info = "getLatestLocation_perbs6"; devicettypeval = "PER_BS6"; } // Construct API URL // startdate = 20250128073556; // enddate= 20250129105159; if (System.Configuration.ConfigurationManager.AppSettings["isBatteryVolatgeCall"] != "true") { string url = $"https://apiplatform.vecv.net/periodic-api-eos/{packet_info}/{zimei}/{startdate}/{enddate}/"; batteryvoltageurl = url; using (HttpClient client = new HttpClient()) { try { client.Timeout = TimeSpan.FromSeconds(10); // Send GET request synchronously HttpResponseMessage response = client.GetAsync(url).Result; // .Result blocks until the task completes if (response.StatusCode == HttpStatusCode.OK) { // Ensure successful response response.EnsureSuccessStatusCode(); // Read the response content as a string string responseData = response.Content.ReadAsStringAsync().Result; // .Result blocks until the content is read // Deserialize JSON response into C# object using Newtonsoft.Json var deviceData = JsonConvert.DeserializeObject(responseData); // Output the parsed isProtechAPICall if (deviceData != null && deviceData.Length > 0) { foreach (var data in deviceData) { if (vhvin == "TCU 350A") { packet_info = "getLatestLocation_perbs4"; } if (vhvin == "TCU 350C") { packet_info = "getLatestLocation_perbs6"; } if (devicettypeval == "PER_BS4") { devicedetails = data.vehicleBattery; } else { devicedetails = data.MainInputVoltage; } } // batteryVoltage = Task.FromResult(strbatteryVoltage); // ServiceLog.WriteLog(batteryVoltage.ToString()); //Console.WriteLine($"DeviceId: {data.DeviceId}"); //Console.WriteLine($"DateTime: {data.EDateTime}"); //Console.WriteLine($"Main Input Voltage: {data.MainInputVoltage}"); } else { Console.WriteLine("No data found for the given parameters."); } } } catch (Exception ex) { objLog.ErrorLogFile("Battery voltage " + batteryvoltageurl, ex.InnerException.InnerException.Message.ToString(), path, errorlogtf); Console.WriteLine($"Error calling API: {ex.Message}"); } } } } } // response.Result; return devicedetails; } catch (Exception Ex) { objLog.ErrorLogFile("batteryvoltage", Ex.Message, path, errorlogtf); return devicedetails; } }*/ public string getBatteryVoltage(string chassisNo) { string devicedetails = ""; // chassisNo = "MC2EZLRC0RA538217"; string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPIFORDEVICETYPE"].ToString(), chassisNo.ToUpper()); string batteryvoltageurl = ""; try { var clientVehicleType = new RestClient(APIRegistrationNo); clientVehicleType.Timeout = 10000; // clientVehicleType.Timeout =-1; var requestVehicleType = new RestRequest(Method.GET); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //requestVehicleType.AddParameter("chassisno", chassisno); var username = ConfigurationManager.AppSettings["EOSUSERNAMEFORDEVICETYPE"].ToString(); var password = ConfigurationManager.AppSettings["EOSPASSWORDFORDEVICETYPE"].ToString(); // Add Basic Authentication var credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username}:{password}")); // Add Basic Authentication header requestVehicleType.AddHeader("Authorization", $"Basic {credentials}"); requestVehicleType.AddHeader("Accept", "application/xml"); requestVehicleType.AddHeader("Content-Type", "application/xml"); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); TicketRepository objTicketRepository = new TicketRepository(_connStr); if (responseVehicleType.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed. The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.OK) { byte[] bytes = Encoding.Default.GetBytes(responseVehicleType.Content); string res = Encoding.UTF8.GetString(bytes); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.LoadXml(res); XmlNodeList nodeList = XMLDoc.GetElementsByTagName("content"); XNamespace ab = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string Short_Fall = string.Empty; foreach (XmlNode node in nodeList) { XDocument doc = XDocument.Parse(node.InnerXml); XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string packet_info = ""; // Accessing the vhvin property string vhvin = doc.Root.Element(d + "zteldevicetype").Value; string zimei = doc.Root.Element(d + "zimei").Value; // vhvin = "TCU 350C"; //zimei = "352467113480185"; string fullDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); DateTime dateTime = DateTime.Parse(fullDateTime); string timeBefore24Hours = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss"); string dateOnly = dateTime.ToString("yyyy-MM-dd").Replace("-", ""); string timeOnly = dateTime.ToString("HH:mm:ss").Replace(":", ""); DateTime dateTime1 = DateTime.Parse(timeBefore24Hours); string dateOnly1 = dateTime1.ToString("yyyy-MM-dd").Replace("-", ""); string timeOnly1 = dateTime1.ToString("HH:mm:ss").Replace(":", ""); string stime = dateOnly + timeOnly; string stime2 = dateOnly1 + timeOnly1; long startdate = Convert.ToInt64(stime2); long enddate = Convert.ToInt64(stime); var devicettypeval = ""; if (vhvin == "TCU 350A") { packet_info = "getLatestLocation_perbs4"; devicettypeval = "PER_BS4"; } if (vhvin == "TCU 350C") { packet_info = "getLatestLocation_perbs6"; devicettypeval = "PER_BS6"; } // Construct API URL // startdate = 20250128073556; // enddate= 20250129105159; if (System.Configuration.ConfigurationManager.AppSettings["isBatteryVolatgeCall"] != "true") { string url = $"https://apiplatform.vecv.net/periodic-api-eos/{packet_info}/{zimei}/{startdate}/{enddate}/"; batteryvoltageurl = url; var clientVehicleType1 = new RestClient(url); clientVehicleType.Timeout = 10000; // clientVehicleType.Timeout =-1; var requestVehicleType1 = new RestRequest(Method.GET); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //requestVehicleType.AddParameter("chassisno", chassisno); var username1 = ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGTELEMATICDATA"].ToString(); var password1 = ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGTELEMATICDATA"].ToString(); // Add Basic Authentication var credentials1 = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username1}:{password1}")); // Add Basic Authentication header requestVehicleType1.AddHeader("Authorization", $"Basic {credentials}"); requestVehicleType1.AddHeader("Content-Type", "application/json"); IRestResponse responseVehicleType1 = clientVehicleType1.Execute(requestVehicleType1); Console.WriteLine(responseVehicleType1.ResponseStatus); if (responseVehicleType1.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(responseVehicleType1.ErrorMessage.ToString(), clientVehicleType1.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType1.BaseUrl.ToString(), responseVehicleType1.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType1.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(responseVehicleType1.ErrorMessage.ToString(), clientVehicleType1.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } else if (responseVehicleType.StatusCode == System.Net.HttpStatusCode.OK) { var stringvehcileResult = responseVehicleType1.Content.ToString(); var deviceData = JsonConvert.DeserializeObject(stringvehcileResult); if (deviceData != null && deviceData.Length > 0) { foreach (var data in deviceData) { if (vhvin == "TCU 350A") { packet_info = "getLatestLocation_perbs4"; } if (vhvin == "TCU 350C") { packet_info = "getLatestLocation_perbs6"; } if (devicettypeval == "PER_BS4") { devicedetails = data.vehicleBattery; } else { devicedetails = data.MainInputVoltage; } } // batteryVoltage = Task.FromResult(strbatteryVoltage); // ServiceLog.WriteLog(batteryVoltage.ToString()); //Console.WriteLine($"DeviceId: {data.DeviceId}"); //Console.WriteLine($"DateTime: {data.EDateTime}"); //Console.WriteLine($"Main Input Voltage: {data.MainInputVoltage}"); } else { Console.WriteLine("No data found for the given parameters."); } } } } } } // response.Result; } } } return devicedetails; } catch (Exception Ex) { objLog.ErrorLogFile("batteryvoltage", Ex.Message, path, errorlogtf); return devicedetails; } } public string getticketidalias(string ticketid) { string ticketIdAlias = ""; DataSet ds = new DataSet(); try { // get contact details for sending sms. NpgsqlParameter[] nSqlParam1_ticket_info = new NpgsqlParameter[2]; nSqlParam1_ticket_info[0] = new NpgsqlParameter("inticket_id", ticketid); nSqlParam1_ticket_info[1] = new NpgsqlParameter("invehicle_reg", null); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1_ticket_info); if (ds.Tables[0].Rows.Count > 0) { ticketIdAlias = ds.Tables[0].Rows[0]["_ticket_id_alias"].ToString() + ',' + ds.Tables[0].Rows[0]["vehicle_registration_number"].ToString(); } } catch (Exception Ex) { objLog.ErrorLogFile("TicketRepository UpdateOpenTicketWeb getticketidalias " + ticketid, Ex.Message, path, errorlogtf); throw Ex; } return ticketIdAlias; } public string getDelayReasonFlag(string ticketid) { string strmessage = ""; try { NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("in_eos_ticket", ticketid); DataSet ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_delay_reason_flag"], nSqlParam); if (ds.Tables[0].Rows.Count > 0) { strmessage = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_delay_reason_flag"]); // strmessage = "success";//ds.Tables[0].Rows[0]["_ticket_id"].ToString(); // getting ticket id alias // errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]) + ticketIdAlias; } } catch (Exception Ex) { objLog.ErrorLogFile("usp_get_delay_reason_flag", Ex.Message, path, errorlogtf); } return strmessage; } public bool emailForError(string errror, string apiname) { bool strsuccess = false; try { string[] recipients = ConfigurationManager.AppSettings["APIErrorEmailto"].ToString().Split(','); string fromAddress = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your -email@example.com"; string smtpHost = ConfigurationManager.AppSettings["Host"].ToString();// "your-smtp-host"; int smtpPort = Convert.ToInt32(ConfigurationManager.AppSettings["Port"].ToString()); // Change this according to your SMTP server settings string smtpUsername = ConfigurationManager.AppSettings["EmailUserName"].ToString();// "your-smtp-username"; string smtpPassword = ConfigurationManager.AppSettings["fromEmailPassword"].ToString();// "your-smtp-password"; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress(fromAddress); foreach (string recipient in recipients) { mail.To.Add(recipient); } mail.Subject = apiname + "Error"; mail.Body = errror; mail.IsBodyHtml = true; // Set to false if the body is plain text using (SmtpClient smtp = new SmtpClient(smtpHost, smtpPort)) { smtp.Credentials = new NetworkCredential(smtpUsername, smtpPassword); smtp.EnableSsl = true; // Set // // to false if your SMTP server does not support SSL smtp.Send(mail); } } } catch (Exception Ex) { objLog.ErrorLogFile("emailForError", Ex.Message, path, errorlogtf); } return strsuccess; } public WhatupModel SaveDetailsWhatsup(WhatupModel model) { WhatupModel objModel = new WhatupModel(); try { objModel.Status = 0; objAuthorization = new AuthenticationRepository(); model.MobileNumber = "91" + model.MobileNumber; DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inMobileNumber", model.MobileNumber); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_whatup_details"], nSqlParam); if (Convert.ToString(ds.Tables[0].Rows[0]["sp_insert_whatup_details"]) != "0") { objModel.Status = 1; objModel.Message = "Success"; } else { objModel.Status = 0; objModel.Message = "UnSuccessFull"; } } catch (Exception Ex) { objModel.Status = 0; objModel.Message = Ex.Message; objLog.ErrorLogFile("SaveDetailsWhatsup", Ex.Message, path, errorlogtf); } return objModel; } public string GetDetailsWhatsup(WhatupAPIModel model) { WhatupModel objModel = new WhatupModel(); string strlatlng = ""; try { objModel.Status = 0; objAuthorization = new AuthenticationRepository(); model.mobileNumber = "91" + model.mobileNumber; DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inMobileNumber", model.mobileNumber); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_whatup_details"], nSqlParam); if (Convert.ToString(ds.Tables[0].Rows[0]["sp_get_whatup_detail"]) != "0") { strlatlng = Convert.ToString(ds.Tables[0].Rows[0]["sp_get_whatup_detail"]); } else { strlatlng = "not found"; } } catch (Exception Ex) { strlatlng = "not found"; objLog.ErrorLogFile("GetDetailsWhatsup", Ex.Message, path, errorlogtf); } return strlatlng; } public WhatupModel SaveLocationDetailsWhatsup(WhatupModel model) { WhatupModel objModel = new WhatupModel(); try { objModel.Status = 0; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3]; nSqlParam[0] = new NpgsqlParameter("inMobileNumber", model.MobileNumber); nSqlParam[1] = new NpgsqlParameter("inlatitude", model.Latitude); nSqlParam[2] = new NpgsqlParameter("inlongitude", model.Longitude); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_whatup_location_details"], nSqlParam); if (Convert.ToString(ds.Tables[0].Rows[0]["sp_insert_whatup_location_details"]) != "0") { objModel.Status = 1; objModel.Message = "Success"; } else { objModel.Status = 0; objModel.Message = "UnSuccessFull"; } } else { objModel.Status = 0; objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); } } catch (Exception Ex) { objModel.Status = 0; objModel.Message = Ex.Message; objLog.ErrorLogFile("SaveLocationDetailsWhatsup", Ex.Message, path, errorlogtf); } return objModel; } /*public string sendWhatupMessage(WhatupAPIModel model) { WhatupAPIModel objWhatupAPIModel = new WhatupAPIModel(); WhatupModel objWhatupModel = new WhatupModel(); objWhatupModel.MobileNumber = model.mobileNumber; string strsuccess = ""; try { var client = new RestClient(ConfigurationManager.AppSettings["WhatupUrl"].ToString()); // Base URL var request = new RestRequest(ConfigurationManager.AppSettings["WhatupSubUrl"].ToString(), Method.POST); // Endpoint ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; request.AddHeader("Content-Type", "application/json"); // You can create a JSON string manually (not recommended), or better: var body = new { templateId = ConfigurationManager.AppSettings["WhatupTemplateId"].ToString(), mobileNumber = model.mobileNumber }; // Add body as JSON (RestSharp v106 and below supports this) request.RequestFormat = DataFormat.Json; request.AddJsonBody(body); // Synchronous execution (since .NET 4.5 doesn't support await easily) IRestResponse response = client.Execute(request); if(response.StatusCode == HttpStatusCode.OK) { strsuccess = "Success"; objWhatupAPIModel.Status = 1; objWhatupAPIModel.Message = "Success"; TicketRepository objTicket = new TicketRepository(_connStr); objWhatupModel = objTicket.SaveDetailsWhatsup(objWhatupModel); return strsuccess; } else { strsuccess = "Error"; objWhatupAPIModel.Status = 0; objWhatupAPIModel.Message = "error";// response.ErrorMessage; } Console.WriteLine(response.Content); } catch (Exception Ex) { objLog.ErrorLogFile("sendWhatupMessage", Ex.Message, path, errorlogtf); throw Ex; } return strsuccess; }*/ public string sendWhatupMessage(WhatupAPIModel model) { WhatupAPIModel objWhatupAPIModel = new WhatupAPIModel(); WhatupModel objWhatupModel = new WhatupModel(); objWhatupModel.MobileNumber = model.mobileNumber; string strsuccess = ""; try { var client = new RestClient(ConfigurationManager.AppSettings["WhatupUrl"].ToString()); // Base URL var request = new RestRequest(ConfigurationManager.AppSettings["WhatupSubUrl"].ToString(), Method.POST); // Endpoint ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; request.AddHeader("Content-Type", "application/json"); // You can create a JSON string manually (not recommended), or better: var body = new { templateId = ConfigurationManager.AppSettings["WhatupTemplateId"].ToString(), mobileNumber = model.mobileNumber }; // Add body as JSON (RestSharp v106 and below supports this) request.RequestFormat = DataFormat.Json; request.AddJsonBody(body); // Synchronous execution (since .NET 4.5 doesn't support await easily) IRestResponse response = client.Execute(request); TicketRepository objTicketRepository = new TicketRepository(_connStr); if (response.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), client.BaseUrl.ToString()); objLog.ErrorLogFile(client.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(response.ErrorMessage.ToString(), client.BaseUrl.ToString()); objLog.ErrorLogFile(client.BaseUrl.ToString(), response.ErrorMessage.ToString(), path, errorlogtf); } else { if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { bool isSend = objTicketRepository.emailForError("API Login Failed:Login failed.The server response is Unauthorized. ", client.BaseUrl.ToString()); objLog.ErrorLogFile(client.BaseUrl.ToString(), "API Login Failed:Login failed. The server response is Unauthorized. ", path, errorlogtf); } if (response.StatusCode == HttpStatusCode.OK) { strsuccess = "Success"; objWhatupAPIModel.Status = 1; objWhatupAPIModel.Message = "Success"; TicketRepository objTicket = new TicketRepository(_connStr); objWhatupModel = objTicket.SaveDetailsWhatsup(objWhatupModel); return strsuccess; } else { strsuccess = "Error"; objWhatupAPIModel.Status = 0; objWhatupAPIModel.Message = "error";// response.ErrorMessage; } Console.WriteLine(response.Content); } } } catch (Exception Ex) { objLog.ErrorLogFile("sendWhatupMessage", Ex.Message, path, errorlogtf); throw Ex; } return strsuccess; } public string sendEPSLeadDetailmail(EPSSalesDetails model) { if (System.Configuration.ConfigurationManager.AppSettings["IsEPSLeadDetailmailSend"] != "true") { string[] emailto = ConfigurationManager.AppSettings["EmailtoEPSDetails"].ToString().Split(','); string body = ""; body = @"

Hello Team,

Greetings!

This is to inform you that we have received a customer call related to a sales inquiry for Eicher Power Solutions (EPS).

Customer Name Customer Mobile Number Location Quantity Product Type
[Insert Customer Name] [Insert Customer No] [Insert Location] [Insert Quantity] [Insert Product Type]

Kindly take this lead forward and connect with the customer at the earliest.

Regards,
CC - EPS

Disclaimer: This is a system-generated email. Please do not reply to this mail.

"; // Replace placeholders with actual values body = body.Replace("[Insert Customer Name]", model.CustomerName) .Replace("[Insert Customer No]", model.CustomerNumber) .Replace("[Insert Location]", model.Location) .Replace("[Insert Quantity]", model.Qunatity) .Replace("[Insert Product Type]", model.ProductType); string mailsub = "New Sales Inquiry Received – EPS Lead Notification"; SendEmailEPSSales(emailto, mailsub, body); } return "true"; } public List ClosedConsolidatedDataReport(TicketRequestModel model) { TicketRequestModel objModel = new TicketRequestModel(); List objList = new List(); try { DataSet ds = new DataSet(); string filterval = ""; objAuthorization = new AuthenticationRepository(); if (objAuthorization.AuthenticateDevice(model.Token)) { // get consolidated report record count. NpgsqlParameter[] nSqlParam = new NpgsqlParameter[8]; nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId); nSqlParam[1] = new NpgsqlParameter("instart_date", model.FromDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[2] = new NpgsqlParameter("inend_date", model.ToDate.AddMinutes(Convert.ToInt32(-model.UtcMinute))); nSqlParam[3] = new NpgsqlParameter("inlimit", model.Limit); nSqlParam[4] = new NpgsqlParameter("inoff_set", model.OffSet); nSqlParam[5] = new NpgsqlParameter("incondition", model.Condition); nSqlParam[6] = new NpgsqlParameter("invehicle_type", model.VehicleType); nSqlParam[7] = new NpgsqlParameter("inorganization", model.Organization); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_report_consolidated_data_closed"], nSqlParam); objList = ds.Tables[0].AsEnumerable().Select(s => new ConsolidatedReportModelClosed { ticket_id = s.Field("_ticket_id"), customer_name = s.Field("_customer_name"), customer_contact_no = s.Field("_customer_contact_no"), vehicle_type = s.Field("_vehicle_type"), chassis_number = s.Field("_chassis_number"), //vehicle_instalation_date = Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), vehicle_instalation_date = s.Field("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])), breakdown_location = s.Field("_breakdown_location"), default_sla_time = s.Field("_default_sla_time"), //response = s.Field("_response"), response = s.Field("_response") == null || Convert.ToInt32(s.Field("_response")) <= 0 ? "0" : s.Field("_response"), eos_team_member_and_van = s.Field("_eos_team_member_and_van"), dealer_name = s.Field("_dealer_name"), dealer_contact_no = s.Field("_dealer_contact_no"), created_by = s.Field("_created_by"), creation_time = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), state = s.Field("_state"), city = s.Field("_city"), month_name = s.Field("_month_name"), time_slot = s.Field("_time_slot"), open_call_hrs = s.Field("_open_call_hrs"), language_name = s.Field("_language_name"), region = s.Field("_region"), landmark = s.Field("_landmark"), dealer_code = s.Field("_dealer_code"), warranty = s.Field("_warranty"), vehicle_model = s.Field("_vehicle_model"), load_carried = s.Field("_load_carried"), type_of_load_carried = s.Field("_type_of_load_carried"), call_assigned_to = s.Field("_call_assigned_to"), owner_name = s.Field("_owner_name"), owner_contact_number = s.Field("_owner_contact_number"), customer_vehicle_regn_no = s.Field("_customer_vehicle_regn_no"), nature_of_problem = s.Field("_nature_of_problem"), closure_remarks = s.Field("_closure_remarks"), estimated_cost = s.Field("_estimated_cost"), estimated_time = s.Field("_estimated_time"), time_stamps_status_1 = s.Field("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_2 = s.Field("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_3 = s.Field("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_4 = s.Field("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, time_stamps_status_5 = s.Field("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, escalation_level_van_not_move_1 = s.Field("_escalation_level_van_not_move_1"), escalation_level_van_not_move_2 = s.Field("_escalation_level_van_not_move_2"), escalation_level_van_not_move_3 = s.Field("_escalation_level_van_not_move_3"), escalation_level_van_not_move_4 = s.Field("_escalation_level_van_not_move_4"), escalation_level_van_not_move_5 = s.Field("_escalation_level_van_not_move_5"), escalation_level_van_not_move_6 = s.Field("_escalation_level_van_not_move_6"), escalation_level_van_not_move_7 = s.Field("_escalation_level_van_not_move_7"), escalation_level_van_not_move_8 = s.Field("_escalation_level_van_not_move_8"), escalation_level_van_not_move_9 = s.Field("_escalation_level_van_not_move_9"), escalation_level_van_not_move_10 = s.Field("_escalation_level_van_not_move_10"), escalation_level_ticket_closer_1 = s.Field("_escalation_level_ticket_closer_1"), escalation_level_ticket_closer_2 = s.Field("_escalation_level_ticket_closer_2"), escalation_level_ticket_closer_3 = s.Field("_escalation_level_ticket_closer_3"), escalation_level_ticket_closer_4 = s.Field("_escalation_level_ticket_closer_4"), escalation_level_ticket_closer_5 = s.Field("_escalation_level_ticket_closer_5"), escalation_level_ticket_closer_6 = s.Field("_escalation_level_ticket_closer_6"), escalation_level_ticket_closer_7 = s.Field("_escalation_level_ticket_closer_7"), escalation_level_ticket_closer_8 = s.Field("_escalation_level_ticket_closer_8"), escalation_level_ticket_closer_9 = s.Field("_escalation_level_ticket_closer_9"), escalation_level_ticket_closer_10 = s.Field("_escalation_level_ticket_closer_10"), call_closure_status = s.Field("_call_closure_status"), feedback_taken = s.Field("_feedback_taken"), feedback_parameter_wise_score = s.Field("_feedback_parameter_wise_score"), feedback_ease_of_getting_call = s.Field("_feedback_ease_of_getting_call"), feedback_response_of_call_center = s.Field("_feedback_response_of_call_center"), feedback_timely_updation_by_dealer = s.Field("_feedback_timely_updation_by_dealer"), feedback_total_repair_time = s.Field("_feedback_total_repair_time"), feedback_eos_charges = s.Field("_feedback_eos_charges"), feedback_over_all_experience = s.Field("_feedback_over_all_experience"), other_remarks = s.Field("_other_remarks"), feedback_agent = s.Field("_feedback_agent"), how_did_you_come_to_know_of_eos = s.Field("_how_did_you_come_to_know_of_eos"), total_inbound_calls = s.Field("_total_inbound_calls"), total_outbound_calls = s.Field("_total_outbound_calls"), vehicle_name = s.Field("_customer_vehicle_name"), organization = s.Field("organization_alias"), call_status = s.Field("_call_status"), complaints = s.Field("_complaints"), suggestion = s.Field("_suggestion"), feedback_count = s.Field("_feedback_count").ToString(), ticketid_alias = s.Field("_ticket_id_alias"), wm_name = s.Field("_wm_name"), DealerTicketOtherRemark = s.Field("_other_remarks_for_dealer"), KmCovered = s.Field("_km_covered"), estimated_distance = s.Field("_estimated_distance"), van_covered_distance = s.Field("_van_covered_distance"), trip_start_time = Convert.ToDateTime(s.Field("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), trip_end_time = Convert.ToDateTime(s.Field("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), _call_closed_within_24_hours = s.Field("_call_closed_within_24_hours"), _eicher_promise = s.Field("_eicher_promise"), opportunity_loss_remark = s.Field("_opportunity_loss_remark"), opportunity_loss = s.Field("_opportunity_loss"), remark_ticket_not_closed_24_hours = s.Field("_remark_ticket_not_closed_24_hours"), reopen_count = s.Field("_reopen_count"), remark_ticket_not_closed_24_hours_remarks = s.Field("_remark_ticket_not_closed_24_hours_remarks"), opportunity_lost_remarks = s.Field("_opportunity_lost_remarks"), ChassisNo = s.Field("_vehicle_chassis_number"), OdometerReading = s.Field("_odometer_reading"), //added for consolidate report last_Updated_Time = s.Field("_last_modified_time") != null ? Convert.ToDateTime(s.Field("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, //added for feedback on 5-05-2020 are_you_satisfied = s.Field("_are_you_satisfied") == true ? "Yes" : s.Field("_are_you_satisfied") != null && s.Field("_are_you_satisfied") == false ? "No" : null, not_satisfied_option = s.Field("_not_satisfied_selected_option"), not_satisfied_reason = s.Field("_not_satisfied_reason"), response_time_reassignment = s.Field("_response_time_reassignment"), //added on 14-12-2020 vehicle_warranty = s.Field("_vehicle_warranty"), vehicle_amc = s.Field("_vehicle_amc"), vehicle_emission_norms = s.Field("_vehicle_emission_norms"), vehicle_sales_date = s.Field("_vehicle_sales_date"), van_reached_punch_time = s.Field("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020 location_change_time = s.Field("_location_change_time") != null ? Convert.ToDateTime(s.Field("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null, is_location_change = s.Field("_is_location_change"), dealer_change_reason = s.Field("_dealer_change_reason"), dealer_change_reason_other_remark = s.Field("_dealer_change_reason_other_remark"), vehicle_status = s.Field("_vehicle_status"), //------ added on 25-11-2020 start-------------- ticket_closed_reason = s.Field("_ticket_closed_reason"), fuel_type = s.Field("_product_variant"), breakdown_latitude = s.Field("_brk_lat"), breakdown_longitude = s.Field("_brk_lng") //---------- added on 25-11-2020 end -------------------- }).ToList(); objList.Where(x => x.trip_start_time == "01 Jan 0001 05:30:00" || x.trip_start_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_start_time = "-"; }); objList.Where(x => x.trip_end_time == "01 Jan 0001 05:30:00" || x.trip_end_time == "01 Jan 0001 00:00:00").ToList().ForEach(x => { x.trip_end_time = "-"; }); // objModel.con = objList; objModel.Status = "1"; } else { objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString(); objModel.Status = "0"; } } catch (Exception Ex) { objLog.ErrorLogFile("ConsolidatedDataReport", Ex.Message, path, errorlogtf); objModel.Message = Ex.Message; objModel.Status = "0"; } return objList; } //Changes made by mayuri on 29-07-2025 public string sendEPSNewTicketmail(string ticketId) { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details"], nSqlParam); EPSEmailSendModel objModel = new EPSEmailSendModel(); string emailids = ""; if (ds.Tables[0].Rows.Count > 0) { objModel.TicketId = ds.Tables[0].Rows[0]["ticketId"].ToString(); objModel.Creation_time = ds.Tables[0].Rows[0]["creation_time"].ToString(); objModel.DealerCode = ds.Tables[0].Rows[0]["dealerCode"].ToString(); objModel.Description = ds.Tables[0].Rows[0]["nature_of_prblm"].ToString(); objModel.ContactNo = ds.Tables[0].Rows[0]["Contact"].ToString(); objModel.EngineNumber = ds.Tables[0].Rows[0]["engine_number"].ToString(); objModel.Product_type = ds.Tables[0].Rows[0]["product_type"].ToString(); emailids = ds.Tables[0].Rows[0]["EmailId"].ToString(); } else { return "false"; } if (System.Configuration.ConfigurationManager.AppSettings["IsEPSLeadDetailmailSend"] != "true") { string[] emailto = emailids.Split(','); string body = ""; //EPS Ticket //Ticket Created At //Ticket Region/Dealer //Nature of Problem //Cx Contact Number //Engine Number //Product Type if (objModel.Product_type.ToLower() == "harvester") { body = @"

Dear Team,

Greetings!

This is to inform you that a new ticket has been created with the following details:

EPS Ticket Ticket Created At Dealer Name Nature of Problem Cx Contact Number Engine Number Product Type
[Insert ticket id] [Insert Creation time] [Dealer Code] [NATURE_OF_PROBLEM] [CX_CONTACT] [ENGINE_NO] [PRODUCT_TYPE]

Kindly take this forward on priority and initiate the necessary actions to resolve the issue promptly. Your swift attention to this matter is appreciated.

Please keep the relevant stakeholders informed about the progress.

Regards,
Eicher Power Solutions

Disclaimer: This is a system-generated email. Please do not reply to this mail.

"; // Replace placeholders with actual values body = body.Replace("[Insert ticket id]", objModel.TicketId) .Replace("[Insert Creation time]", objModel.Creation_time) .Replace("[Dealer Code]", objModel.DealerCode) .Replace("[NATURE_OF_PROBLEM]", objModel.Description) .Replace("[CX_CONTACT]", objModel.ContactNo) .Replace("[ENGINE_NO]", objModel.EngineNumber) .Replace("[PRODUCT_TYPE]", objModel.Product_type); } else { if (objModel.TicketId.ToLower().Contains("w")) { objModel.Region = "West"; }else if (objModel.TicketId.ToLower().Contains("s")) { objModel.Region = "South"; }else if (objModel.TicketId.ToLower().Contains("e")) { objModel.Region = "East"; } else { objModel.Region = "West"; } body = @"

Dear Team,

Greetings!

This is to inform you that a new ticket has been created with the following details:

EPS Ticket Ticket Created At Ticket Region Nature of Problem Cx Contact Number Engine Number Product Type
[Insert ticket id] [Insert Creation time] [Dealer Code] [NATURE_OF_PROBLEM] [CX_CONTACT] [ENGINE_NO] [PRODUCT_TYPE]

Kindly take this forward on priority and initiate the necessary actions to resolve the issue promptly. Your swift attention to this matter is appreciated.

Please keep the relevant stakeholders informed about the progress.

Regards,
Eicher Power Solutions

Disclaimer: This is a system-generated email. Please do not reply to this mail.

"; // Replace placeholders with actual values body = body.Replace("[Insert ticket id]", objModel.TicketId) .Replace("[Insert Creation time]", objModel.Creation_time) .Replace("[Dealer Code]", objModel.Region) .Replace("[NATURE_OF_PROBLEM]", objModel.Description) .Replace("[CX_CONTACT]", objModel.ContactNo) .Replace("[ENGINE_NO]", objModel.EngineNumber) .Replace("[PRODUCT_TYPE]", objModel.Product_type); } string mailsub = "New EPS Ticket Created – Ticket #[TicketId]"; mailsub = mailsub.Replace("[TicketId]", objModel.TicketId); SendEmailEPSSales(emailto, mailsub, body); } return "true"; } public string sendEPSClosureTicketmail(string ticketId) { try { DataSet ds = new DataSet(); NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; nSqlParam[0] = new NpgsqlParameter("inticket_id", ticketId); ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_EPS_Email_details_closed"], nSqlParam); EPSEmailSendModel objModel = new EPSEmailSendModel(); string emailids = ""; if (ds.Tables[0].Rows.Count > 0) { objModel.TicketId = ds.Tables[0].Rows[0]["ticketId"].ToString(); objModel.Creation_time = ds.Tables[0].Rows[0]["creation_time"].ToString(); objModel.DealerCode = ds.Tables[0].Rows[0]["dealerCode"].ToString(); objModel.Description = ds.Tables[0].Rows[0]["nature_of_prblm"].ToString(); objModel.ContactNo = ds.Tables[0].Rows[0]["Contact"].ToString(); objModel.EngineNumber = ds.Tables[0].Rows[0]["engine_number"].ToString(); objModel.Product_type = ds.Tables[0].Rows[0]["product_type"].ToString(); emailids = ds.Tables[0].Rows[0]["EmailId"].ToString(); } else { return "false"; } if (System.Configuration.ConfigurationManager.AppSettings["IsEPSLeadDetailmailSend"] != "true") { string[] emailto = emailids.Split(','); string body = ""; if (objModel.Product_type.ToLower() == "harvester") { body = @"

Dear Team,

Greetings!

This is to confirm that the following ticket has been successfully resolved and closed:

EPS Ticket Ticket Created At Dealer Name Nature of Problem Cx Contact Number Engine Number Product Type
[Insert ticket id] [Insert Creation time] [Dealer Code] [NATURE_OF_PROBLEM] [CX_CONTACT] [ENGINE_NO] [PRODUCT_TYPE]

We appreciate the timely support and coordination extended to resolve this matter.

Regards,
Eicher Power Solutions

Disclaimer: This is a system-generated email. Please do not reply to this mail.

"; // Replace placeholders with actual values body = body.Replace("[Insert ticket id]", objModel.TicketId) .Replace("[Insert Creation time]", objModel.Creation_time) .Replace("[Dealer Code]", objModel.DealerCode) .Replace("[NATURE_OF_PROBLEM]", objModel.Description) .Replace("[CX_CONTACT]", objModel.ContactNo) .Replace("[ENGINE_NO]", objModel.EngineNumber) .Replace("[PRODUCT_TYPE]", objModel.Product_type); } else { if (objModel.TicketId.ToLower().Contains("w")) { objModel.Region = "West"; } else if (objModel.TicketId.ToLower().Contains("s")) { objModel.Region = "South"; } else if (objModel.TicketId.ToLower().Contains("e")) { objModel.Region = "East"; } else { objModel.Region = "West"; } body = @"

Dear Team,

Greetings!

This is to confirm that the following ticket has been successfully resolved and closed:

EPS Ticket Ticket Created At Ticket Region Nature of Problem Cx Contact Number Engine Number Product Type
[Insert ticket id] [Insert Creation time] [Dealer Code] [NATURE_OF_PROBLEM] [CX_CONTACT] [ENGINE_NO] [PRODUCT_TYPE]

We appreciate the timely support and coordination extended to resolve this matter.

Regards,
Eicher Power Solutions

Disclaimer: This is a system-generated email. Please do not reply to this mail.

"; // Replace placeholders with actual values body = body.Replace("[Insert ticket id]", objModel.TicketId) .Replace("[Insert Creation time]", objModel.Creation_time) .Replace("[Dealer Code]", objModel.Region) .Replace("[NATURE_OF_PROBLEM]", objModel.Description) .Replace("[CX_CONTACT]", objModel.ContactNo) .Replace("[ENGINE_NO]", objModel.EngineNumber) .Replace("[PRODUCT_TYPE]", objModel.Product_type); } string mailsub = "EPS Ticket Closure Confirmation – Ticket #[TicketId]"; mailsub = mailsub.Replace("[TicketId]", objModel.TicketId); SendEmailEPSSales(emailto, mailsub, body); } } catch (Exception Ex) { objLog.ErrorLogFile("eps Mail", Ex.Message, path, errorlogtf); } return "true"; } #endregion #endregion } }