EOS-WebAPI/Models/Ticket/TicketRepository.cs
Nidhi Bhargava d0ac8a7790 Code Commit
2025-09-04 17:30:22 +05:30

19448 lines
1.2 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
/// <summary>
/// This class contain method for ticket manipulation
/// </summary>
public class TicketRepository
{
#region Global Variables
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
PushData UdanPushData = new PushData();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr;
/// <summary>
/// making Customer Repository object available to this class
/// </summary>
CustomerVehicleModel objCustomerVehicleModel;
/// <summary>
/// making Authentication Repository object available to this class
/// </summary>
AuthenticationRepository objAuthorization;
#endregion
#region Contructors
/// <summary>
/// Default constructor intialize connection string of tracking database
/// </summary>
public TicketRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
/// <summary>
///CMS customer login
/// </summary>
/// <param name="ticketAlias"></param>
/// <returns></returns>
public List<CustomerOpenTicketFullDetailTicketWise> GetCustomerOpenadnCloseTicketDetail(string ticketAlias)
{
List<CustomerOpenTicketFullDetailTicketWise> objCustDetail = new List<CustomerOpenTicketFullDetailTicketWise>();
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<string>("assigned_to"),
BreakdownLocation = s.Field<string>("breakdown_location"),
ChassisNo = s.Field<string>("chassis_no"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
CustomerCustomerName = s.Field<string>("_customer_name"),
DealerCode = s.Field<string>("dealer_id"),
DealerContactNumber1 = s.Field<string>("dealer_contact_number1"),
DealerOrServiceEnggContactNumber = s.Field<string>("contact_number"),
Dealerdealer_name = s.Field<string>("dealer_dealer_name"),
KmCovered = Convert.ToString(s.Field<double>("km_covered")),
ModelNumber = s.Field<string>("_model_number"),
OpenCloseStatus = ticketType,
ProductVarient = s.Field<string>("vehicle_tagging"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
TripStart = !string.IsNullOrEmpty(s.Field<DateTime?>("_trip_start").ToString()) ? Convert.ToDateTime(s.Field<DateTime?>("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : "-",
TripEnd = !string.IsNullOrEmpty(s.Field<DateTime?>("_trip_end").ToString()) ? Convert.ToDateTime(s.Field<DateTime?>("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : "-",
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
}).ToList();
}
}
}
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetCustomerOpenadnCloseTicketDetail", Ex.Message, path, errorlogtf);
}
return objCustDetail;
}
/// <summary>
/// To get customer details
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer details</returns>
public List<CustomerVehicleModel> GetCustomerDetails(CustomerVehicleModel model)
{
List<CustomerVehicleModel> objList = new List<CustomerVehicleModel>();
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<Boolean?>("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field<string>("_customer_id"),
CustomerName = s.Field<string>("_customer_customer_name"),
CustomerAlias = s.Field<string>("_customer_alias"),
CustomerMobile1 = s.Field<string>("_customer_mobile_number_1"),
CustomerMobile2 = s.Field<string>("_customer_mobile_number_2"),
CustomerMobile3 = s.Field<string>("_customer_mobile_number_3"),
CustomerAddress = s.Field<string>("_customer_address"),
CustomerEmailId = s.Field<string>("_customer_email_id"),
CustomerCity = s.Field<string>("_customer_city"),
CustomerState = s.Field<string>("_customer_state"),
CustomerVehicleCustomerId = s.Field<string>("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field<string>("_customer_vehicle_vehicle_id"),
VehicleId = s.Field<string>("_vehicle_id"),
VehicleRegistrationNumber = s.Field<string>("_vehicle_registration_number"),
VehicleNumberPlate = s.Field<string>("vehicle_number_plate"),
VehicleModelNumber = s.Field<string>("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field<string>("_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<Boolean?>("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field<string>("_customer_id"),
CustomerName = s.Field<string>("_customer_customer_name"),
CustomerAlias = s.Field<string>("_customer_customer_name"),
CustomerMobile1 = s.Field<string>("_customer_mobile_number_1"),
CustomerMobile2 = s.Field<string>("_customer_mobile_number_1"),
CustomerMobile3 = s.Field<string>("_customer_mobile_number_1"),
CustomerAddress = s.Field<string>("_customer_address"),
//CustomerEmailId = s.Field<string>("_customer_email_id"),
CustomerCity = s.Field<string>("_customer_city"),
CustomerState = s.Field<string>("_customer_state"),
CustomerVehicleCustomerId = s.Field<string>("_customer_vehicle_customer_id"),
//CustomerVehicleVehicleId = s.Field<string>("_customer_vehicle_vehicle_id"),
//VehicleId = s.Field<string>("_vehicle_id"),
VehicleRegistrationNumber = s.Field<string>("_vehicle_registration_number"),
VehicleNumberPlate = s.Field<string>("vehicle_number_plate"),
VehicleModelNumber = s.Field<string>("_customer_vehicle_model_name"),
Status = 1,
VehicleType = s.Field<string>("_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<Boolean?>("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field<string>("_customer_id"),
CustomerName = s.Field<string>("_customer_customer_name"),
CustomerAlias = s.Field<string>("_customer_alias"),
CustomerMobile1 = s.Field<string>("_customer_mobile_number_1"),
CustomerMobile2 = s.Field<string>("_customer_mobile_number_2"),
CustomerMobile3 = s.Field<string>("_customer_mobile_number_3"),
CustomerAddress = s.Field<string>("_customer_address"),
CustomerEmailId = s.Field<string>("_customer_email_id"),
CustomerCity = s.Field<string>("_customer_city"),
CustomerState = s.Field<string>("_customer_state"),
CustomerVehicleCustomerId = s.Field<string>("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field<string>("_customer_vehicle_vehicle_id"),
VehicleId = s.Field<string>("_vehicle_id"),
VehicleRegistrationNumber = s.Field<string>("_vehicle_registration_number"),
VehicleNumberPlate = s.Field<string>("vehicle_number_plate"),
VehicleModelNumber = s.Field<string>("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field<string>("_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<Boolean?>("_customer_vehicle_is_owner"),
TicketNo = model.TicketNo,
CustomerId = s.Field<string>("_customer_id"),
CustomerName = s.Field<string>("_customer_customer_name"),
CustomerAlias = s.Field<string>("_customer_alias"),
CustomerMobile1 = s.Field<string>("_customer_mobile_number_1"),
CustomerMobile2 = s.Field<string>("_customer_mobile_number_2"),
CustomerMobile3 = s.Field<string>("_customer_mobile_number_3"),
CustomerAddress = s.Field<string>("_customer_address"),
CustomerEmailId = s.Field<string>("_customer_email_id"),
CustomerCity = s.Field<string>("_customer_city"),
CustomerState = s.Field<string>("_customer_state"),
CustomerVehicleCustomerId = s.Field<string>("_customer_vehicle_customer_id"),
CustomerVehicleVehicleId = s.Field<string>("_customer_vehicle_vehicle_id"),
VehicleId = s.Field<string>("_vehicle_id"),
VehicleRegistrationNumber = s.Field<string>("_vehicle_registration_number"),
VehicleNumberPlate = s.Field<string>("vehicle_number_plate"),
VehicleModelNumber = s.Field<string>("_vehicle_model_number"),
Status = 1,
VehicleType = s.Field<string>("_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;
}
}
/// <summary>
/// To get customer open ticket history
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer open ticket history</returns>
public List<TicketOpenModel> GetCustomerOpenTicketHistory(CustomerVehicleModel model)
{
List<TicketOpenModel> objTicketModel = new List<TicketOpenModel>();
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<string>("assigned_to"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLatitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
BreackDownLatitude = s.Field<string>("breakdown_lattitude"),
BreackDownLongitude = s.Field<string>("breakdown_longitude"),
BreakDownLocation = s.Field<string>("breakdown_location"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
CutomerScore = s.Field<string>("customer_score"),
Description = s.Field<string>("description"),
EstimatedTimeForJobComplition = s.Field<int?>("estimated_time_for_job_completion"),
EstimatedTimeForJobComplitionSubmitTime = Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Id = s.Field<string>("id"),
IsDeclined = s.Field<Boolean?>("isdeclined"),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Priority = s.Field<int?>("priority"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("total_ticket_lifecycle_time_sla"),
VehicleRegistrationNo = s.Field<string>("vehicle_registration_number"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<string>("estimated_time_for_job_completion_submit_time"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
ActivityTicketsOpenCreatedBy = s.Field<string>("activity_tickets_open_created_by"),
ActivityTicketsOpenCreationTime = s.Field<string>("activity_tickets_open_creation_time"),
Remarks = s.Field<string>("remarks"),
TicketActivityStatus = s.Field<string>("ticket_activity_status"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
TicketStatusSequenceOrder = s.Field<string>("ticket_status_sequence_order"),
TicketStatusStatusName = s.Field<string>("ticket_status_status_name"),
UserId = s.Field<string>("user_id"),
AuthEngineId = s.Field<string>("auth_engine_id"),
UserName = s.Field<string>("user_name"),
Designation = s.Field<string>("designation"),
ObjectId = s.Field<string>("object_id"),
OrganizationId = s.Field<int?>("organization_id"),
City = s.Field<string>("city"),
State = s.Field<string>("state"),
Region = s.Field<string>("region"),
Language = s.Field<string>("language"),
TimezoneId = s.Field<Int64?>("timezone_id"),
DisplayName = s.Field<string>("display_name"),
OffsetInMinutes = s.Field<string>("offset_in_minutes"),
DisplayId = s.Field<string>("display_id"),
UserOrganizationName = s.Field<string>("user_organization_name"),
UserOrganizationAlias = s.Field<string>("user_organization_alias"),
UserOrganizationCity = s.Field<string>("user_organization_city"),
UserOrganizationState = s.Field<string>("user_organization_state"),
UserAsorganizationCountry = s.Field<string>("user_asorganization_country"),
UserOrganizationDescription = s.Field<string>("user_organization_description"),
UserOrgPath = s.Field<string>("user_org_path"),
UserOrgDepth = s.Field<string>("user_org_depth"),
UserOrgColor = s.Field<string>("user_org_color"),
UserOrganizationRegion = s.Field<string>("user_organization_region"),
DealerId = s.Field<string>("_dealer_id"),
DealerOrganizationId = s.Field<int?>("_dealer_organization_id"),
DealerDealerName = s.Field<string>("_dealer_dealer_name"),
DealerCity = s.Field<string>("_dealer_city"),
DealerState = s.Field<string>("_dealer_state"),
DealerDealerDefaultLattitude = s.Field<string>("_dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field<string>("_dealer_dealer_default_longitude"),
VanId = s.Field<string>("_van_id"),
VanAlias = s.Field<string>("_van_alias"),
VanVanDefaultLattitude = s.Field<string>("_van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field<string>("_van_van_default_longitude"),
VanCity = s.Field<string>("_van_city"),
VanState = s.Field<string>("_van_state"),
VanVanModel = s.Field<string>("_van_van_model"),
VanRegistrationNumber = s.Field<string>("_van_registration_number"),
VanVanRegisteredAs = s.Field<string>("_van_van_registered_as"),
DealerVanOrganizationName = s.Field<string>("dealer_van_organization_name"),
DealerVanOrganizationOrganizationAlias = s.Field<string>("dealer_van_organization_organization_alias"),
DealerVanOrganizationOrganizationCity = s.Field<string>("dealer_van_organization_organization_city"),
DealerVanOrganizationOrganizationState = s.Field<string>("dealer_van_organization_organization_state"),
DealerVanOrganizationOrganizationCountry = s.Field<string>("dealer_van_organization_organization_country"),
DealerVanOrganizationOrganizationDescription = s.Field<string>("dealer_van_organization_organization_description"),
DealerVanOrganizationOrganizationPath = s.Field<string>("dealer_van_organization_organization_path"),
DealerVanOrganizationOrganizationDepth = s.Field<string>("dealer_van_organization_organization_depth"),
DealerVanOrganizationOrganizationColor = s.Field<string>("dealer_van_organization_organization_color"),
DealerVanOrganizationOrganizationRegion = s.Field<string>("dealer_van_organization_organization_region"),
ServiceEngineerId = s.Field<string>("_service_engineer_id"),
ServiceEngineerName = s.Field<string>("service_engineer_name"),
ServiceEngineerAlias = s.Field<string>("_service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field<string>("_service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field<string>("_service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field<string>("_service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field<Boolean?>("_service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field<Int64?>("_service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field<string>("_service_engineer_pin_password")
}).ToList();
}
}
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get customer close ticket history
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer close ticket history</returns>
public List<TicketCloseModel> GetCustomerCloseTicketHistory(CustomerVehicleModel model)
{
List<TicketCloseModel> objTicketModel = new List<TicketCloseModel>();
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<string>("assigned_to"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLatitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
BreackDownLatitude = s.Field<string>("breakdown_lattitude"),
BreackDownLongitude = s.Field<string>("breakdown_longitude"),
BreakDownLocation = s.Field<string>("breakdown_location"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
CutomerScore = s.Field<string>("customer_score"),
Description = s.Field<string>("description"),
EstimatedTimeForJobComplition = s.Field<int?>("estimated_time_for_job_completion"),
EstimatedTimeForJobComplitionSubmitTime = Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Id = s.Field<string>("id"),
IsDeclined = s.Field<Boolean?>("isdeclined"),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Priority = s.Field<int?>("priority"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("total_ticket_lifecycle_time_sla"),
VehicleRegistrationNo = s.Field<string>("vehicle_registration_number"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<string>("estimated_time_for_job_completion_submit_time"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
ActivityTicketsOpenCreatedBy = s.Field<string>("activity_tickets_open_created_by"),
ActivityTicketsOpenCreationTime = s.Field<string>("activity_tickets_open_creation_time"),
Remarks = s.Field<string>("remarks"),
TicketActivityStatus = s.Field<string>("ticket_activity_status"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
TicketStatusSequenceOrder = s.Field<string>("ticket_status_sequence_order"),
TicketStatusStatusName = s.Field<string>("ticket_status_status_name"),
UserId = s.Field<string>("user_id"),
AuthEngineId = s.Field<string>("auth_engine_id"),
UserName = s.Field<string>("user_name"),
Designation = s.Field<string>("designation"),
ObjectId = s.Field<string>("object_id"),
OrganizationId = s.Field<int?>("organization_id"),
City = s.Field<string>("city"),
State = s.Field<string>("state"),
Region = s.Field<string>("region"),
Language = s.Field<string>("language"),
TimezoneId = s.Field<Int64?>("timezone_id"),
DisplayName = s.Field<string>("display_name"),
OffsetInMinutes = s.Field<string>("offset_in_minutes"),
DisplayId = s.Field<string>("display_id"),
UserOrganizationName = s.Field<string>("user_organization_name"),
UserOrganizationAlias = s.Field<string>("user_organization_alias"),
UserOrganizationCity = s.Field<string>("user_organization_city"),
UserOrganizationState = s.Field<string>("user_organization_state"),
UserAsorganizationCountry = s.Field<string>("user_asorganization_country"),
UserOrganizationDescription = s.Field<string>("user_organization_description"),
UserOrgPath = s.Field<string>("user_org_path"),
UserOrgDepth = s.Field<string>("user_org_depth"),
UserOrgColor = s.Field<string>("user_org_color"),
UserOrganizationRegion = s.Field<string>("user_organization_region"),
DealerId = s.Field<string>("_dealer_id"),
DealerOrganizationId = s.Field<int?>("_dealer_organization_id"),
DealerDealerName = s.Field<string>("_dealer_dealer_name"),
DealerCity = s.Field<string>("_dealer_city"),
DealerState = s.Field<string>("_dealer_state"),
DealerDealerDefaultLattitude = s.Field<string>("_dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field<string>("_dealer_dealer_default_longitude"),
VanId = s.Field<string>("_van_id"),
VanAlias = s.Field<string>("_van_alias"),
VanVanDefaultLattitude = s.Field<string>("_van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field<string>("_van_van_default_longitude"),
VanCity = s.Field<string>("_van_city"),
VanState = s.Field<string>("_van_state"),
VanVanModel = s.Field<string>("_van_van_model"),
VanRegistrationNumber = s.Field<string>("_van_registration_number"),
VanVanRegisteredAs = s.Field<string>("_van_van_registered_as"),
DealerVanOrganizationName = s.Field<string>("dealer_van_organization_name"),
DealerVanOrganizationOrganizationAlias = s.Field<string>("dealer_van_organization_organization_alias"),
DealerVanOrganizationOrganizationCity = s.Field<string>("dealer_van_organization_organization_city"),
DealerVanOrganizationOrganizationState = s.Field<string>("dealer_van_organization_organization_state"),
DealerVanOrganizationOrganizationCountry = s.Field<string>("dealer_van_organization_organization_country"),
DealerVanOrganizationOrganizationDescription = s.Field<string>("dealer_van_organization_organization_description"),
DealerVanOrganizationOrganizationPath = s.Field<string>("dealer_van_organization_organization_path"),
DealerVanOrganizationOrganizationDepth = s.Field<string>("dealer_van_organization_organization_depth"),
DealerVanOrganizationOrganizationColor = s.Field<string>("dealer_van_organization_organization_color"),
DealerVanOrganizationOrganizationRegion = s.Field<string>("dealer_van_organization_organization_region"),
ServiceEngineerId = s.Field<string>("_service_engineer_id"),
ServiceEngineerName = s.Field<string>("service_engineer_name"),
ServiceEngineerAlias = s.Field<string>("_service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field<string>("_service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field<string>("_service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field<string>("_service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field<Boolean?>("_service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field<Int64?>("_service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field<string>("_service_engineer_pin_password")
}).ToList();
}
}
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetCustomerCloseTicketHistory", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get ticket details base on Divice alias.
/// </summary>
/// <param name="model">device info and ticket info</param>
/// <returns>status and ticket details base on Divice alias</returns>
public List<TicketOpenModel> GetTicketDetailOnDeviceAlias(TicketOpenModel model)
{
List<TicketOpenModel> objTicketModel = new List<TicketOpenModel>();
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<string>("_assigned_to"),
AssignedToUserLatitude = s.Field<string>("_assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("_assigned_to_user_longitude"),
BreackDownLatitude = s.Field<string>("_breakdown_lattitude"),
BreackDownLongitude = s.Field<string>("_breakdown_longitude"),
BreakDownLocation = s.Field<string>("_breakdown_location"),
CreatedBy = s.Field<string>("_tickets_open_created_by"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_tickets_open_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
CutomerScore = s.Field<string>("_customer_score"),
Description = s.Field<string>("_description"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimated_time_for_job_completion"),
Id = s.Field<string>("_id"),
IsDeclined = s.Field<Boolean?>("_isdeclined"),
LastModifiedBy = s.Field<string>("_last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Priority = s.Field<int?>("_priority"),
ReportedVia = s.Field<string>("_reported_via"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla"),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
BreakdownLocationLandmark = s.Field<string>("_breakdown_location_landmark"),
RouteId = s.Field<int?>("_route_id"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
VehicleType = s.Field<string>("_vehicle_type"),
RepairCost = s.Field<string>("_repair_cost"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
SlaMissedReason = s.Field<string>("_sla_missed_reason"),
SuggestionComment = s.Field<string>("_suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("_default_col_1"),
DefaultCol2 = s.Field<string>("_default_col_2"),
DefaultCol3 = s.Field<string>("_default_col_3"),
EstimatedDistance = s.Field<string>("_estimated_distance"),
OwnerContact_no = s.Field<string>("_owner_contact_no"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
//--- added on 06-01-2020 start ------------------------
vehicle_warranty = s.Field<string>("_vehicle_warranty") == null ? "" : s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc") == null ? "" : s.Field<string>("_vehicle_amc"),
odometer_reading = s.Field<double>("_odometer_reading"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
ticket_source = s.Field<string>("_ticket_source") == null ? "" : s.Field<string>("_ticket_source"),
customer_id = s.Field<string>("_customer_id") == null ? "" : s.Field<string>("_customer_id"),
customer_type = s.Field<string>("_customer_type") == null ? "" : s.Field<string>("_customer_type"),
owner_name = s.Field<string>("_owner_name") == null ? "" : s.Field<string>("_owner_name"), //modified on 11-01-2020
is_kam = s.Field<Boolean?>("_is_kam"),
NewVehicleType = s.Field<string>("_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;
}
}
/// <summary>
/// To get details of ticket accept or declined and some deatails of customer open ticket
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>deatails of customer open ticket</returns>
public List<CustomerOpenTicketFullDetailsTicketWise> TicketAcceptOrDecliend(TicketOpenModel model)
{
TicketOpenModel objModel = new TicketOpenModel();
CustomerOpenTicketFullDetailsTicketWise objfullticketdetails = new CustomerOpenTicketFullDetailsTicketWise();
List<CustomerOpenTicketFullDetailsTicketWise> objListfullticketdetails = new List<CustomerOpenTicketFullDetailsTicketWise>();
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;
}
}
/// <summary>
/// To get ticket status list.
/// </summary>
/// <returns>ticket status list</returns>
public List<TicketStatus> GetTicketStatusList()
{
List<TicketStatus> model = new List<TicketStatus>();
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<string>("alias"),
Id = s.Field<Int64?>("id"),
SequenceNo = s.Field<int?>("sequence_order"),
StatusName = s.Field<string>("status_name")
}).ToList();
}
}
return model;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetTicketStatusList", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<TicketStatus> GetTicketStatusListbyticketstaus(string prevstatus, string userrole)
{
List<TicketStatus> model = new List<TicketStatus>();
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<string>("_alias"),
Id = s.Field<Int64?>("_id"),
SequenceNo = s.Field<int?>("_sequence_order"),
StatusName = s.Field<string>("_status_name")
}).ToList();
}
}
return model;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetTicketStatusList", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get van and dealer list.
/// </summary>
/// <param name="model">van and dealer info</param>
/// <returns>van and dealer list</returns>
/* public List<VanDealerListStateWise> GetVanDealerListStateWise(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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;
}
}*/
/// <ummary>
/// To get van and dealer list.
/// </summary>
// <param name="model">van and dealer info</param>
/// <returns>van and dealer list</returns>
//// for titan
public List<VanDealerListStateWise> GetVanDealerListStateWise(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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<VanDealerListStateWise> GetVanDealerListStateWise(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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;
}
}
*/
/// <summary>
/// To get van and dealer list.
/// </summary>
/// <param name="model">van and dealer info</param>
/// <returns>van and dealer list</returns>
public List<VanDealerListStateWise> GetVanDealerListStateWiseForKam(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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;
}
}
//// <summary>
/// This method is used to Insert Open Ticket
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>response SenderId which is generated by GCM and status 1 or 0</returns>
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<EscalationLevel>();
// 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<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
// 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<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
// 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<string> seen = new HashSet<string>();
// 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<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
// 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}&amp;registrationnumber={1}&amp;estimated_reach_time={2}&amp;driver_contact={3}&amp;owner_contact={4}&amp;"/>
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);
}
}
/// <summary>
/// This method is used to Insert Open Ticket
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>response SenderId which is generated by GCM and status 1 or 0</returns>
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;
}
}
/// <summary>
/// This method is used to Insert Open Ticket
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>response SenderId which is generated by GCM and status 1 or 0</returns>
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;
}
}
/// <summary>
/// To update open ticket for Web
/// </summary>
/// <param name="model">open ticket detail for updation</param>
/// <returns>response SenderId which is generated by GCM and status 1 or 0 </returns>
/// <summary>
/// To update open ticket for Web
/// </summary>
/// <param name="model">open ticket detail for updation</param>
/// <returns>response SenderId which is generated by GCM and status 1 or 0 </returns>
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;
}
}
/// <summary>
/// To update open ticket for android
/// </summary>
/// <param name="model">contain open ticket detail for updation</param>
/// <returns>contain response status 1 or 0</returns>
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<CustomerModel> objCustomerList = new List<CustomerModel>();
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;
}
/// <summary>
/// To get customer open ticket full details ticket wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>customer open ticket full details ticket wise</returns>
public List<CustomerOpenTicketFullDetailsTicketWise> GetCustomerOpenTicketFullDetailTicketWise(CustomerOpenTicketFullDetailsTicketWise model)
{
List<CustomerOpenTicketFullDetailsTicketWise> objListTicketModel = new List<CustomerOpenTicketFullDetailsTicketWise>();
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<TrackingModel> objList = new List<TrackingModel>();
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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
UsersId = s.Field<long?>("users_id"),
UsersAuthEngineId = s.Field<string>("users_auth_engine_id"),
UsersUserName = s.Field<string>("users_user_name"),
UsersDesignation = s.Field<string>("users_designation"),
UsersObjectId = s.Field<string>("users_object_id"),
UsersCity = s.Field<string>("users_city"),
UsersState = s.Field<string>("users_state"),
UsersRegion = s.Field<string>("users_region"),
UsersLanguage = s.Field<string>("users_language"),
TimezoneInfoDisplayName = s.Field<string>("timezone_info_display_name"),
UserOrganizationName = s.Field<string>("user_organization_name"),
UserOrganizationAlias = s.Field<string>("user_organization_alias"),
UserOrganizationCity = s.Field<string>("user_organization_city"),
UserOrganizationState = s.Field<string>("user_organization_state"),
UserOrganizationCountry = s.Field<string>("user_organization_country"),
UserOrganizationRegion = s.Field<string>("user_organization_region"),
DealerOrVanId = s.Field<string>("dealer_or_van_id"),
DealerOrVanName = s.Field<string>("dealer_or_van_name"),
DealerOrVanDefaultLongitude = s.Field<string>("dealer_or_van_default_lattitude"),
DealerOrVanDefaultLattitude = s.Field<string>("dealer_or_van_default_longitude"),
DealerOrVanCity = s.Field<string>("dealer_or_van_city"),
DealerOrVanState = s.Field<string>("dealer_or_van_state"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
TicketClosedReason = s.Field<string>("ticket_closed_reason"), //added on 25-11-2020
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
DealerOrServiceEnggContactNumber = s.Field<string>("contact_number"),
EstimatedDistance = s.Field<string>("estimated_distance"),
Status = "1",
OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field<string>("opportunity_loss") : null,
Dealerdealer_name = s.Field<string>("dealer_dealer_name"),
DealerContactNumber1 = s.Field<string>("dealer_contact_number1"),
DealerCity = s.Field<string>("dealer_city"),
DealerState = s.Field<string>("dealer_state"),
ChassisNo = s.Field<string>("chassis_no"),
KmCovered = s.Field<double?>("km_covered"),
ActualDistance = Math.Ceiling(totalDist).ToString(),
WM_Name = s.Field<string>("wm_name"),
Dealer_Id = s.Field<string>("dealer_id"),
Vehicle_tagging = s.Field<string>("vehicle_tagging"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
Device_Alias = s.Field<string>("_device_alias"),
TripStart = s.Field<DateTime?>("_trip_start") != null ? Convert.ToDateTime(s.Field<DateTime?>("_trip_start")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
TripEnd = s.Field<DateTime?>("_trip_end") != null ? Convert.ToDateTime(s.Field<DateTime?>("_trip_end")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VanKmCovered = s.Field<double?>("_van_covered_distance"),
RemarkTicketNotClosed24Hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
ChassisNumber = s.Field<string>("_chassis_number"),
OdoMeter = s.Field<double>("_odometer_reading"),
VehicleType = s.Field<string>("_vehicle_type"),
PreviousOdometerReading = s.Field<double>("_previous_odometer_reading"),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
FeedbackCallStatus = s.Field<string>("_call_status"),
//added on 26/11/2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
customer_type = s.Field<string>("_customer_type"), //added on 14-01-2021
//ended on 26/11/2020
van_reached_punched_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm")) //added on 23-12-2020
//current_lat = s.Field<string>("_current_lat"),
//current_long = s.Field<string>("_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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
UsersId = s.Field<long?>("users_id"),
UsersAuthEngineId = s.Field<string>("users_auth_engine_id"),
UsersUserName = s.Field<string>("users_user_name"),
UsersDesignation = s.Field<string>("users_designation"),
UsersObjectId = s.Field<string>("users_object_id"),
UsersCity = s.Field<string>("users_city"),
UsersState = s.Field<string>("users_state"),
UsersRegion = s.Field<string>("users_region"),
UsersLanguage = s.Field<string>("users_language"),
TimezoneInfoDisplayName = s.Field<string>("timezone_info_display_name"),
UserOrganizationName = s.Field<string>("user_organization_name"),
UserOrganizationAlias = s.Field<string>("user_organization_alias"),
UserOrganizationCity = s.Field<string>("user_organization_city"),
UserOrganizationState = s.Field<string>("user_organization_state"),
UserOrganizationCountry = s.Field<string>("user_organization_country"),
UserOrganizationRegion = s.Field<string>("user_organization_region"),
DealerOrVanId = s.Field<string>("dealer_or_van_id"),
DealerOrVanName = s.Field<string>("dealer_or_van_name"),
DealerOrVanDefaultLongitude = s.Field<string>("dealer_or_van_default_lattitude"),
DealerOrVanDefaultLattitude = s.Field<string>("dealer_or_van_default_longitude"),
DealerOrVanCity = s.Field<string>("dealer_or_van_city"),
DealerOrVanState = s.Field<string>("dealer_or_van_state"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
DealerOrServiceEnggContactNumber = s.Field<string>("contact_number"),
EstimatedDistance = s.Field<string>("estimated_distance"),
Status = "1",
OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field<string>("opportunity_loss") : null,
Dealerdealer_name = s.Field<string>("dealer_dealer_name"),
DealerContactNumber1 = s.Field<string>("dealer_contact_number1"),
DealerCity = s.Field<string>("dealer_city"),
DealerState = s.Field<string>("dealer_state"),
ChassisNo = s.Field<string>("chassis_no"),
KmCovered = s.Field<double?>("km_covered"),
ActualDistance = Math.Ceiling(totalDist).ToString(),
WM_Name = s.Field<string>("wm_name"),
Dealer_Id = s.Field<string>("dealer_id"),
Vehicle_tagging = s.Field<string>("vehicle_tagging"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
Device_Alias = s.Field<string>("_device_alias"),
TripStart = s.Field<DateTime?>("_trip_start") != null ? Convert.ToDateTime(s.Field<DateTime?>("_trip_start")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_trip_start")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
TripEnd = s.Field<DateTime?>("_trip_end") != null ? Convert.ToDateTime(s.Field<DateTime?>("_trip_end")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_trip_end")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VanKmCovered = s.Field<double?>("_van_covered_distance"),
RemarkTicketNotClosed24Hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
ChassisNumber = s.Field<string>("_chassis_number"),
OdoMeter = s.Field<double>("_odometer_reading"),
VehicleType = s.Field<string>("_vehicle_type"),
PreviousOdometerReading = s.Field<double>("_previous_odometer_reading"),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
//added on 26/11/2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
customer_type = s.Field<string>("_customer_type"),
//ended on 26/11/2020
van_reached_punched_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : s.Field<DateTime>("_van_reached_punch_time").ToString("yyyy-MM-dd" + "T" + "HH:mm"), //added on 23-12-2020
//FeedbackCallStatus = s.Field<string>("_call_status")
//current_lat = s.Field<string>("_current_lat"),
//current_long = s.Field<string>("_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;
}
}
/// <summary>
/// To get customer open ticket full details ticket wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>customer open ticket full details ticket wise</returns>
public List<CustomerOpenTicketFullDetailsTicketWise> GetCustomerOpenTicketFullDetailTicketWiseShow(CustomerOpenTicketFullDetailsTicketWise model)
{
List<CustomerOpenTicketFullDetailsTicketWise> objListTicketModel = new List<CustomerOpenTicketFullDetailsTicketWise>();
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;
}
}
/// <summary>
/// To get customer open ticket full details ticket wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>customer open ticket full details ticket wise</returns>
public List<CustomerOpenTicketFullDetailsTicketWise> GetKamOpenTicketDetails(CustomerOpenTicketFullDetailsTicketWise model)
{
List<CustomerOpenTicketFullDetailsTicketWise> objListTicketModel = new List<CustomerOpenTicketFullDetailsTicketWise>();
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<string>("_id"),
KamTicketId = s.Field<Int64?>("_kam_id").ToString(),
CallerLanguage = s.Field<string>("_caller_language"),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
Warrenty = s.Field<string>("_warranty"),
TicketId = s.Field<string>("_ticket_id"),
Description = s.Field<string>("_description"),
AssignedTo = s.Field<string>("_assigned_to"),
ReportedVia = s.Field<string>("_reported_via"),
TicketStatus = s.Field<int?>("_ticket_status"),
Priority = s.Field<int?>("_priority"),
CustomerScore = s.Field<string>("_customer_score"),
CreatedBy = s.Field<string>("_created_by"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("_last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("_breakdown_location"),
BreakdownLongitude = s.Field<string>("_breakdown_longitude"),
BreakdownLattitude = s.Field<string>("_breakdown_lattitude"),
AssignedToUserId = s.Field<string>("_assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("_assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("_assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("_isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("_estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("_total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("_estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("_vehicle_registration_number"),
BreakdownLocationLandmark = s.Field<string>("_breakdown_location_landmark"),
BreakdownLocationState = s.Field<string>("_state_name"),
BreakdownLocationCity = s.Field<string>("_city_name"),
RouteId = s.Field<int?>("_route_id"),
CustomerContactNo = s.Field<string>("_customer_contact_no"),
//UsersId = s.Field<long?>("users_id"),
//UsersAuthEngineId = s.Field<string>("users_auth_engine_id"),
//UsersUserName = s.Field<string>("users_user_name"),
//UsersDesignation = s.Field<string>("users_designation"),
//UsersObjectId = s.Field<string>("users_object_id"),
//UsersCity = s.Field<string>("users_city"),
//UsersState = s.Field<string>("users_state"),
//UsersRegion = s.Field<string>("users_region"),
//UsersLanguage = s.Field<string>("users_language"),
//TimezoneInfoDisplayName = s.Field<string>("timezone_info_display_name"),
//UserOrganizationName = s.Field<string>("user_organization_name"),
//UserOrganizationAlias = s.Field<string>("user_organization_alias"),
//UserOrganizationCity = s.Field<string>("user_organization_city"),
//UserOrganizationState = s.Field<string>("user_organization_state"),
//UserOrganizationCountry = s.Field<string>("user_organization_country"),
//UserOrganizationRegion = s.Field<string>("user_organization_region"),
//DealerOrVanId = s.Field<string>("dealer_or_van_id"),
//DealerOrVanName = s.Field<string>("dealer_or_van_name"),
//DealerOrVanDefaultLongitude = s.Field<string>("dealer_or_van_default_lattitude"),
//DealerOrVanDefaultLattitude = s.Field<string>("dealer_or_van_default_longitude"),
//DealerOrVanCity = s.Field<string>("dealer_or_van_city"),
//DealerOrVanState = s.Field<string>("dealer_or_van_state"),
//TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("_repair_cost"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
//SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("_suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("_default_col_1"),
DefaultCol2 = s.Field<string>("_default_col_2"),
DefaultCol3 = s.Field<string>("_default_col_3"),
//DealerOrServiceEnggContactNumber = s.Field<string>("contact_number"),
EstimatedDistance = s.Field<string>("_estimated_distance"),
Status = "1",
OpportunityLossReason = model.OpenCloseStatus == "close" ? s.Field<string>("_opportunity_loss") : null,
//Dealerdealer_name = s.Field<string>("dealer_dealer_name"),
//DealerContactNumber1 = s.Field<string>("dealer_contact_number1"),
//DealerCity = s.Field<string>("dealer_city"),
//DealerState = s.Field<string>("dealer_state"),
//ChassisNo = s.Field<string>("chassis_no"),
KmCovered = s.Field<double?>("_km_covered"),
//ActualDistance = Math.Round(totalDist, 2).ToString(),
//WM_Name = s.Field<string>("wm_name"),
//Dealer_Id = s.Field<string>("dealer_id"),
Vehicle_tagging = s.Field<string>("_vehicle_tagging"),
TicketIdAlias = s.Field<string>("_ticketid_alias"),
//Device_Alias = s.Field<string>("_device_alias")
SlaMissedReason = s.Field<string>("_sla_missed_reason"),
ReasonForMoreThan24Hrs = s.Field<string>("_reason_for_more_then_24hours"),
CallStatus = s.Field<string>("_call_status"),
SuggestionComplaint = s.Field<string>("_suggestion_complaint"),
CustomerCustomerName = s.Field<string>("_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;
}
}
/// <summary>
/// To get customer open ticket details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer open ticket details</returns>
public List<CustomerOpenTicketDetail> GetCustomerOpenTicketDetail(CustomerOpenTicketDetail model)
{
List<CustomerOpenTicketDetail> objListTicketModel = new List<CustomerOpenTicketDetail>();
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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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;
}
}
/// <summary>
/// To get customer open ticket details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer open ticket details</returns>
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;
}
}
/// <summary>
/// To get customer close ticket details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer close ticket details</returns>
public List<CustomerCloseTicketDetail> GetCustomerCloseTicketDetail(CustomerCloseTicketDetail model)
{
List<CustomerCloseTicketDetail> objListTicketModel = new List<CustomerCloseTicketDetail>();
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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TotalTicketCloseHours = Convert.ToDouble(s.Field<string>("within_24hrs_or_not")),
FeedBackAgenName = s.Field<string>("feedback_agent"),
ReasonBeyond24Hrs = s.Field<string>("reason_for_more_then_24hours"),
CallStatus = s.Field<string>("call_status"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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<CustomerCloseTicketDetail> GetCustomerCloseTicketDetailNew(CustomerCloseTicketDetail model)
{
List<CustomerCloseTicketDetail> objListTicketModel = new List<CustomerCloseTicketDetail>();
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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TotalTicketCloseHours = Convert.ToDouble(s.Field<string>("within_24hrs_or_not")),
FeedBackAgenName = s.Field<string>("feedback_agent"),
ReasonBeyond24Hrs = s.Field<string>("reason_for_more_then_24hours"),
CallStatus = s.Field<string>("call_status"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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;
}
}
/// <summary>
/// To get ticket notification.
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and get ticket notification</returns>
public List<TicketNotificationModel> GetTicketNotification(TicketNotificationModel model)
{
TicketNotificationModel objModel = new TicketNotificationModel();
List<TicketNotificationModel> objList = new List<TicketNotificationModel>();
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<string>("id"),
KeyName = s.Field<string>("key_name"),
KeyValue = s.Field<int?>("key_value"),
TicketStatus = s.Field<int?>("_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;
}
}
/// <summary>
/// To get close ticket notification
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and close ticket notification</returns>
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;
}
}
/// <summary>
/// To get notification of open and close ticket with, ticket id wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and notification of open and close ticket with, ticket id wise</returns>
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;
}
}
/// <summary>
/// To get close dealer open ticket notification
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and close dealer open ticket notification</returns>
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;
}
}
/// <summary>
/// To get ticket notification detail ticket id wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and ticket notification detail ticket id wise</returns>
public List<TicketNotificationsWithTicketId> GetTicketNotificationsWithTicketId(TicketNotificationsWithTicketId model)
{
TicketNotificationsWithTicketId objModel = new TicketNotificationsWithTicketId();
List<TicketNotificationsWithTicketId> objList = new List<TicketNotificationsWithTicketId>();
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<string>("ticket_id"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
TicketStatus = s.Field<int?>("ticket_status"),
NotificationTime = s.Field<DateTime?>("_notification_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_notification_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_notification_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DealerDealerName = s.Field<string>("_dealer_dealer_name"),
VanId = s.Field<string>("_van_id"),
VanRegistrationNumber = s.Field<string>("_van_registration_number"),
ServiceEngineerName = s.Field<string>("service_engineer_name"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
NotificationId = s.Field<Int64?>("_notification_id"),
TickeStatusAlias = s.Field<string>("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;
}
}
/// <summary>
/// To get open and close ticket detail user id wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and open and close ticket detail user id wise</returns>
public TicketRequestModel GetOpenCloseTicketDetail(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<TicketOpenModel> objList = new List<TicketOpenModel>();
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<string>("_ticket_id"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
AssignedTo = s.Field<string>("_assignedto"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimatedtimeforjobcompletion"),
Age = Convert.ToDouble(s.Field<Int32?>("_age")),
DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_feedbackagent") : null,
DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_reasonformorethen24hours") : null,
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
gps_status = s.Field<string>("_gps_status"),
current_latitude = s.Field<string>("_current_latitude"),
current_longitude = s.Field<string>("_current_longitude"),
PreClosureTime = Convert.ToDateTime(s.Field<DateTime?>("_pre_closure_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
ChassisNo = s.Field<string>("_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
Remarks = s.Field<string>("_last_remark"),
Description = s.Field<string>("_nature_of_problem"),
BreakDownLocation = s.Field<string>("csm"),
BreackDownLongitude = s.Field<string>("csm_contact_no"),
BreackDownLatitude = s.Field<string>("rsm"),
AssignedToUserLongitude = s.Field<string>("rsm_contact_no"),
AssignedToUserLatitude = s.Field<string>("asm"),
BreakdownLocationLandmark = s.Field<string>("asm_contact_no"),
Designation = s.Field<string>("_Dealer_name_1scode"),
VehicleType = s.Field<string>("_vehicle_status"),
ServiceEngineerPinPassword = s.Field<string>("_vehicle_emission_norms"),
ServiceEngineerAlias = s.Field<string>("_created_by"),
ServiceEngineerApplicationLicenseKey = s.Field<string>("_region"),
VanVanDefaultLattitude = s.Field<string>("_fuel_type"),
VanCity = s.Field<string>("_model_no"),
AuthEngineId = s.Field<string>("_battery_voltage"),
VanLatitudeAtTripStart = s.Field<string>("_def_level"),
VanLatitudeAtVanReached = s.Field<string>("_preclosure_reason"),
VanLongitudeAtTripEnd = s.Field<string>("_fuel_level"),
VanReachedPunchTime = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_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<string>("_ticket_id"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
//added on 25-09-2020
VanLatitudeAtTripStart = s.Field<string>("_van_trip_start_latitude"),
VanLongitudeAtTripStart = s.Field<string>("_van_trip_start_longitude"),
VanLatitudeAtVanReached = s.Field<string>("_van_reached_latitude"),
VanLongitudeAtVanReached = s.Field<string>("_van_reached_longitude"),
VanLatitudeAtTripEnd = s.Field<string>("_van_trip_end_latitude"),
VanLongitudeAtTripEnd = s.Field<string>("_van_trip_end_longitude"),
BreakdownLocationLatitude = s.Field<string>("_breakdown_location_latitude"),
BreakdownLocationLongitude = s.Field<string>("_breakdown_location_longitude"),
//----------------added on 25-11-2020 (start) -------------------------------------
TicketClosedReason = s.Field<string>("_ticket_closed_reason"),
//----------------added on 25-11-2020 (end) -------------------------------------
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
AssignedTo = s.Field<string>("_assignedto"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimatedtimeforjobcompletion"),
Age = Convert.ToDouble(s.Field<string>("_age")),
DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_feedbackagent") : null,
DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_reasonformorethen24hours") : null,
CallStatus = s.Field<string>("_call_status"),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
feedback_call_status = s.Field<string>("_feedback_status"),
total_count = Convert.ToString(s.Field<Int32?>("_feedback_count")),
reopen_count = Convert.ToString(s.Field<Int32?>("_reopen_count")),
Score = s.Field<string>("_score"),
ChassisNo = s.Field<string>("_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added on 03/12/2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
AssignedToUserLatitude = s.Field<string>("_assigned_lat"),
AssignedToUserLongitude = s.Field<string>("_assigned_long"),
BreackDownLongitude = s.Field<string>("_estimated_van_reach_time"),
VanReachedPunchTime = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_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;
}
/// <summary>
/// To get open and close ticket detail user id wise for KAM
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and open and close ticket detail user id wise</returns>
public TicketRequestModel GetOpenCloseTicketDetailForKAM(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<TicketOpenModel> objList = new List<TicketOpenModel>();
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<string>("_ticket_id"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
AssignedTo = s.Field<string>("_assignedto"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimatedtimeforjobcompletion"),
Age = Convert.ToDouble(s.Field<Int32?>("_age")),
DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_feedbackagent") : null,
DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_reasonformorethen24hours") : null,
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
gps_status = s.Field<string>("_gps_status"),
KamId = s.Field<Int32?>("_kam_id").ToString()
}).ToList();
}
else if (model.TicketType.Trim().ToLower() == "close")
{
objList = ds.Tables[0].AsEnumerable().Select(s => new TicketOpenModel
{
Id = s.Field<string>("_ticket_id"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
AssignedTo = s.Field<string>("_assignedto"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimatedtimeforjobcompletion"),
Age = Convert.ToDouble(s.Field<string>("_age")),
DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_feedbackagent") : null,
DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_reasonformorethen24hours") : null,
CallStatus = s.Field<string>("_call_status"),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
feedback_call_status = s.Field<string>("_feedback_status"),
total_count = Convert.ToString(s.Field<Int32?>("_feedback_count")),
KamId = s.Field<Int32?>("_kam_id").ToString(),
IsDeleted = s.Field<bool?>("_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;
}
/// <summary>
/// To delete dummy ticket created by KAM
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and data</returns>
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;
}
/// <summary>
/// To get consolidated report.
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and consolidated report</returns>
public TicketRequestModel ConsolidatedDataReport(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<ConsolidatedReportModel> objList = new List<ConsolidatedReportModel>();
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<string>("_ticket_id"),
customer_name = s.Field<string>("_customer_name"),
customer_contact_no = s.Field<string>("_customer_contact_no"),
vehicle_type = s.Field<string>("_vehicle_type"),
chassis_number = s.Field<string>("_chassis_number"),
//vehicle_instalation_date = Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
vehicle_instalation_date = s.Field<string>("_vehicle_instalation_date"),//;String.IsNullOrEmpty(s.Field<string>("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])),
breakdown_location = s.Field<string>("_breakdown_location"),
default_sla_time = s.Field<string>("_default_sla_time"),
//response = s.Field<string>("_response"),
response = s.Field<string>("_response") == null || Convert.ToInt32(s.Field<string>("_response")) <= 0 ? "0" : s.Field<string>("_response"),
eos_team_member_and_van = s.Field<string>("_eos_team_member_and_van"),
dealer_name = s.Field<string>("_dealer_name"),
dealer_contact_no = s.Field<string>("_dealer_contact_no"),
created_by = s.Field<string>("_created_by"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
state = s.Field<string>("_state"),
city = s.Field<string>("_city"),
month_name = s.Field<string>("_month_name"),
time_slot = s.Field<string>("_time_slot"),
open_call_hrs = s.Field<string>("_open_call_hrs"),
language_name = s.Field<string>("_language_name"),
region = s.Field<string>("_region"),
landmark = s.Field<string>("_landmark"),
dealer_code = s.Field<string>("_dealer_code"),
warranty = s.Field<string>("_warranty"),
vehicle_model = s.Field<string>("_vehicle_model"),
load_carried = s.Field<string>("_load_carried"),
type_of_load_carried = s.Field<string>("_type_of_load_carried"),
call_assigned_to = s.Field<string>("_call_assigned_to"),
owner_name = s.Field<string>("_owner_name"),
owner_contact_number = s.Field<string>("_owner_contact_number"),
customer_vehicle_regn_no = s.Field<string>("_customer_vehicle_regn_no"),
nature_of_problem = s.Field<string>("_nature_of_problem"),
closure_remarks = s.Field<string>("_closure_remarks"),
estimated_cost = s.Field<string>("_estimated_cost"),
estimated_time = s.Field<string>("_estimated_time"),
time_stamps_status_1 = s.Field<string>("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_2 = s.Field<string>("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_3 = s.Field<string>("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_4 = s.Field<string>("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_5 = s.Field<string>("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
escalation_level_van_not_move_1 = s.Field<string>("_escalation_level_van_not_move_1"),
escalation_level_van_not_move_2 = s.Field<string>("_is_location_change"),
escalation_level_van_not_move_3 = s.Field<string>("_dealer_change_reason"),
escalation_level_van_not_move_4 = s.Field<string>("_dealer_change_reason_other_remark"),
escalation_level_van_not_move_5 = s.Field<string>("_vehicle_status"),
escalation_level_van_not_move_6 = (s.Field<DateTime?>("_location_change_time")).ToString(),
// escalation_level_van_not_move_6 = s.Field<string>(s.Field<DateTime?>("_location_change_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null),
//escalation_level_van_not_move_6 = s.Field<string>("_escalation_level_van_not_move_6"),
escalation_level_van_not_move_7 = s.Field<string>("_escalation_level_van_not_move_7"),
escalation_level_van_not_move_8 = s.Field<string>("_escalation_level_van_not_move_8"),
escalation_level_van_not_move_9 = s.Field<string>("_escalation_level_van_not_move_9"),
escalation_level_van_not_move_10 = s.Field<string>("_escalation_level_van_not_move_10"),
escalation_level_ticket_closer_1 = s.Field<string>("_escalation_level_ticket_closer_1"),
escalation_level_ticket_closer_2 = s.Field<string>("_escalation_level_ticket_closer_2"),
escalation_level_ticket_closer_3 = s.Field<string>("_escalation_level_ticket_closer_3"),
escalation_level_ticket_closer_4 = s.Field<string>("_escalation_level_ticket_closer_4"),
escalation_level_ticket_closer_5 = s.Field<string>("_escalation_level_ticket_closer_5"),
escalation_level_ticket_closer_6 = s.Field<string>("_escalation_level_ticket_closer_6"),
escalation_level_ticket_closer_7 = s.Field<string>("_escalation_level_ticket_closer_7"),
escalation_level_ticket_closer_8 = s.Field<string>("_escalation_level_ticket_closer_8"),
escalation_level_ticket_closer_9 = s.Field<string>("_escalation_level_ticket_closer_9"),
escalation_level_ticket_closer_10 = s.Field<string>("_escalation_level_ticket_closer_10"),
call_closure_status = s.Field<string>("_call_closure_status"),
feedback_taken = s.Field<string>("_feedback_taken"),
feedback_parameter_wise_score = s.Field<string>("_feedback_parameter_wise_score"),
feedback_ease_of_getting_call = s.Field<string>("_feedback_ease_of_getting_call"),
feedback_response_of_call_center = s.Field<string>("_feedback_response_of_call_center"),
feedback_timely_updation_by_dealer = s.Field<string>("_feedback_timely_updation_by_dealer"),
feedback_total_repair_time = s.Field<string>("_feedback_total_repair_time"),
feedback_eos_charges = s.Field<string>("_feedback_eos_charges"),
feedback_over_all_experience = s.Field<string>("_feedback_over_all_experience"),
other_remarks = s.Field<string>("_other_remarks"),
feedback_agent = s.Field<string>("_feedback_agent"),
how_did_you_come_to_know_of_eos = s.Field<string>("_how_did_you_come_to_know_of_eos"),
total_inbound_calls = s.Field<string>("_total_inbound_calls"),
total_outbound_calls = s.Field<string>("_total_outbound_calls"),
vehicle_name = s.Field<string>("_customer_vehicle_name"),
organization = s.Field<string>("organization_alias"),
call_status = s.Field<string>("_call_status"),
complaints = s.Field<string>("_complaints"),
suggestion = s.Field<string>("_suggestion"),
feedback_count = s.Field<Int32?>("_feedback_count").ToString(),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
wm_name = s.Field<string>("_wm_name"),
DealerTicketOtherRemark = s.Field<string>("_other_remarks_for_dealer"),
KmCovered = s.Field<string>("_km_covered"),
estimated_distance = s.Field<string>("_estimated_distance"),
van_covered_distance = s.Field<string>("_van_covered_distance"),
trip_start_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
trip_end_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
_call_closed_within_24_hours = s.Field<string>("_call_closed_within_24_hours"),
_eicher_promise = s.Field<string>("_eicher_promise"),
opportunity_loss_remark = s.Field<string>("_opportunity_loss_remark"),
opportunity_loss = s.Field<string>("_opportunity_loss"),
remark_ticket_not_closed_24_hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
reopen_count = s.Field<int>("_reopen_count"),
remark_ticket_not_closed_24_hours_remarks = s.Field<string>("_remark_ticket_not_closed_24_hours_remarks"),
opportunity_lost_remarks = s.Field<string>("_opportunity_lost_remarks"),
ChassisNo = s.Field<string>("_vehicle_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added for consolidate report
last_Updated_Time = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_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<bool?>("_are_you_satisfied") == true ? "Yes" : s.Field<bool?>("_are_you_satisfied") != null && s.Field<bool?>("_are_you_satisfied") == false ? "No" : null,
not_satisfied_option = s.Field<string>("_not_satisfied_selected_option"),
not_satisfied_reason = s.Field<string>("_not_satisfied_reason"),
response_time_reassignment = s.Field<double?>("_response_time_reassignment"),
//added on 14-12-2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
//------ added on 25-11-2020 start--------------
ticket_closed_reason = s.Field<string>("_ticket_closed_reason"),
product_variant_name = s.Field<string>("_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<ConsolidatedReportModel> objList = new List<ConsolidatedReportModel>();
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<string>("_ticket_id"),
customer_name = s.Field<string>("_customer_name"),
customer_contact_no = s.Field<string>("_customer_contact_no"),
vehicle_type = s.Field<string>("_vehicle_type"),
chassis_number = s.Field<string>("_chassis_number"),
//vehicle_instalation_date = Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
vehicle_instalation_date = s.Field<string>("_vehicle_instalation_date"),//;String.IsNullOrEmpty(s.Field<string>("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])),
breakdown_location = s.Field<string>("_breakdown_location"),
default_sla_time = s.Field<string>("_default_sla_time"),
//response = s.Field<string>("_response"),
response = s.Field<string>("_response") == null || Convert.ToInt32(s.Field<string>("_response")) <= 0 ? "0" : s.Field<string>("_response"),
eos_team_member_and_van = s.Field<string>("_eos_team_member_and_van"),
dealer_name = s.Field<string>("_dealer_name"),
dealer_contact_no = s.Field<string>("_dealer_contact_no"),
created_by = s.Field<string>("_created_by"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
state = s.Field<string>("_state"),
city = s.Field<string>("_city"),
month_name = s.Field<string>("_month_name"),
time_slot = s.Field<string>("_time_slot"),
open_call_hrs = s.Field<string>("_open_call_hrs"),
language_name = s.Field<string>("_language_name"),
region = s.Field<string>("_region"),
landmark = s.Field<string>("_landmark"),
dealer_code = s.Field<string>("_dealer_code"),
warranty = s.Field<string>("_warranty"),
vehicle_model = s.Field<string>("_vehicle_model"),
load_carried = s.Field<string>("_load_carried"),
type_of_load_carried = s.Field<string>("_type_of_load_carried"),
call_assigned_to = s.Field<string>("_call_assigned_to"),
owner_name = s.Field<string>("_owner_name"),
owner_contact_number = s.Field<string>("_owner_contact_number"),
customer_vehicle_regn_no = s.Field<string>("_customer_vehicle_regn_no"),
nature_of_problem = s.Field<string>("_nature_of_problem"),
closure_remarks = s.Field<string>("_closure_remarks"),
estimated_cost = s.Field<string>("_estimated_cost"),
estimated_time = s.Field<string>("_estimated_time"),
time_stamps_status_1 = s.Field<string>("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_2 = s.Field<string>("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_3 = s.Field<string>("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_4 = s.Field<string>("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_5 = s.Field<string>("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
escalation_level_van_not_move_1 = s.Field<string>("_escalation_level_van_not_move_1"),
escalation_level_van_not_move_2 = s.Field<string>("_is_location_change"),
escalation_level_van_not_move_3 = s.Field<string>("_dealer_change_reason"),
escalation_level_van_not_move_4 = s.Field<string>("_dealer_change_reason_other_remark"),
escalation_level_van_not_move_5 = s.Field<string>("_vehicle_status"),
escalation_level_van_not_move_6 = (s.Field<DateTime?>("_location_change_time")).ToString(),
// escalation_level_van_not_move_6 = s.Field<string>(s.Field<DateTime?>("_location_change_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null),
//escalation_level_van_not_move_6 = s.Field<string>("_escalation_level_van_not_move_6"),
escalation_level_van_not_move_7 = s.Field<string>("_escalation_level_van_not_move_7"),
escalation_level_van_not_move_8 = s.Field<string>("_escalation_level_van_not_move_8"),
escalation_level_van_not_move_9 = s.Field<string>("_escalation_level_van_not_move_9"),
escalation_level_van_not_move_10 = s.Field<string>("_escalation_level_van_not_move_10"),
escalation_level_ticket_closer_1 = s.Field<string>("_escalation_level_ticket_closer_1"),
escalation_level_ticket_closer_2 = s.Field<string>("_escalation_level_ticket_closer_2"),
escalation_level_ticket_closer_3 = s.Field<string>("_escalation_level_ticket_closer_3"),
escalation_level_ticket_closer_4 = s.Field<string>("_escalation_level_ticket_closer_4"),
escalation_level_ticket_closer_5 = s.Field<string>("_escalation_level_ticket_closer_5"),
escalation_level_ticket_closer_6 = s.Field<string>("_escalation_level_ticket_closer_6"),
escalation_level_ticket_closer_7 = s.Field<string>("_escalation_level_ticket_closer_7"),
escalation_level_ticket_closer_8 = s.Field<string>("_escalation_level_ticket_closer_8"),
escalation_level_ticket_closer_9 = s.Field<string>("_escalation_level_ticket_closer_9"),
escalation_level_ticket_closer_10 = s.Field<string>("_escalation_level_ticket_closer_10"),
call_closure_status = s.Field<string>("_call_closure_status"),
feedback_taken = s.Field<string>("_feedback_taken"),
feedback_parameter_wise_score = s.Field<string>("_feedback_parameter_wise_score"),
feedback_ease_of_getting_call = s.Field<string>("_feedback_ease_of_getting_call"),
feedback_response_of_call_center = s.Field<string>("_feedback_response_of_call_center"),
feedback_timely_updation_by_dealer = s.Field<string>("_feedback_timely_updation_by_dealer"),
feedback_total_repair_time = s.Field<string>("_feedback_total_repair_time"),
feedback_eos_charges = s.Field<string>("_feedback_eos_charges"),
feedback_over_all_experience = s.Field<string>("_feedback_over_all_experience"),
other_remarks = s.Field<string>("_other_remarks"),
feedback_agent = s.Field<string>("_feedback_agent"),
how_did_you_come_to_know_of_eos = s.Field<string>("_how_did_you_come_to_know_of_eos"),
total_inbound_calls = s.Field<string>("_total_inbound_calls"),
total_outbound_calls = s.Field<string>("_total_outbound_calls"),
vehicle_name = s.Field<string>("_customer_vehicle_name"),
organization = s.Field<string>("organization_alias"),
call_status = s.Field<string>("_call_status"),
complaints = s.Field<string>("_complaints"),
suggestion = s.Field<string>("_suggestion"),
feedback_count = s.Field<Int32?>("_feedback_count").ToString(),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
wm_name = s.Field<string>("_wm_name"),
DealerTicketOtherRemark = s.Field<string>("_other_remarks_for_dealer"),
KmCovered = s.Field<string>("_km_covered"),
estimated_distance = s.Field<string>("_estimated_distance"),
van_covered_distance = s.Field<string>("_van_covered_distance"),
trip_start_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
trip_end_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
_call_closed_within_24_hours = s.Field<string>("_call_closed_within_24_hours"),
_eicher_promise = s.Field<string>("_eicher_promise"),
opportunity_loss_remark = s.Field<string>("_opportunity_loss_remark"),
opportunity_loss = s.Field<string>("_opportunity_loss"),
remark_ticket_not_closed_24_hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
reopen_count = s.Field<int>("_reopen_count"),
remark_ticket_not_closed_24_hours_remarks = s.Field<string>("_remark_ticket_not_closed_24_hours_remarks"),
opportunity_lost_remarks = s.Field<string>("_opportunity_lost_remarks"),
ChassisNo = s.Field<string>("_vehicle_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added for consolidate report
last_Updated_Time = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_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<bool?>("_are_you_satisfied") == true ? "Yes" : s.Field<bool?>("_are_you_satisfied") != null && s.Field<bool?>("_are_you_satisfied") == false ? "No" : null,
not_satisfied_option = s.Field<string>("_not_satisfied_selected_option"),
not_satisfied_reason = s.Field<string>("_not_satisfied_reason"),
response_time_reassignment = s.Field<double?>("_response_time_reassignment"),
//added on 14-12-2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
//------ added on 25-11-2020 start--------------
ticket_closed_reason = s.Field<string>("_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;
}
/// <summary>
/// To get escalation levels
/// </summary>
/// <param name="model">contains escalation level input information</param>
/// <returns>status and escalation levels</returns>
public EscalationLevelOutputModel GetEscalationLevels(EscalationLevelInputModel model)
{
EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel();
List<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
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<string>("dealer_id"),
ManagerName = s.Field<string>("manager_name"),
ManagerLevel = s.Field<string>("manager_level"),
ManagerPhoneNo = s.Field<string>("phones"),
VehicleType = s.Field<string>("van_type")
}).ToList();
}
oEscalationLevelOutputModel.EscalationLevelList = oEscalationLevelList;
}
oEscalationLevelOutputModel.Status = "1";
return oEscalationLevelOutputModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetEscalationLevels", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// This method is used to Insert Open Dummy Ticket Details
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>Dummy Id</returns>
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)--------------------------------
/// <summary>
/// To get ticket details
/// </summary>
/// <param name="model">Ticket Info</param>
/// <returns>ticket details</returns>
public List<DummyOpenTicketDetail> GetDummyTicketDetails(DummyOpenTicketDetail model)
{
List<DummyOpenTicketDetail> objListTicketModel = new List<DummyOpenTicketDetail>();
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<Int32>("dummy_id"),
TicketId = s.Field<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("_route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
CallerLanguage = s.Field<string>("_caller_language"),
Warranty = s.Field<string>("_warranty"),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
StateName = s.Field<string>("_state_name"),
CityName = s.Field<string>("_city_name"),
EstimatedDistance = s.Field<string>("_estimated_distance"),
OpportunityLoss = s.Field<string>("_opportunity_loss"),
KmCovered = s.Field<string>("_km_covered"),
VehicleTagging = s.Field<string>("_vehicle_tagging"),
ReasonForMoreThan24Hours = s.Field<string>("_reason_for_more_then_24hours"),
CallStatus = s.Field<string>("_call_status"),
SuggestionComplaint = s.Field<string>("_suggestion_complaint"),
CustomerName = s.Field<string>("customer_customer_name"),
vehicle_model_number = s.Field<string>("_vehicle_model_number"),
customer_id = s.Field<string>("_customer_id"),
customer_address_id = s.Field<string>("_customer_address_id"),
product_variant = s.Field<string>("_product_variant"),
customer_mobile_number = s.Field<string>("_customer_mobile_number"),
driver_mobile_number = s.Field<string>("_driver_mobile_number"),
driver_name = s.Field<string>("_driver_name"),
//iskam = s.Field<string>("_iskam"),
customer_address = s.Field<string>("_customer_address"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_type = s.Field<string>("_vehicle_type"),
customer_type = s.Field<string>("_customer_type"),
//vehicle_installation_date = s.Field<DateTime?>("_vehicle_installation_date") != null ? Convert.ToDateTime(s.Field<DateTime?>("_vehicle_installation_date")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"])
vehicle_installation_date = s.Field<string>("_vehicle_installation_date"),
// timestamp without time zone,
}).ToList();
}
}
return objListTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetDummyTicketDetails", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get open dummy ticket detail user id wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and open dummy ticket detail user id wise</returns>
public TicketRequestModel GetDummyOpenTicketDetailUserWise(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<DummyOpenTicketDetail> objList = new List<DummyOpenTicketDetail>();
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<Int32>("_dummy_id"),
Description = s.Field<string>("_description"),
AssignedTo = s.Field<string>("_assigned_to"),
ReportedVia = s.Field<string>("_reported_via"),
TicketStatus = s.Field<Int32?>("_ticket_status"),
Priority = s.Field<Int32?>("_priority"),
CustomerScore = s.Field<string>("_customer_score"),
CreatedBy = s.Field<string>("_created_by"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("_last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("_breakdown_location"),
BreakdownLongitude = s.Field<string>("_breakdown_longitude"),
BreakdownLattitude = s.Field<string>("_breakdown_latitude"),
AssignedToUserId = s.Field<string>("_assigned_to_user_id"),
AssignedToUserLongitude = s.Field<string>("_assigned_to_user_longitude"),
AssignedToUserLattitude = s.Field<string>("_assigned_to_user_latitude"),
EstimatedTimeForJobCompletion = s.Field<Int32?>("_estimated_time_for_job_completion"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field<DateTime?>("_estimated_time_for_job_completion_submit_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("_vehicle_registration_number"),
BreakdownLocationLandmark = s.Field<string>("_breakdown_location_landmark"),
RouteId = s.Field<Int32?>("_route_id"),
CustomerContactNo = s.Field<string>("_customer_contact_no"),
RepairCost = s.Field<string>("_repair_cost"),
DefaultSlaTime = s.Field<int?>("_default_sla_time"),
TicketIdAlias = s.Field<string>("_ticketid_alias"),
TicketId = s.Field<string>("_ticket_id"),
StateName = s.Field<string>("_state_name"),
CityName = s.Field<string>("_city_name"),
CallerLanguage = s.Field<string>("_caller_language"),
Warranty = s.Field<string>("_warranty"),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
EstimatedDistance = s.Field<string>("_estimated_distance"),
VehicleTagging = s.Field<string>("_vehicle_tagging"),
SuggestionComment = s.Field<string>("_suggestion_comment"),
OpportunityLoss = s.Field<string>("_opportunity_loss"),
ReasonForMoreThan24Hours = s.Field<string>("_reason_for_more_then_24hours"),
CallStatus = s.Field<string>("_call_status"),
SuggestionComplaint = s.Field<string>("_suggestion_complaint"),
CustomerName = s.Field<string>("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;
}
/// <summary>
/// This is used to delete dummy save ticket details
/// </summary>
/// <param name="model">Input paramter to delete particular vehicle saved ticket</param>
/// <returns>Message and Status</returns>
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
/// <summary>
/// To insert bulk opent ticket details
/// </summary>
/// <param name="model">bulk opent ticket details</param>
/// <returns>status</returns>
public OfflineTicket InsertBulkOpenTicketDetail(OfflineTicket model)
{
OfflineTicket objTicketStatus = new OfflineTicket();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
List<InsertOpenTicket> objList = new List<InsertOpenTicket>();
JavaScriptSerializer jss = new JavaScriptSerializer();
objList = jss.Deserialize<List<InsertOpenTicket>>(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
/// <summary>
/// To update open ticket details
/// </summary>
/// <param name="model">open ticket details</param>
/// <returns>status</returns>
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
/// <summary>
/// To update open ticket for android
/// </summary>
/// <param name="model">open ticket detail for updation</param>
/// <returns>contain response status 1 or 0</returns>
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;
}
}
/// <summary>
/// This method is used to Insert Open Dummy Ticket Details
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>Dummy Id</returns>
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 <br/><br/> A new Draft ticket is created for Registation Number:" + model.VehicleRegistrationNumber;
email_body += "<br/> The draft Ticket ID is " + objModel.TicketId;
email_body += "<br/> 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<TicketOpenModel> objList = new List<TicketOpenModel>();
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<string>("_ticket_status_alias")).FirstOrDefault();
objTicketInfoModel.CreationTime = ds.Tables[0].AsEnumerable()
.Select(s => Convert.ToDateTime(s.Field<DateTime?>("_creation_time"))
.AddMinutes(Convert.ToInt16(model.UtcMinute))
.ToString(ConfigurationManager.AppSettings["DateTimeFormat"]))
.FirstOrDefault();
objTicketInfoModel.VehicleRegistrationNo = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_vehicle_registration_number")).FirstOrDefault();
objTicketInfoModel.ticketid_alias = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_ticket_id_alias")).FirstOrDefault();
objTicketInfoModel.TicketStatus = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_ticket_status")).FirstOrDefault(); //added on 15-01-2021
objTicketInfoModel.ChassisNo = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_chassis_number")).FirstOrDefault(); //added on 15-01-2021
objTicketInfoModel.TicketStatusId = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_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;
}
/// <summary>
/// This method is used to Insert Open Dummy Ticket Details
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>Dummy Id</returns>
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<DraftTicketDetailModel> GetAllDraftTicketCancelResonList(DraftTicketDetailModel model)
{
List<DraftTicketDetailModel> objListDraftTicketModel = new List<DraftTicketDetailModel>();
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<string>("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<CancelledDraftTicketModel> objList = new List<CancelledDraftTicketModel>();
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<int>("_dummy_id"),
VehicleRegistrationNumber = s.Field<string>("_vehicle_registration_number"),
ChassisNumber = s.Field<string>("_chassis_number"),
Comments = s.Field<string>("_customer_comments"),
ContactNumber = s.Field<string>("_contact_number"),
DriverName = s.Field<string>("_driver_name"),
KamUser = s.Field<bool?>("_kam_user"),
//CreationTime = Convert.ToString(s.Field<DateTime>("_creation_time")),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
TollFreeNoSource = s.Field<string>("_toll_free_no_source"),
TicketCancelReason = s.Field<string>("_ticket_cancel_reason"),
TicketCancelRemark = s.Field<string>("_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<ConsolidatedReportModelNew> objList = new List<ConsolidatedReportModelNew>();
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<string>("_ticket_id"),
customer_name = s.Field<string>("_customer_name"),
customer_contact_no = s.Field<string>("_customer_contact_no"),
vehicle_type = s.Field<string>("_vehicle_type"),
chassis_number = s.Field<string>("_chassis_number"),
//vehicle_instalation_date = Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
vehicle_instalation_date = s.Field<string>("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field<string>("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])),
breakdown_location = s.Field<string>("_breakdown_location"),
default_sla_time = s.Field<string>("_default_sla_time"),
//response = s.Field<string>("_response"),
response = s.Field<string>("_response") == null || Convert.ToInt32(s.Field<string>("_response")) <= 0 ? "0" : s.Field<string>("_response"),
eos_team_member_and_van = s.Field<string>("_eos_team_member_and_van"),
dealer_name = s.Field<string>("_dealer_name"),
dealer_contact_no = s.Field<string>("_dealer_contact_no"),
created_by = s.Field<string>("_created_by"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
state = s.Field<string>("_state"),
city = s.Field<string>("_city"),
month_name = s.Field<string>("_month_name"),
time_slot = s.Field<string>("_time_slot"),
open_call_hrs = s.Field<string>("_open_call_hrs"),
language_name = s.Field<string>("_language_name"),
region = s.Field<string>("_region"),
landmark = s.Field<string>("_landmark"),
dealer_code = s.Field<string>("_dealer_code"),
warranty = s.Field<string>("_warranty"),
vehicle_model = s.Field<string>("_vehicle_model"),
load_carried = s.Field<string>("_load_carried"),
type_of_load_carried = s.Field<string>("_type_of_load_carried"),
call_assigned_to = s.Field<string>("_call_assigned_to"),
owner_name = s.Field<string>("_owner_name"),
owner_contact_number = s.Field<string>("_owner_contact_number"),
customer_vehicle_regn_no = s.Field<string>("_customer_vehicle_regn_no"),
nature_of_problem = s.Field<string>("_nature_of_problem"),
closure_remarks = s.Field<string>("_closure_remarks"),
estimated_cost = s.Field<string>("_estimated_cost"),
estimated_time = s.Field<string>("_estimated_time"),
time_stamps_status_1 = s.Field<string>("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_2 = s.Field<string>("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_3 = s.Field<string>("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_4 = s.Field<string>("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_5 = s.Field<string>("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
escalation_level_van_not_move_1 = s.Field<string>("_escalation_level_van_not_move_1"),
escalation_level_van_not_move_2 = s.Field<string>("_escalation_level_van_not_move_2"),
escalation_level_van_not_move_3 = s.Field<string>("_escalation_level_van_not_move_3"),
escalation_level_van_not_move_4 = s.Field<string>("_escalation_level_van_not_move_4"),
escalation_level_van_not_move_5 = s.Field<string>("_escalation_level_van_not_move_5"),
escalation_level_van_not_move_6 = s.Field<string>("_escalation_level_van_not_move_6"),
escalation_level_van_not_move_7 = s.Field<string>("_escalation_level_van_not_move_7"),
escalation_level_van_not_move_8 = s.Field<string>("_escalation_level_van_not_move_8"),
escalation_level_van_not_move_9 = s.Field<string>("_escalation_level_van_not_move_9"),
escalation_level_van_not_move_10 = s.Field<string>("_escalation_level_van_not_move_10"),
escalation_level_ticket_closer_1 = s.Field<string>("_escalation_level_ticket_closer_1"),
escalation_level_ticket_closer_2 = s.Field<string>("_escalation_level_ticket_closer_2"),
escalation_level_ticket_closer_3 = s.Field<string>("_escalation_level_ticket_closer_3"),
escalation_level_ticket_closer_4 = s.Field<string>("_escalation_level_ticket_closer_4"),
escalation_level_ticket_closer_5 = s.Field<string>("_escalation_level_ticket_closer_5"),
escalation_level_ticket_closer_6 = s.Field<string>("_escalation_level_ticket_closer_6"),
escalation_level_ticket_closer_7 = s.Field<string>("_escalation_level_ticket_closer_7"),
escalation_level_ticket_closer_8 = s.Field<string>("_escalation_level_ticket_closer_8"),
escalation_level_ticket_closer_9 = s.Field<string>("_escalation_level_ticket_closer_9"),
escalation_level_ticket_closer_10 = s.Field<string>("_escalation_level_ticket_closer_10"),
call_closure_status = s.Field<string>("_call_closure_status"),
feedback_taken = s.Field<string>("_feedback_taken"),
feedback_parameter_wise_score = s.Field<string>("_feedback_parameter_wise_score"),
feedback_ease_of_getting_call = s.Field<string>("_feedback_ease_of_getting_call"),
feedback_response_of_call_center = s.Field<string>("_feedback_response_of_call_center"),
feedback_timely_updation_by_dealer = s.Field<string>("_feedback_timely_updation_by_dealer"),
feedback_total_repair_time = s.Field<string>("_feedback_total_repair_time"),
feedback_eos_charges = s.Field<string>("_feedback_eos_charges"),
feedback_over_all_experience = s.Field<string>("_feedback_over_all_experience"),
other_remarks = s.Field<string>("_other_remarks"),
feedback_agent = s.Field<string>("_feedback_agent"),
how_did_you_come_to_know_of_eos = s.Field<string>("_how_did_you_come_to_know_of_eos"),
total_inbound_calls = s.Field<string>("_total_inbound_calls"),
total_outbound_calls = s.Field<string>("_total_outbound_calls"),
vehicle_name = s.Field<string>("_customer_vehicle_name"),
organization = s.Field<string>("organization_alias"),
call_status = s.Field<string>("_call_status"),
complaints = s.Field<string>("_complaints"),
suggestion = s.Field<string>("_suggestion"),
feedback_count = s.Field<Int32?>("_feedback_count").ToString(),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
wm_name = s.Field<string>("_wm_name"),
DealerTicketOtherRemark = s.Field<string>("_other_remarks_for_dealer"),
KmCovered = s.Field<string>("_km_covered"),
estimated_distance = s.Field<string>("_estimated_distance"),
van_covered_distance = s.Field<string>("_van_covered_distance"),
trip_start_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
trip_end_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
_call_closed_within_24_hours = s.Field<string>("_call_closed_within_24_hours"),
_eicher_promise = s.Field<string>("_eicher_promise"),
opportunity_loss_remark = s.Field<string>("_opportunity_loss_remark"),
opportunity_loss = s.Field<string>("_opportunity_loss"),
remark_ticket_not_closed_24_hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
reopen_count = s.Field<int>("_reopen_count"),
remark_ticket_not_closed_24_hours_remarks = s.Field<string>("_remark_ticket_not_closed_24_hours_remarks"),
opportunity_lost_remarks = s.Field<string>("_opportunity_lost_remarks"),
ChassisNo = s.Field<string>("_vehicle_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added for consolidate report
last_Updated_Time = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_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<bool?>("_are_you_satisfied") == true ? "Yes" : s.Field<bool?>("_are_you_satisfied") != null && s.Field<bool?>("_are_you_satisfied") == false ? "No" : null,
not_satisfied_option = s.Field<string>("_not_satisfied_selected_option"),
not_satisfied_reason = s.Field<string>("_not_satisfied_reason"),
response_time_reassignment = s.Field<double?>("_response_time_reassignment"),
//added on 14-12-2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
location_change_time = s.Field<DateTime?>("_location_change_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
is_location_change = s.Field<string>("_is_location_change"),
dealer_change_reason = s.Field<string>("_dealer_change_reason"),
dealer_change_reason_other_remark = s.Field<string>("_dealer_change_reason_other_remark"),
vehicle_status = s.Field<string>("_vehicle_status"),
//------ added on 25-11-2020 start--------------
ticket_closed_reason = s.Field<string>("_ticket_closed_reason"),
fuel_type = s.Field<string>("_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<ConsolidatedReportModelNew> objList = new List<ConsolidatedReportModelNew>();
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<string>("_ticket_id"),
customer_name = s.Field<string>("_customer_name"),
customer_contact_no = s.Field<string>("_customer_contact_no"),
vehicle_type = s.Field<string>("_vehicle_type"),
chassis_number = s.Field<string>("_chassis_number"),
//vehicle_instalation_date = Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
vehicle_instalation_date = s.Field<string>("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field<string>("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])),
breakdown_location = s.Field<string>("_breakdown_location"),
default_sla_time = s.Field<string>("_default_sla_time"),
//response = s.Field<string>("_response"),
response = s.Field<string>("_response") == null || Convert.ToInt32(s.Field<string>("_response")) <= 0 ? "0" : s.Field<string>("_response"),
eos_team_member_and_van = s.Field<string>("_eos_team_member_and_van"),
dealer_name = s.Field<string>("_dealer_name"),
dealer_contact_no = s.Field<string>("_dealer_contact_no"),
created_by = s.Field<string>("_created_by"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
state = s.Field<string>("_state"),
city = s.Field<string>("_city"),
month_name = s.Field<string>("_month_name"),
time_slot = s.Field<string>("_time_slot"),
open_call_hrs = s.Field<string>("_open_call_hrs"),
language_name = s.Field<string>("_language_name"),
region = s.Field<string>("_region"),
landmark = s.Field<string>("_landmark"),
dealer_code = s.Field<string>("_dealer_code"),
warranty = s.Field<string>("_warranty"),
vehicle_model = s.Field<string>("_vehicle_model"),
load_carried = s.Field<string>("_load_carried"),
type_of_load_carried = s.Field<string>("_type_of_load_carried"),
call_assigned_to = s.Field<string>("_call_assigned_to"),
owner_name = s.Field<string>("_owner_name"),
owner_contact_number = s.Field<string>("_owner_contact_number"),
customer_vehicle_regn_no = s.Field<string>("_customer_vehicle_regn_no"),
nature_of_problem = s.Field<string>("_nature_of_problem"),
closure_remarks = s.Field<string>("_closure_remarks"),
estimated_cost = s.Field<string>("_estimated_cost"),
estimated_time = s.Field<string>("_estimated_time"),
time_stamps_status_1 = s.Field<string>("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_2 = s.Field<string>("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_3 = s.Field<string>("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_4 = s.Field<string>("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_5 = s.Field<string>("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
escalation_level_van_not_move_1 = s.Field<string>("_escalation_level_van_not_move_1"),
escalation_level_van_not_move_2 = s.Field<string>("_escalation_level_van_not_move_2"),
escalation_level_van_not_move_3 = s.Field<string>("_escalation_level_van_not_move_3"),
escalation_level_van_not_move_4 = s.Field<string>("_escalation_level_van_not_move_4"),
escalation_level_van_not_move_5 = s.Field<string>("_escalation_level_van_not_move_5"),
escalation_level_van_not_move_6 = s.Field<string>("_escalation_level_van_not_move_6"),
escalation_level_van_not_move_7 = s.Field<string>("_escalation_level_van_not_move_7"),
escalation_level_van_not_move_8 = s.Field<string>("_escalation_level_van_not_move_8"),
escalation_level_van_not_move_9 = s.Field<string>("_escalation_level_van_not_move_9"),
escalation_level_van_not_move_10 = s.Field<string>("_escalation_level_van_not_move_10"),
escalation_level_ticket_closer_1 = s.Field<string>("_escalation_level_ticket_closer_1"),
escalation_level_ticket_closer_2 = s.Field<string>("_escalation_level_ticket_closer_2"),
escalation_level_ticket_closer_3 = s.Field<string>("_escalation_level_ticket_closer_3"),
escalation_level_ticket_closer_4 = s.Field<string>("_escalation_level_ticket_closer_4"),
escalation_level_ticket_closer_5 = s.Field<string>("_escalation_level_ticket_closer_5"),
escalation_level_ticket_closer_6 = s.Field<string>("_escalation_level_ticket_closer_6"),
escalation_level_ticket_closer_7 = s.Field<string>("_escalation_level_ticket_closer_7"),
escalation_level_ticket_closer_8 = s.Field<string>("_escalation_level_ticket_closer_8"),
escalation_level_ticket_closer_9 = s.Field<string>("_escalation_level_ticket_closer_9"),
escalation_level_ticket_closer_10 = s.Field<string>("_escalation_level_ticket_closer_10"),
call_closure_status = s.Field<string>("_call_closure_status"),
feedback_taken = s.Field<string>("_feedback_taken"),
feedback_parameter_wise_score = s.Field<string>("_feedback_parameter_wise_score"),
feedback_ease_of_getting_call = s.Field<string>("_feedback_ease_of_getting_call"),
feedback_response_of_call_center = s.Field<string>("_feedback_response_of_call_center"),
feedback_timely_updation_by_dealer = s.Field<string>("_feedback_timely_updation_by_dealer"),
feedback_total_repair_time = s.Field<string>("_feedback_total_repair_time"),
feedback_eos_charges = s.Field<string>("_feedback_eos_charges"),
feedback_over_all_experience = s.Field<string>("_feedback_over_all_experience"),
other_remarks = s.Field<string>("_other_remarks"),
feedback_agent = s.Field<string>("_feedback_agent"),
how_did_you_come_to_know_of_eos = s.Field<string>("_how_did_you_come_to_know_of_eos"),
total_inbound_calls = s.Field<string>("_total_inbound_calls"),
total_outbound_calls = s.Field<string>("_total_outbound_calls"),
vehicle_name = s.Field<string>("_customer_vehicle_name"),
organization = s.Field<string>("organization_alias"),
call_status = s.Field<string>("_call_status"),
complaints = s.Field<string>("_complaints"),
suggestion = s.Field<string>("_suggestion"),
feedback_count = s.Field<Int32?>("_feedback_count").ToString(),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
wm_name = s.Field<string>("_wm_name"),
DealerTicketOtherRemark = s.Field<string>("_other_remarks_for_dealer"),
KmCovered = s.Field<string>("_km_covered"),
estimated_distance = s.Field<string>("_estimated_distance"),
van_covered_distance = s.Field<string>("_van_covered_distance"),
trip_start_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
trip_end_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
_call_closed_within_24_hours = s.Field<string>("_call_closed_within_24_hours"),
_eicher_promise = s.Field<string>("_eicher_promise"),
opportunity_loss_remark = s.Field<string>("_opportunity_loss_remark"),
opportunity_loss = s.Field<string>("_opportunity_loss"),
remark_ticket_not_closed_24_hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
reopen_count = s.Field<int>("_reopen_count"),
remark_ticket_not_closed_24_hours_remarks = s.Field<string>("_remark_ticket_not_closed_24_hours_remarks"),
opportunity_lost_remarks = s.Field<string>("_opportunity_lost_remarks"),
ChassisNo = s.Field<string>("_vehicle_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added for consolidate report
last_Updated_Time = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_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<bool?>("_are_you_satisfied") == true ? "Yes" : s.Field<bool?>("_are_you_satisfied") != null && s.Field<bool?>("_are_you_satisfied") == false ? "No" : null,
not_satisfied_option = s.Field<string>("_not_satisfied_selected_option"),
not_satisfied_reason = s.Field<string>("_not_satisfied_reason"),
response_time_reassignment = s.Field<double?>("_response_time_reassignment"),
//added on 14-12-2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
location_change_time = s.Field<DateTime?>("_location_change_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
is_location_change = s.Field<string>("_is_location_change"),
dealer_change_reason = s.Field<string>("_dealer_change_reason"),
dealer_change_reason_other_remark = s.Field<string>("_dealer_change_reason_other_remark"),
vehicle_status = s.Field<string>("_vehicle_status"),
//------ added on 25-11-2020 start--------------
ticket_closed_reason = s.Field<string>("_ticket_closed_reason"),
fuel_type = s.Field<string>("_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<ConsolidatedReportModelNew> objList = new List<ConsolidatedReportModelNew>();
List<TicketListCloseTickets> objList = new List<TicketListCloseTickets>();
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<string>("_ticket_id"),
// DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
//added on 25-09-2020
VanLatitudeAtTripStart = s.Field<string>("_van_trip_start_latitude"),
VanLongitudeAtTripStart = s.Field<string>("_van_trip_start_longitude"),
VanLatitudeAtVanReached = s.Field<string>("_van_reached_latitude"),
VanLongitudeAtVanReached = s.Field<string>("_van_reached_longitude"),
VanLatitudeAtTripEnd = s.Field<string>("_van_trip_end_latitude"),
VanLongitudeAtTripEnd = s.Field<string>("_van_trip_end_longitude"),
BreakdownLocationLatitude = s.Field<string>("_breakdown_location_latitude"),
BreakdownLocationLongitude = s.Field<string>("_breakdown_location_longitude"),
//----------------added on 25-11-2020 (start) -------------------------------------
TicketClosedReason = s.Field<string>("_ticket_closed_reason"),
//----------------added on 25-11-2020 (end) -------------------------------------
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
AssignedTo = s.Field<string>("_assignedto"),
EstimatedTimeForJobComplition = s.Field<int?>("_estimatedtimeforjobcompletion"),
Age = Convert.ToDouble(s.Field<string>("_age")),
DefaultCol2 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_feedbackagent") : null,
DefaultCol3 = model.TicketType.Trim().ToLower() == "close" ? s.Field<string>("_reasonformorethen24hours") : null,
CallStatus = s.Field<string>("_call_status"),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
feedback_call_status = s.Field<string>("_feedback_status"),
total_count = Convert.ToString(s.Field<Int32?>("_feedback_count")),
reopen_count = Convert.ToString(s.Field<Int32?>("_reopen_count")),
Score = s.Field<string>("_score"),
ChassisNo = s.Field<string>("_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added on 03/12/2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
AssignedToUserLatitude = s.Field<string>("_assigned_lat"),
AssignedToUserLongitude = s.Field<string>("_assigned_long"),
BreackDownLongitude = s.Field<string>("_estimated_van_reach_time"),
VanAssignedLat = s.Field<string>("_assigned_lat"),
VanAssignedLong = s.Field<string>("_assigned_long"),
EstimatedVanReachTime = s.Field<string>("_estimated_van_reach_time"),
fuel_type = s.Field<string>("_fuel_type"),
VanReachedPunchTime = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
model_number = s.Field<string>("_model_number"),
battery_voltage = s.Field<string>("_battery_voltage") == null ? "" : s.Field<string>("_battery_voltage"),
fuelLevelInLtr = s.Field<string>("_fuelLevelInLtr") == null ? "" : s.Field<string>("_fuelLevelInLtr"),
defLevelInLtr = s.Field<string>("_defLevelInLtr") == null ? "" : s.Field<string>("_defLevelInLtr"),
TripENDBY = s.Field<string>("_tripendstatus") == null ? "U" : (s.Field<string>("_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;
}
/// <summary>
/// To get open and close ticket detail user id wise
/// </summary>
/// <param name="model">ticket info</param>
/// <returns>status and open and close ticket detail user id wise</returns>
public ReportOpenTicketModel GetOpenCloseTicketDetailNew(TicketRequestModel model)
{
ReportOpenTicketModel objModel = new ReportOpenTicketModel();
// List<ConsolidatedReportModelNew> objList = new List<ConsolidatedReportModelNew>();
List<TicketListOpenTickets> objList = new List<TicketListOpenTickets>();
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<string>("_ticket_id"),
// DefaultSlaTime = s.Field<int?>("_default_sla_time"),
CustomeContact_no = s.Field<string>("_customer_contact_no"),
assigned_to = s.Field<string>("_assignedto"),
TotalTicketLifeCycleTimeSlab = s.Field<int?>("_total_ticket_lifecycle_time_sla") == null || s.Field<int?>("_total_ticket_lifecycle_time_sla") <= 0 ? 0 : s.Field<int?>("_total_ticket_lifecycle_time_sla"),
ServiceEngineerName = s.Field<string>("_van_dealer_name"),
DealerDealerName = s.Field<string>("_dealer_name"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
VehicleTagging = s.Field<string>("_customer_vehicle_model_tagging"),
CustomerName = s.Field<string>("_customer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
// LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_lastmodifytime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
// gps_status = s.Field<string>("_gps_status"),
// current_latitude = s.Field<string>("_current_latitude"),
// current_longitude = s.Field<string>("_current_longitude"),
PreClosureTime = Convert.ToDateTime(s.Field<DateTime?>("_pre_closure_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
ChassisNo = s.Field<string>("_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
Remarks = s.Field<string>("_last_remark"),
Description = s.Field<string>("_nature_of_problem"),
CSMName = s.Field<string>("csm"),
CSMNo = s.Field<string>("csm_contact_no"),
RSMName = s.Field<string>("rsm"),
RSMNo = s.Field<string>("rsm_contact_no"),
ASMName = s.Field<string>("asm"),
ASMNo = s.Field<string>("asm_contact_no"),
dealer1scode = s.Field<string>("_Dealer_name_1scode"),
Vehicle_Status = s.Field<string>("_vehicle_status"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
CreatedBy = s.Field<string>("_created_by"),
Region = s.Field<string>("_region"),
fuel_type = s.Field<string>("_fuel_type"),
model_number = s.Field<string>("_model_number"),
battery_voltage = s.Field<string>("_battery_voltage") == null ? "" : s.Field<string>("_battery_voltage"),
fuelLevelInLtr = s.Field<string>("_fuelLevelInLtr") == null ? "" : s.Field<string>("_fuelLevelInLtr"),
defLevelInLtr = s.Field<string>("_defLevelInLtr") == null ? "" : s.Field<string>("_defLevelInLtr"),
preclosurereason = s.Field<string>("_preclosereaon") == null ? "" : s.Field<string>("_preclosereaon"),
VanReachedPunchTime = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_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;
}
/// <summary>
/// To get Warranty list
/// </summary>
/// <returns>Warranty list</returns>
public List<TollFreeNoSourceModel> GetdealerchangereasonList()
{
List<TollFreeNoSourceModel> objList = new List<TollFreeNoSourceModel>();
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<int?>("id"),
ReasonAlias = s.Field<string>("reason_alias"),
ReasonName = s.Field<string>("reason_name"),
TypeAlias = s.Field<string>("type_alias"),
TypeId = s.Field<string>("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<VECVCalculation> vecvCalculationList = new List<VECVCalculation>();
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<string>("_assigned_to"),
TicketStatus = s.Field<string>("_ticket_status"),
TicketStatusAlias = s.Field<string>("_ticket_status_alias"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
DealerCode = s.Field<string>("_dealer_code"),
AssignedToUserId = s.Field<string>("_assigned_to_user_id"),
Dealer_name = s.Field<string>("_dealer_name"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString("dd MMM yyy HH:mm:ss"),
LastModifiedTime = Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
//Convert.ToDateTime(s.Field<DateTime?>("_last_modified_time")).ToString("dd MMM yyy HH:mm:ss"),
Call_Closure = Convert.ToDateTime(s.Field<DateTime?>("_call_closure")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
//Convert.ToDateTime(s.Field<DateTime?>("_call_closure")).ToString("dd MMM yyy HH:mm:ss"),
Call_Preclosed = Convert.ToDateTime(s.Field<DateTime?>("_call_preclosed")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
//Convert.ToDateTime(s.Field<DateTime?>("_call_preclosed")).ToString("dd MMM yyy HH:mm:ss"),
Reassignment_Time = Convert.ToDateTime(s.Field<DateTime?>("_reassignment_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
////Convert.ToDateTime(s.Field<DateTime?>("_reassignment_time")).ToString("dd MMM yyy HH:mm:ss"),
Ticket_Accepted = Convert.ToDateTime(s.Field<DateTime?>("_ticket_accepted")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
//Convert.ToDateTime(s.Field<DateTime?>("_ticket_accepted")).ToString("dd MMM yyy HH:mm:ss"),
//VanReachedTime = Convert.ToDateTime(s.Field<DateTime?>("_vanreachedtime")).ToString("dd MMM yyy HH:mm:ss"),
VanReachedTime = Convert.ToDateTime(s.Field<DateTime?>("_vanreachedtime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Van_Reached = Convert.ToDateTime(s.Field<DateTime?>("_vanreachedtime")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
//VanReachedTime = s.Field<DateTime?>("_vanreachedtime") != null ? Convert.ToDateTime(s.Field<DateTime?>("_vanreachedtime")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_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;
}
}
/// <summary>
/// To get customer open ticket history
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer open ticket history</returns>
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;
}
}
/// <summary>
/// To get van and dealer list.
/// </summary>
/// <param name="model">van and dealer info</param>
/// <returns>van and dealer list</returns>
public List<VanDealerListStateWiseGetAllVan> GetVanDealerListStateWiseGetAllVan(VanDealerListStateWise model)
{
List<VanDealerListStateWiseGetAllVan> objListModel = new List<VanDealerListStateWiseGetAllVan>();
// 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;
}
}
/// <summary>
/// To get van and dealer list.
/// </summary>
/// <param name="model">van and dealer info</param>
/// <returns>van and dealer list</returns>
public List<VanDealerListStateWise> GetVanListStateWise(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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<VanDealerListStateWise> GetVanListDealerWise(string DealerSCode, VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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;
}
}
/// <summary>
/// To get customer details
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer details</returns>
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<string>("_driver_name")).FirstOrDefault();
objModel.DriverNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_driver_mobile_number")).FirstOrDefault();
objModel.CustomerMobileNumber1 = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_owner_number")).FirstOrDefault();
objModel.CustomerAddress = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_owner_Location")).FirstOrDefault();
objModel.CustomerType = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_customer_type")).FirstOrDefault(); //added on 15-01-2021
objModel.CustomerId = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_customer_id")).FirstOrDefault(); //added on 15-01-2021
objModel.CustomerAlias = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_owner_name")).FirstOrDefault(); //added on 15-01-2021
objModel.RegistrationNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_registration_number")).FirstOrDefault();
objModel.VehicleInstallationDate = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_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<string>("_vehicle_type")).FirstOrDefault();
// objModel.VehicleInstallationDate = Convert.ToDateTime(objModel.VehicleInstallationDate).ToShortDateString(); objModel.VehicleType = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_vehicle_type")).FirstOrDefault();
objModel.VehicleModelNumber = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_vehicle_model")).FirstOrDefault();
objModel.VehicleAMC = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_vehicle_amc")).FirstOrDefault();
objModel.VehicleWarranty = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_vehicle_warranty")).FirstOrDefault();
objModel.VehicleSalesDate = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_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<string>("_vehicle_emission_norms")).FirstOrDefault();
objModel.VehicleNumberPlate = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_chassis_no")).FirstOrDefault();
objModel.ProductVariant = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_product_variant")).FirstOrDefault();
objModel.VehicleAMCDate = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_amc_date")).FirstOrDefault();
objModel.VehicleAMCDate = Convert.ToDateTime(objModel.VehicleAMCDate).ToShortDateString();
objModel.VehicleAMCType = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_amc_type")).FirstOrDefault();
objModel.ExtendedWarranty = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_extended_warranty")).FirstOrDefault();
// objModel.VehicleAMCDate = Convert.ToDateTime(objModel.VehicleAMCDate).ToShortDateString();
objModel.WarrantyEndDate = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_warranty_end_date")).FirstOrDefault();
objModel.fuelLevelInLtr = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_fuelLevelInLtr")).FirstOrDefault();
objModel.fuelLevelInPer = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_fuelLevelInPer")).FirstOrDefault();
objModel.defLevelInLtr = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_defLevelInLtr")).FirstOrDefault();
objModel.BatteryVoltage = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_battery_voltage")).FirstOrDefault();
objModel.KamName = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_kam_name")).FirstOrDefault();
objModel.KamNo = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_kam_no")).FirstOrDefault();
objModel.FleetManagerName = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_fleet_mananger_name")).FirstOrDefault();
objModel.FleetManagerNo = ds.Tables[0].AsEnumerable().Select(s => s.Field<string>("_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
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer close ticket details</returns>
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;
}
/// <summary>
/// To get customer close ticket details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer close ticket details</returns>
public List<CustomerCloseTicketDetail> GetCustomerCloseTicketDetailTopTen(CustomerCloseTicketDetail model)
{
List<CustomerCloseTicketDetail> objListTicketModel = new List<CustomerCloseTicketDetail>();
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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TotalTicketCloseHours = Convert.ToDouble(s.Field<string>("within_24hrs_or_not")),
FeedBackAgenName = s.Field<string>("feedback_agent"),
ReasonBeyond24Hrs = s.Field<string>("reason_for_more_then_24hours"),
CallStatus = s.Field<string>("call_status"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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<string>("ticket_id"),
Description = s.Field<string>("description"),
AssignedTo = s.Field<string>("assigned_to"),
ReportedVia = s.Field<string>("reported_via"),
TicketStatus = s.Field<int?>("ticket_status"),
Priority = s.Field<int?>("priority"),
CustomerScore = s.Field<string>("customer_score"),
CreatedBy = s.Field<string>("created_by"),
CreationTime = s.Field<DateTime?>("creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field<string>("last_modified_by"),
LastModifiedTime = s.Field<DateTime?>("last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field<string>("breakdown_location"),
BreakdownLongitude = s.Field<string>("breakdown_longitude"),
BreakdownLattitude = s.Field<string>("breakdown_lattitude"),
AssignedToUserId = s.Field<string>("assigned_to_user_id"),
AssignedToUserLattitude = s.Field<string>("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field<string>("assigned_to_user_longitude"),
Isdeclined = s.Field<Boolean?>("isdeclined"),
EstimatedTimeForJobCompletion = s.Field<int?>("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field<int?>("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field<DateTime?>("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field<string>("vehicle_register_number"),
BreakdownLocationLandmark = s.Field<string>("breakdown_location_landmark"),
RouteId = s.Field<int?>("route_id"),
CustomerContactNo = s.Field<string>("customer_contact_no"),
TicketStatusAlias = s.Field<string>("ticket_status_alias"),
RepairCost = s.Field<string>("repair_cost"),
DefaultSlaTime = s.Field<int?>("default_sla_time"),
SlaMissedReason = s.Field<string>("sla_missed_reason"),
SuggestionComment = s.Field<string>("suggestion_comment"),
JobCompleteResponseTime = s.Field<string>("default_col_1"),
DefaultCol2 = s.Field<string>("default_col_2"),
DefaultCol3 = s.Field<string>("default_col_3"),
TotalTicketCloseHours = Convert.ToDouble(s.Field<string>("within_24hrs_or_not")),
FeedBackAgenName = s.Field<string>("feedback_agent"),
ReasonBeyond24Hrs = s.Field<string>("reason_for_more_then_24hours"),
CallStatus = s.Field<string>("call_status"),
TicketIdAlias = s.Field<string>("_ticket_id_alias"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : (s.Field<DateTime>("_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;
}
}
/// <summary>
/// This is used to delete dummy save ticket details
/// </summary>
/// <param name="model">Input paramter to delete particular vehicle saved ticket</param>
/// <returns>Message and Status</returns>
/// <summary>
/// To get customer details
/// </summary>
/// <param name="model">device and ticket info</param>
/// <returns>status and customer details</returns>
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<PaymentDetailsModel> GetPaymentDetailsHistory(PaymentDetailsModel model)
{
List<PaymentDetailsModel> objTicketModel = new List<PaymentDetailsModel>();
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<string>("ticket_id"),
TicketId_Alias = s.Field<string>("ticketid_alias"),
CustomerMobileNumber = s.Field<string>("customer_mobile_number"),
CustomerName = s.Field<string>("customer_name"),
ModeOfPayment = s.Field<string>("mode_of_payment"),
remarks = (s.Field<string>("remarks")),
Amount = s.Field<string>("amount"),
Created_By = s.Field<string>("created_by"),
payment_date = (s.Field<DateTime>("payment_date")),
DateAlias = s.Field<string>("date_alias"),
RegistrationNumber = s.Field<string>("Registration_number"),
DealerName = s.Field<string>("_dealer_name"),
TimeAlias = s.Field<string>("time_alias"),
Created_By_type = s.Field<string>("created_by_type"),
addstatus = s.Field<string>("addstatus"),
}).ToList();
}
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetCustomerOpenTicketHistory", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<PaymentDetailsModel> GetAllPaymentDetailsHistory()
{
List<PaymentDetailsModel> objTicketModel = new List<PaymentDetailsModel>();
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<string>("ticket_id"),
TicketId_Alias = s.Field<string>("ticketid_alias"),
CustomerMobileNumber = s.Field<string>("customer_mobile_number"),
CustomerName = s.Field<string>("customer_name"),
ModeOfPayment = s.Field<string>("mode_of_payment"),
remarks = (s.Field<string>("remarks")),
Amount = s.Field<string>("amount"),
Created_By = s.Field<string>("created_by"),
payment_date = (s.Field<DateTime>("payment_date")),
DateAlias = s.Field<string>("date_alias"),
TimeAlias = s.Field<string>("time_alias"),
Created_By_type = s.Field<string>("created_by_type"),
addstatus = s.Field<string>("addstatus"),
}).ToList();
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetAllPaymentDetailsHistory", Ex.Message, path, errorlogtf);
}
return objTicketModel;
}
public List<SVCDetails> GetAllSVCDeatils()
{
List<SVCDetails> objTicketModel = new List<SVCDetails>();
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<string>("_customer_number"),
Address = s.Field<string>("_address"),
oemName = s.Field<string>("_eom_name"),
CustomerName = s.Field<string>("_customer_name"),
CreatedBy = s.Field<string>("_created_by"),
isoem = (s.Field<string>("_iseom")),
creation_time = (s.Field<string>("creation_date")),
Quantity = (s.Field<string>("_quantity")),
}).ToList();
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository GetAllSVCDeatils", Ex.Message, path, errorlogtf);
}
return objTicketModel;
}
public List<AccidentalDetails> GetAllAccidentalDetails()
{
List<AccidentalDetails> objTicketModel = new List<AccidentalDetails>();
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<string>("_customer_number"),
Location = s.Field<string>("_address"),
Dealer_Connect = s.Field<string>("_dealer_connect"),
CustomerName = s.Field<string>("_customer_name"),
CreatedBy = s.Field<string>("_created_by"),
isdealersupportrequired = (s.Field<string>("_isdealersupportrequired")),
isabulancesupportrequired = (s.Field<string>("_isabulancesupportrequired")),
creation_time = (s.Field<string>("creation_date")),
Registration_number = (s.Field<string>("_vehicle_registration_number")),
}).ToList();
}
return objTicketModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository AccidentalDetails", Ex.Message, path, errorlogtf);
}
return objTicketModel;
}
public List<EPSSalesDetails> GetAllEPSSalesDetails()
{
List<EPSSalesDetails> objTicketModel = new List<EPSSalesDetails>();
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<string>("_customer_number"),
Location = s.Field<string>("_address"),
Qunatity = s.Field<string>("_quantity"),
CustomerName = s.Field<string>("_customer_name"),
CreatedBy = s.Field<string>("_created_by"),
ProductType = (s.Field<string>("_producttype")),
creation_time = (s.Field<string>("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<DealerReport> vecvCalculationList = new List<DealerReport>();
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<string>("_id"),
DealerName = s.Field<string>("_name"),
State = s.Field<string>("_state"),
City = s.Field<string>("_city"),
Longitude = s.Field<string>("_longitude"),
Organisation = s.Field<string>("_organisation"),
FuelType = s.Field<string>("_fueltype"),
Latitude = s.Field<string>("_latitude"),
AppVersion = s.Field<string>("_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<VanReport> vecvCalculationList = new List<VanReport>();
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<string>("_id"),
DealerName = s.Field<string>("_name"),
State = s.Field<string>("_state"),
City = s.Field<string>("_city"),
LicenseKey = s.Field<string>("_licenseKey"),
MobileNumber = s.Field<string>("_mobileNumber"),
VanStatus = s.Field<string>("_vanStatus"),
FuelType = s.Field<string>("_fueltype"),
TechnicianName = s.Field<string>("_technicianName"),
RegistrationNumber = s.Field<string>("_registrationNumber"),
AppVersion = s.Field<string>("_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<PaymentDropDown> getPaymentDropDown()
{
List<PaymentDropDown> objTicketModel = new List<PaymentDropDown>();
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<Int32>("_id"),
Name = s.Field<string>("_payment_option_name"),
}).ToList();
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository getPaymentDropDown", Ex.Message, path, errorlogtf);
}
return objTicketModel;
}
public List<PaymentDropDown> getDelayReasonDropDown()
{
List<PaymentDropDown> objTicketModel = new List<PaymentDropDown>();
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<Int32>("_id"),
Name = s.Field<string>("_delay_reason_name"),
}).ToList();
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("TicketRepository getDelayReasonDropDown", Ex.Message, path, errorlogtf);
}
return objTicketModel;
}
public List<PaymentDropDown> getPreClosureDropDown()
{
List<PaymentDropDown> objTicketModel = new List<PaymentDropDown>();
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<Int32>("_id"),
Name = s.Field<string>("_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<ParttDetailsModel> GetPartDetailsHistory(ParttDetailsModel model)
{
List<ParttDetailsModel> objTicketModel = new List<ParttDetailsModel>();
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<string>("ticket_id"),
TicketId_Alias = s.Field<string>("ticketid_alias"),
PartName = s.Field<string>("part_name"),
PartNumber = s.Field<string>("part_no"),
QuantityIssued = s.Field<Int32>("quantity_issued"),
PartId = s.Field<Int64>("part_id"),
QuantityReturned = (s.Field<string>("quantity_returned")),
creation_date = s.Field<string>("created_date"),
update_date = s.Field<string>("updation_date"),
TimeAliascreation = s.Field<string>("created_time"),
TimeAliasupdation = s.Field<string>("updation_time"),
//= s.Field<Int32>("remarks"),
Created_By = s.Field<string>("created_by"),
addstatus = s.Field<string>("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<StateModel> GetStateListIdWiseFuelType(StateModel model)
{
List<StateModel> objList = new List<StateModel>();
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<string>("state_id"),
StateAlias = s.Field<string>("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<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
// 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 = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear User,</p>
<p>Please pay attention !!!</p>
<p>EOS Ticket is registered for the bus segment, following are the details:</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Assigned To</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Driver Name</th>
<th>Driver Mobile Number</th>
<th>Technician Name</th>
<th>Technician Mobile Number</th>
<th>Customer Voice</th>
</tr>
<tr>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert assigned to]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Driver Name]</td>
<td>[Insert Driver Mobile Number]</td>
<td>[Insert Technician Name]</td>
<td>[Insert Technician Mobile Number]</td>
<td>[Insert nature of problem]</td>
</table>
<p>Regards,<br>Eicher On Road Support</p>
<p>Disclaimer : This is system generated E-Mail, Please do not reply on this mail.</p>
</body>
</html>";
}
else
{
body = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear User,</p>
<p>Please pay attention !!!</p>
<p>EOS Ticket is registered for the bus segment, following are the details:</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Assigned To</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Driver Name</th>
<th>Driver Mobile Number</th>
<th>Works Manager Name</th>
<th>Works Manager Mobile Number</th>
<th>Customer Voice</th>
</tr>
<tr>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert assigned to]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Driver Name]</td>
<td>[Insert Driver Mobile Number]</td>
<td>[Insert Technician Name]</td>
<td>[Insert Technician Mobile Number]</td>
<td>[Insert nature of problem]</td>
</table>
<p>Regards,<br>Eicher On Road Support</p>
<p>Disclaimer : This is system generated E-Mail, Please do not reply on this mail.</p>
</body>
</html>";
}
// 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 = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear User,</p>
<p>Please pay attention !!!</p>
<p>EOS Ticket is registered for the bus segment, following are the details:</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Dealer SCode</th>
<th>Ticket Creation Date & Time</th>
<th>Assigned To</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Owner Name</th>
<th>Owner Mobile Number</th>
<th>Driver Name</th>
<th>Driver Mobile Number</th>
<th>Technician Name</th>
<th>Technician Mobile Number</th>
<th>CSM Name</th>
<th>CSM Number</th>
<th>Customer Voice</th>
</tr>
<tr>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert Dealership Id]</td>
<td>[Insert Creation Time]</td>
<td>[Insert assigned to]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Owner Name]</td>
<td>[Insert Owner Mobile Number]</td>
<td>[Insert Driver Name]</td>
<td>[Insert Driver Mobile Number]</td>
<td>[Insert Technician Name]</td>
<td>[Insert Technician Mobile Number]</td>
<td>[Insert CSM Name]</td>
<td>[Insert CSM Id]</td>
<td>[Insert nature of problem]</td>
</table>
<p>Regards,<br>Eicher On Road Support</p>
<p>Disclaimer : This is system generated E-Mail, Please do not reply on this mail.</p>
</body>
</html>";
}
else
{
body = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear User,</p>
<p>Please pay attention !!!</p>
<p>EOS Ticket is registered for the bus segment, following are the details:</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Dealer SCode</th>
<th>Ticket Creation Date & Time</th>
<th>Assigned To</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Owner Name</th>
<th>Owner Mobile Number</th>
<th>Driver Name</th>
<th>Driver Mobile Number</th>
<th>Works Manager Name</th>
<th>Works Manager Mobile Number</th>
<th>CSM Name</th>
<th>CSM Number</th>
<th>Customer Voice</th>
</tr>
<tr>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert Dealership Id]</td>
<td>[Insert Creation Time]</td>
<td>[Insert assigned to]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Owner Name]</td>
<td>[Insert Owner Mobile Number]</td>
<td>[Insert Driver Name]</td>
<td>[Insert Driver Mobile Number]</td>
<td>[Insert Technician Name]</td>
<td>[Insert Technician Mobile Number]</td>
<td>[Insert CSM Name]</td>
<td>[Insert CSM Id]</td>
<td>[Insert nature of problem]</td>
</table>
<p>Regards,<br>Eicher On Road Support</p>
<p>Disclaimer : This is system generated E-Mail, Please do not reply on this mail.</p>
</body>
</html>";
}
// 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<ModelReport> objList = new List<ModelReport>();
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<string>("_ticket_id_alias"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ChassisNo = s.Field<string>("_chassis_number"),
Description = s.Field<string>("_nature_of_problem"),
Dealer1Scode = s.Field<string>("_Dealer_name_1scode"),
ServiceEngineerAlias = s.Field<string>("_created_by"),
VanVanModel = s.Field<string>("model_number"),
WM_Contact_No = s.Field<string>("wm_contact_no"),
WM_Name = s.Field<string>("wm"),
plant_code = s.Field<string>("_plant_code"),
CaseId = s.Field<string>("_case_id"),
TicketStatus = s.Field<string>("_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<ReassignmentReportNew> objList = new List<ReassignmentReportNew>();
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<string>("_ticket_id_alias"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Dealer1SCode = s.Field<string>("_dealer_1scode"),
DealerName = (s.Field<string>("_dealer_name")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
TicketStatus = s.Field<string>("_ticket_status"),
Reassign_to = s.Field<string>("_reassign_to"),
Reassign_Reason = (s.Field<string>("_reassign_reason") == null ? "" : s.Field<string>("_reassign_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
ReassignTime = Convert.ToDateTime(s.Field<DateTime?>("_reassign_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
reassignstatus = s.Field<string>("_ticket_assign_status") == null ? "" : s.Field<string>("_ticket_assign_status"),
Fuel_type = s.Field<string>("_vehicle_fuel_type") == null ? "" : s.Field<string>("_vehicle_fuel_type"),
organization = s.Field<string>("_organization_name") == null ? "" : s.Field<string>("_organization_name"),
state = s.Field<string>("_state") == null ? "" : s.Field<string>("_state"),
Vehicle_Owner_Name = (s.Field<string>("_customer_name") == null ? "" : s.Field<string>("_customer_name")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
Vehicle_Owner_Contact_No = s.Field<string>("_customer_mobile_number") == null ? "" : s.Field<string>("_customer_mobile_number"),
Vehicle_Reg_No = s.Field<string>("_vehicle_registration_number") == null ? "" : s.Field<string>("_vehicle_registration_number"),
Vehicle_Model = s.Field<string>("_vehicle_model_number") == null ? "" : s.Field<string>("_vehicle_model_number"),
Vehicle_Type = s.Field<string>("_vehicle_tagging") == null ? "" : s.Field<string>("_vehicle_tagging"),
BreackDownLatitude = s.Field<string>("_breakdown_lattitude") == null ? "" : s.Field<string>("_breakdown_lattitude"),
BreackDownLongitude = s.Field<string>("_breakdown_longitude") == null ? "" : s.Field<string>("_breakdown_longitude"),
BreakDownLocation = (s.Field<string>("_breakdown_location") == null ? "" : s.Field<string>("_breakdown_location")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
BreakDownLandmark = (s.Field<string>("_breakdown_location_landmark") == null ? "" : s.Field<string>("_breakdown_location_landmark")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
nature_of_problem = (s.Field<string>("_nature_of_problem") == null ? "" : s.Field<string>("_nature_of_problem")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
opportunity_loss = s.Field<string>("_opportunity_loss") == null ? "" : s.Field<string>("_opportunity_loss"),
opportunity_loss_remark = (s.Field<string>("_opportunity_loss_reason") == null ? "" : s.Field<string>("_opportunity_loss_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
call_preclosed = s.Field<string>("_call_preclosed") == null ? "" : s.Field<string>("_call_preclosed"),
call_closure = s.Field<string>("_call_closure") == null ? "" : s.Field<string>("_call_closure"),
assigned_to = s.Field<string>("_assigned_to") == null ? "" : s.Field<string>("_assigned_to"),
estimated_distance = s.Field<string>("_estimated_distance") == null ? "" : s.Field<string>("_estimated_distance"),
isPreclosed = s.Field<string>("_is_callPreclosed") == null ? "" : s.Field<string>("_is_callPreclosed"),
pre_closure_remarks = (s.Field<string>("_preclosure_remarks") == null ? "" : s.Field<string>("_preclosure_remarks")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
ReassignRemarks = (s.Field<string>("_remarks") == null ? "" : s.Field<string>("_remarks")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
Preclosure_reason = (s.Field<string>("_preclosure_reason") == null ? "" : s.Field<string>("_preclosure_reason")).Replace("'", "").Replace("\"", "").Replace(",", " ").Replace("&", " "),
ticket_accepted = s.Field<string>("_ticket_accepted") == null ? "" : s.Field<string>("_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<DTCReport> objList = new List<DTCReport>();
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<string>("_ticket_id_alias"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Dealer1SCode = s.Field<string>("_dealer_1scode"),
DealerName = s.Field<string>("_dealer_name"),
DTC_CODE = s.Field<string>("_dtc_code") == null ? "" : s.Field<string>("_dtc_code"),
DTC_Description = s.Field<string>("_dtc_description") == null ? "" : s.Field<string>("_dtc_description"),
DTC_Occurance_Date = s.Field<string>("_dtc_occurance_date") == null ? "" : s.Field<string>("_dtc_occurance_date"),
Opp_lost_reason = s.Field<string>("_opp_lost_reason") == null ? "" : s.Field<string>("_opp_lost_reason"),
Opp_lost = s.Field<string>("_opp_lost") == null ? "" : s.Field<string>("_opp_lost"),
Occurence_count = s.Field<string>("_occurence_count") == null ? "" : s.Field<string>("_occurence_count"),
status = s.Field<string>("_status") == null ? "" : s.Field<string>("_status"),
chassis_number = s.Field<string>("_chassis_number") == null ? "" : s.Field<string>("_chassis_number"),
Registration_no = s.Field<string>("_registration_no") == null ? "" : s.Field<string>("_registration_no"),
Vehicle_Emission_Norms = s.Field<string>("_vehicle_emission_norms") == null ? "" : s.Field<string>("_vehicle_emission_norms"),
Vehicle_Model = s.Field<string>("_vehicle_model") == null ? "" : s.Field<string>("_vehicle_model"),
vehicle_type = s.Field<string>("_vehicle_type") == null ? "" : s.Field<string>("_vehicle_type"),
Organization = s.Field<string>("_organization") == null ? "" : s.Field<string>("_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<DTCReport> GetDTCReportByTicketId(DTCReport model)
{
List<DTCReport> objList = new List<DTCReport>();
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<string>("_ticket_id_alias"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Dealer1SCode = s.Field<string>("_dealer_1scode"),
DealerName = s.Field<string>("_dealer_name"),
DTC_CODE = s.Field<string>("_dtc_code") == null ? "" : s.Field<string>("_dtc_code"),
DTC_Description = s.Field<string>("_dtc_description") == null ? "" : s.Field<string>("_dtc_description"),
DTC_Occurance_Date = s.Field<string>("_dtc_occurance_date") == null ? "" : s.Field<string>("_dtc_occurance_date"),
Opp_lost_reason = s.Field<string>("_opp_lost_reason") == null ? "" : s.Field<string>("_opp_lost_reason"),
Opp_lost = s.Field<string>("_opp_lost") == null ? "" : s.Field<string>("_opp_lost"),
Occurence_count = s.Field<string>("_occurence_count") == null ? "" : s.Field<string>("_occurence_count"),
status = s.Field<string>("_status") == null ? "" : s.Field<string>("_status"),
Organization = s.Field<string>("_organization") == null ? "" : s.Field<string>("_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<ReassignmentReport> objList = new List<ReassignmentReport>();
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<string>("_ticket_id_alias"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Dealer1SCode = s.Field<string>("_dealer_1scode"),
DealerName = s.Field<string>("_dealer_name"),
TicketStatus = s.Field<string>("_ticket_status"),
Reassign_to = s.Field<string>("_reassign_to"),
Reassign_Reason = s.Field<string>("_reassign_reason") == null ? "" : s.Field<string>("_reassign_reason"),
ReassignTime = Convert.ToDateTime(s.Field<DateTime?>("_reassign_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
ReassignStatus = s.Field<string>("_ticket_assign_status") == null ? "" : s.Field<string>("_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<TechnicianReport> objList = new List<TechnicianReport>();
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<string>("_ticket_id"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16("330")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
TechnicianNumber = s.Field<string>("_technician_no"),
Ticket_status = s.Field<string>("_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<TicketOpenModel> getOpenTicketModelWiseAll()
{
TicketOpenModelWise objModel = new TicketOpenModelWise();
List<TicketOpenModel> objList = new List<TicketOpenModel>();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
}
catch (Exception Ex)
{
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
}
return objList;
}
public List<TicketOpenModel> getOpenTicketModelWise(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<TicketOpenModel> objList = new List<TicketOpenModel>();
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<string>("_ticket_id"),
ServiceEngineerContactNumber = s.Field<string>("_dealer_contact_number1"),
CreationTime = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegistrationNo = s.Field<string>("_vehicle_registration_number"),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
caller_language = s.Field<string>("_caller_language"),
ChassisNo = s.Field<string>("_chassis_number"),
Description = s.Field<string>("_nature_of_problem"),
dealer1scode = s.Field<string>("_Dealer_name_1scode"),
ServiceEngineerAlias = s.Field<string>("_created_by"),
VanVanModel = s.Field<string>("model_number"),
WM_Contact_No = s.Field<string>("wm_contact_no"),
WM_Name = s.Field<string>("wm"),
plant_code = s.Field<string>("_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<VanDealerListStateWise> GetVanDealerListLatLngWise(VanDealerListStateWise model)
{
List<VanDealerListStateWise> objListModel = new List<VanDealerListStateWise>();
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<string>("dealer_van_id"),
DealerVanName = s.Field<string>("dealer_van_name"),
DealerVanLattitude = s.Field<string>("dealer_van_lattitude"),
DealerVanLongitude = s.Field<string>("dealer_van_longitude"),
DealerVanCity = s.Field<string>("dealer_van_city"),
DealerVanState = s.Field<string>("dealer_van_state"),
Fuel_type = s.Field<string>("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<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
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<string>("dealer_id"),
ManagerName = s.Field<string>("manager_name"),
ManagerLevel = s.Field<string>("manager_level"),
ManagerPhoneNo = s.Field<string>("phones"),
VehicleType = s.Field<string>("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
/// <summary>
/// To update open ticket for android
/// </summary>
/// <param name="model">open ticket detail for updation</param>
/// <returns>contain response status 1 or 0</returns>
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<ApiResponse>();
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 = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear Team,</p>
<p>Please pay attention !</p>
<p>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-
</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Dealer SCode</th>
<th>Ticket Creation Date & Time</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Owner Name</th>
</tr>
<tr>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert Dealership Id]</td>
<td>[Insert Creation Time]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Owner Name]</td>
</table>
<p>Regards,<br>Uptime Control Room Team</p>
</body>
</html>";
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 = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear Team,</p>
<p>Please pay attention !</p>
<p>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-
</p>
<table border='1' cellpadding='5' cellspacing='0'>
<tr>
<th>CMT Case Number</th>
<th>EOS Ticket Number</th>
<th>Dealership Name</th>
<th>Dealer SCode</th>
<th>Ticket Creation Date & Time</th>
<th>Vehicle Registration Number</th>
<th>Vehicle Model Number</th>
<th>Owner Name</th>
</tr>
<tr>
<td>[Insert CMT Case Number]</td>
<td>[Insert EOS Ticket Number]</td>
<td>[Insert Dealership Name]</td>
<td>[Insert Dealership Id]</td>
<td>[Insert Creation Time]</td>
<td>[Insert Vehicle Registration Number]</td>
<td>[Insert Vehicle Model Number]</td>
<td>[Insert Owner Name]</td>
</table>
<p>Regards,<br>Uptime Control Room Team</p>
</body>
</html>";
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<ErrorResponse>(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<ErrorResponse>(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<ElectricServiceStationModel> GetServiceStation(ElectricServiceStationModel model)
{
List<ElectricServiceStationModel> objListModel = new List<ElectricServiceStationModel>();
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<string>("_name"),
city = s.Field<string>("_city"),
address = s.Field<string>("_address"),
state = s.Field<string>("_state"),
lattitude = s.Field<string>("_lattitude"),
longitude = s.Field<string>("_longitude")
}).ToList();
}
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetAllElectricServiceStationByLatLong", ex.Message, path, errorlogtf);
}
return objListModel;
}
public List<VAHANAPI> VahanDetailReport(ReportRequestModel model)
{
List<VAHANAPI> objVAHANAPI = new List<VAHANAPI>();
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<string>("_chassis_number"),
Registration_Number = s.Field<string>("_registration_number"),
vehicleManufacturerName = s.Field<string>("_vehiclemanufacturername"),
model = s.Field<string>("_model"),
normsType = s.Field<string>("_normsType"),
creation_time = s.Field<string>("_creation_time"),
owner = s.Field<string>("_owner"),
type = s.Field<string>("_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<VAHANAPIError> VahanDetailErrorReport(ReportRequestModel model)
{
List<VAHANAPIError> objVAHANAPI = new List<VAHANAPIError>();
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<string>("_message"), // getting ticket id alias
status = s.Field<string>("_status"), // getting ticket id alias
reason = s.Field<string>("_reason"), // getting ticket id alias
creation_time = s.Field<string>("_creation_time"),
type = s.Field<string>("_type"),
statusCode = s.Field<string>("_statusCode"),
registration_number = s.Field<string>("_reg_no")
}).ToList();
}
else
{
objVAHANAPI = null;
}
return objVAHANAPI;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("VahanDetailErrorReport", Ex.Message, path, errorlogtf);
return objVAHANAPI;
}
}
public List<CaseManagementAPIModel> GetAllOpenTicketCaseManagement(CaseManagementAPIModel model)
{
List<CaseManagementAPIModel> objCaseManagementAPI = new List<CaseManagementAPIModel>();
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<string>("_ticket_id_alias"), // getting ticket id alias
Dealer_Code = s.Field<string>("_dealer_name_1scode"), // getting ticket id alias
Dealer_Name = s.Field<string>("_dealer_name"),
Dealer_Contact_Number = s.Field<string>("_dealer_contact_number1"),
CSM_Name = s.Field<string>("csm"),
ASM_Name = s.Field<string>("asm"),
RSM_Name = s.Field<string>("rsm"),
WM_Name = s.Field<string>("wm"),
CSM_Contact = s.Field<string>("csm_contact_no"),
ASM_Contact = s.Field<string>("asm_contact_no"),
RSM_contact = s.Field<string>("rsm_contact_no"),
WM_contact = s.Field<string>("wm_contact_no"),
Registration_number = s.Field<string>("_registration_number"),
// getting ticket id alias
chassis_no = s.Field<string>("_chassis_no"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(UtcMinute)).ToString("yyyy-MM-dd HH:mm:ss"),
EOS_Aging_Hrs = s.Field<string>("_eos_sla"),
Latest_Remark = s.Field<string>("_reamrks"),
EOS_Ticket_Status = s.Field<string>("_ticket_status"),
CutomerType = s.Field<string>("_cutomer_type"),
ModelNumber = s.Field<string>("_model_number"),
Region = s.Field<string>("_region"),
VehicleTagging = s.Field<string>("_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<CustomerVehicleModelDBM> GetFuelDetails(string chassisno)
{
CustomerVehicleModelDBM model = new CustomerVehicleModelDBM();
if (chassisno.Length > 12)
{
try
{
Task<string> 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<Response>(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<CustomerVehicleModelDBM> GetFuelDetails(string chassisno)
{
CustomerVehicleModelDBM model = new CustomerVehicleModelDBM();
if (chassisno.Length > 12)
{
try
{
Task<string> 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<Response>(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<string> 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<string> 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 = @"
<html>
<head> <style>
body {
font-family: Calibri, sans-serif;
font-size: 11pt;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style></head>
<body>
<p>Dear User,</p>
<p>Please pay attention !!!</p>
<p>Datalake query taking too much time</p>
<p>Regards,<br>Eicher On Road Support</p>
<p>Disclaimer : This is system generated E-Mail, Please do not reply on this mail.</p>
</body>
</html>"; // 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<TrackingModel> listTracking = new List<TrackingModel>();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<Int32>("_log_id"),
DeviceAlias = s.Field<string>("_device_alias"),
Latitude = s.Field<string>("_latitude"),
Longitude = s.Field<string>("_longitude"),
// LogTime = s.Field<DateTime?>("_log_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field<string>("_device_status"),
Xcordinate = s.Field<string>("_x_coordinate"),
Ycordinate = s.Field<string>("_y_coordinate"),
Zcordinate = s.Field<string>("_z_coordinate"),
// CreationTime = s.Field<DateTime?>("_creation_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DeviceStatus = s.Field<string>("_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<DeviceData[]>(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<DeviceData[]>(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 = @"
<html>
<body style='font-family:Calibri, sans-serif; font-size:11pt;'>
<p>Hello Team,</p>
<p>Greetings!</p>
<p>This is to inform you that we have received a customer call related to a sales inquiry for Eicher Power Solutions (EPS).</p>
<table border='1' cellpadding='5' cellspacing='0' width='100%' style='border-collapse:collapse;'>
<tr style='background-color:#f2f2f2;'>
<th style='border:1px solid black; padding:5px; text-align:center;'>Customer Name</th>
<th style='border:1px solid black; padding:5px; text-align:center;'>Customer Mobile Number</th>
<th style='border:1px solid black; padding:5px; text-align:center;'>Location</th>
<th style='border:1px solid black; padding:5px; text-align:center;'>Quantity</th>
<th style='border:1px solid black; padding:5px; text-align:center;'>Product Type</th>
</tr>
<tr>
<td style='border:1px solid black; padding:5px; text-align:center;'>[Insert Customer Name]</td>
<td style='border:1px solid black; padding:5px; text-align:center;'>[Insert Customer No]</td>
<td style='border:1px solid black; padding:5px; text-align:center;'>[Insert Location]</td>
<td style='border:1px solid black; padding:5px; text-align:center;'>[Insert Quantity]</td>
<td style='border:1px solid black; padding:5px; text-align:center;'>[Insert Product Type]</td>
</tr>
</table>
<p>Kindly take this lead forward and connect with the customer at the earliest.</p>
<p>Regards,<br>CC - EPS</p>
<p><strong>Disclaimer:</strong> This is a system-generated email. Please do not reply to this mail.</p>
</body>
</html>";
// 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<ConsolidatedReportModelClosed> ClosedConsolidatedDataReport(TicketRequestModel model)
{
TicketRequestModel objModel = new TicketRequestModel();
List<ConsolidatedReportModelClosed> objList = new List<ConsolidatedReportModelClosed>();
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<string>("_ticket_id"),
customer_name = s.Field<string>("_customer_name"),
customer_contact_no = s.Field<string>("_customer_contact_no"),
vehicle_type = s.Field<string>("_vehicle_type"),
chassis_number = s.Field<string>("_chassis_number"),
//vehicle_instalation_date = Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
vehicle_instalation_date = s.Field<string>("_vehicle_instalation_date"),// String.IsNullOrEmpty(s.Field<string>("_vehicle_instalation_date")) ? "NA" : (Convert.ToDateTime(s.Field<string>("_vehicle_instalation_date")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateFormat"])),
breakdown_location = s.Field<string>("_breakdown_location"),
default_sla_time = s.Field<string>("_default_sla_time"),
//response = s.Field<string>("_response"),
response = s.Field<string>("_response") == null || Convert.ToInt32(s.Field<string>("_response")) <= 0 ? "0" : s.Field<string>("_response"),
eos_team_member_and_van = s.Field<string>("_eos_team_member_and_van"),
dealer_name = s.Field<string>("_dealer_name"),
dealer_contact_no = s.Field<string>("_dealer_contact_no"),
created_by = s.Field<string>("_created_by"),
creation_time = Convert.ToDateTime(s.Field<DateTime?>("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
state = s.Field<string>("_state"),
city = s.Field<string>("_city"),
month_name = s.Field<string>("_month_name"),
time_slot = s.Field<string>("_time_slot"),
open_call_hrs = s.Field<string>("_open_call_hrs"),
language_name = s.Field<string>("_language_name"),
region = s.Field<string>("_region"),
landmark = s.Field<string>("_landmark"),
dealer_code = s.Field<string>("_dealer_code"),
warranty = s.Field<string>("_warranty"),
vehicle_model = s.Field<string>("_vehicle_model"),
load_carried = s.Field<string>("_load_carried"),
type_of_load_carried = s.Field<string>("_type_of_load_carried"),
call_assigned_to = s.Field<string>("_call_assigned_to"),
owner_name = s.Field<string>("_owner_name"),
owner_contact_number = s.Field<string>("_owner_contact_number"),
customer_vehicle_regn_no = s.Field<string>("_customer_vehicle_regn_no"),
nature_of_problem = s.Field<string>("_nature_of_problem"),
closure_remarks = s.Field<string>("_closure_remarks"),
estimated_cost = s.Field<string>("_estimated_cost"),
estimated_time = s.Field<string>("_estimated_time"),
time_stamps_status_1 = s.Field<string>("_time_stamps_status_1") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_1")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_2 = s.Field<string>("_time_stamps_status_2") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_2")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_3 = s.Field<string>("_time_stamps_status_3") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_3")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_4 = s.Field<string>("_time_stamps_status_4") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_4")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
time_stamps_status_5 = s.Field<string>("_time_stamps_status_5") != null ? Convert.ToDateTime(s.Field<string>("_time_stamps_status_5")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
escalation_level_van_not_move_1 = s.Field<string>("_escalation_level_van_not_move_1"),
escalation_level_van_not_move_2 = s.Field<string>("_escalation_level_van_not_move_2"),
escalation_level_van_not_move_3 = s.Field<string>("_escalation_level_van_not_move_3"),
escalation_level_van_not_move_4 = s.Field<string>("_escalation_level_van_not_move_4"),
escalation_level_van_not_move_5 = s.Field<string>("_escalation_level_van_not_move_5"),
escalation_level_van_not_move_6 = s.Field<string>("_escalation_level_van_not_move_6"),
escalation_level_van_not_move_7 = s.Field<string>("_escalation_level_van_not_move_7"),
escalation_level_van_not_move_8 = s.Field<string>("_escalation_level_van_not_move_8"),
escalation_level_van_not_move_9 = s.Field<string>("_escalation_level_van_not_move_9"),
escalation_level_van_not_move_10 = s.Field<string>("_escalation_level_van_not_move_10"),
escalation_level_ticket_closer_1 = s.Field<string>("_escalation_level_ticket_closer_1"),
escalation_level_ticket_closer_2 = s.Field<string>("_escalation_level_ticket_closer_2"),
escalation_level_ticket_closer_3 = s.Field<string>("_escalation_level_ticket_closer_3"),
escalation_level_ticket_closer_4 = s.Field<string>("_escalation_level_ticket_closer_4"),
escalation_level_ticket_closer_5 = s.Field<string>("_escalation_level_ticket_closer_5"),
escalation_level_ticket_closer_6 = s.Field<string>("_escalation_level_ticket_closer_6"),
escalation_level_ticket_closer_7 = s.Field<string>("_escalation_level_ticket_closer_7"),
escalation_level_ticket_closer_8 = s.Field<string>("_escalation_level_ticket_closer_8"),
escalation_level_ticket_closer_9 = s.Field<string>("_escalation_level_ticket_closer_9"),
escalation_level_ticket_closer_10 = s.Field<string>("_escalation_level_ticket_closer_10"),
call_closure_status = s.Field<string>("_call_closure_status"),
feedback_taken = s.Field<string>("_feedback_taken"),
feedback_parameter_wise_score = s.Field<string>("_feedback_parameter_wise_score"),
feedback_ease_of_getting_call = s.Field<string>("_feedback_ease_of_getting_call"),
feedback_response_of_call_center = s.Field<string>("_feedback_response_of_call_center"),
feedback_timely_updation_by_dealer = s.Field<string>("_feedback_timely_updation_by_dealer"),
feedback_total_repair_time = s.Field<string>("_feedback_total_repair_time"),
feedback_eos_charges = s.Field<string>("_feedback_eos_charges"),
feedback_over_all_experience = s.Field<string>("_feedback_over_all_experience"),
other_remarks = s.Field<string>("_other_remarks"),
feedback_agent = s.Field<string>("_feedback_agent"),
how_did_you_come_to_know_of_eos = s.Field<string>("_how_did_you_come_to_know_of_eos"),
total_inbound_calls = s.Field<string>("_total_inbound_calls"),
total_outbound_calls = s.Field<string>("_total_outbound_calls"),
vehicle_name = s.Field<string>("_customer_vehicle_name"),
organization = s.Field<string>("organization_alias"),
call_status = s.Field<string>("_call_status"),
complaints = s.Field<string>("_complaints"),
suggestion = s.Field<string>("_suggestion"),
feedback_count = s.Field<Int32?>("_feedback_count").ToString(),
ticketid_alias = s.Field<string>("_ticket_id_alias"),
wm_name = s.Field<string>("_wm_name"),
DealerTicketOtherRemark = s.Field<string>("_other_remarks_for_dealer"),
KmCovered = s.Field<string>("_km_covered"),
estimated_distance = s.Field<string>("_estimated_distance"),
van_covered_distance = s.Field<string>("_van_covered_distance"),
trip_start_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_start_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
trip_end_time = Convert.ToDateTime(s.Field<DateTime?>("_trip_end_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
_call_closed_within_24_hours = s.Field<string>("_call_closed_within_24_hours"),
_eicher_promise = s.Field<string>("_eicher_promise"),
opportunity_loss_remark = s.Field<string>("_opportunity_loss_remark"),
opportunity_loss = s.Field<string>("_opportunity_loss"),
remark_ticket_not_closed_24_hours = s.Field<string>("_remark_ticket_not_closed_24_hours"),
reopen_count = s.Field<int>("_reopen_count"),
remark_ticket_not_closed_24_hours_remarks = s.Field<string>("_remark_ticket_not_closed_24_hours_remarks"),
opportunity_lost_remarks = s.Field<string>("_opportunity_lost_remarks"),
ChassisNo = s.Field<string>("_vehicle_chassis_number"),
OdometerReading = s.Field<double>("_odometer_reading"),
//added for consolidate report
last_Updated_Time = s.Field<DateTime?>("_last_modified_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_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<bool?>("_are_you_satisfied") == true ? "Yes" : s.Field<bool?>("_are_you_satisfied") != null && s.Field<bool?>("_are_you_satisfied") == false ? "No" : null,
not_satisfied_option = s.Field<string>("_not_satisfied_selected_option"),
not_satisfied_reason = s.Field<string>("_not_satisfied_reason"),
response_time_reassignment = s.Field<double?>("_response_time_reassignment"),
//added on 14-12-2020
vehicle_warranty = s.Field<string>("_vehicle_warranty"),
vehicle_amc = s.Field<string>("_vehicle_amc"),
vehicle_emission_norms = s.Field<string>("_vehicle_emission_norms"),
vehicle_sales_date = s.Field<string>("_vehicle_sales_date"),
van_reached_punch_time = s.Field<DateTime?>("_van_reached_punch_time") == null ? "" : Convert.ToDateTime(s.Field<DateTime?>("_van_reached_punch_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]), //added on 23-12-2020
location_change_time = s.Field<DateTime?>("_location_change_time") != null ? Convert.ToDateTime(s.Field<DateTime?>("_location_change_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : null,
is_location_change = s.Field<string>("_is_location_change"),
dealer_change_reason = s.Field<string>("_dealer_change_reason"),
dealer_change_reason_other_remark = s.Field<string>("_dealer_change_reason_other_remark"),
vehicle_status = s.Field<string>("_vehicle_status"),
//------ added on 25-11-2020 start--------------
ticket_closed_reason = s.Field<string>("_ticket_closed_reason"),
fuel_type = s.Field<string>("_product_variant"),
breakdown_latitude = s.Field<string>("_brk_lat"),
breakdown_longitude = s.Field<string>("_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 = "";
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>EPS Ticket</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Ticket Created At</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Ticket Region/Dealer</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Nature of Problem</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Cx Contact Number</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Engine Number</th>
//<th style='border:1px solid black;color: #003366; padding:5px; text-align:center;'>Product Type</th>
if (objModel.Product_type.ToLower() == "harvester")
{
body = @"
<html>
<body style='font-family:Calibri, sans-serif; font-size:10pt;'>
<p>Dear Team,</p>
<p>Greetings!</p>
<p>This is to inform you that a new ticket has been created with the following details:</p>
<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse; width:730px; table-layout:fixed;'>
<tr style='background-color:#f2f2f2;'>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>EPS Ticket</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:120px;'>Ticket Created At</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Dealer Name</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Nature of Problem</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Cx Contact Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>Engine Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Product Type</th>
</tr>
<tr>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert ticket id]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert Creation time]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Dealer Code]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[NATURE_OF_PROBLEM]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[CX_CONTACT]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[ENGINE_NO]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[PRODUCT_TYPE]</td>
</tr>
</table>
<p> Kindly take this forward on priority and initiate the necessary actions to resolve the issue promptly.
Your swift attention to this matter is appreciated.
</p>
<p>Please keep the relevant stakeholders informed about the progress.</p>
<p>Regards,<br>Eicher Power Solutions</p>
<p><strong>Disclaimer:</strong> This is a system-generated email. Please do not reply to this mail.</p>
</body>
</html>";
// 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 = @"
<html>
<body style='font-family:Calibri, sans-serif; font-size:10pt;'>
<p>Dear Team,</p>
<p>Greetings!</p>
<p>This is to inform you that a new ticket has been created with the following details:</p>
<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse; width:730px; table-layout:fixed;'>
<tr style='background-color:#f2f2f2;'>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>EPS Ticket</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:120px;'>Ticket Created At</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Ticket Region</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Nature of Problem</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Cx Contact Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>Engine Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Product Type</th>
</tr>
<tr>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert ticket id]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert Creation time]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Dealer Code]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[NATURE_OF_PROBLEM]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[CX_CONTACT]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[ENGINE_NO]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[PRODUCT_TYPE]</td>
</tr>
</table>
<p> Kindly take this forward on priority and initiate the necessary actions to resolve the issue promptly.
Your swift attention to this matter is appreciated.
</p>
<p>Please keep the relevant stakeholders informed about the progress.</p>
<p>Regards,<br>Eicher Power Solutions</p>
<p><strong>Disclaimer:</strong> This is a system-generated email. Please do not reply to this mail.</p>
</body>
</html>";
// 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 = @"
<html>
<body style='font-family:Calibri, sans-serif; font-size:10pt;'>
<p>Dear Team,</p>
<p>Greetings!</p>
<p>This is to confirm that the following ticket has been successfully resolved and closed:</p>
<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse; width:730px; table-layout:fixed;'>
<tr style='background-color:#f2f2f2;'>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>EPS Ticket</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:120px;'>Ticket Created At</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Dealer Name</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Nature of Problem</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Cx Contact Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>Engine Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Product Type</th>
</tr>
<tr>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert ticket id]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert Creation time]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Dealer Code]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[NATURE_OF_PROBLEM]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[CX_CONTACT]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[ENGINE_NO]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[PRODUCT_TYPE]</td>
</tr>
</table>
<p> We appreciate the timely support and coordination extended to resolve this matter.</p>
<p>Regards,<br>Eicher Power Solutions</p>
<p><strong>Disclaimer:</strong> This is a system-generated email. Please do not reply to this mail.</p>
</body>
</html>";
// 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 = @"
<html>
<body style='font-family:Calibri, sans-serif; font-size:10pt;'>
<p>Dear Team,</p>
<p>Greetings!</p>
<p>This is to confirm that the following ticket has been successfully resolved and closed:</p>
<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse; width:730px; table-layout:fixed;'>
<tr style='background-color:#f2f2f2;'>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>EPS Ticket</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:120px;'>Ticket Created At</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Ticket Region</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Nature of Problem</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:110px;'>Cx Contact Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:105px;'>Engine Number</th>
<th style='font-size:10pt; border:1px solid black; color:#003366; padding:5px; text-align:center; width:90px;'>Product Type</th>
</tr>
<tr>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert ticket id]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Insert Creation time]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[Dealer Code]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[NATURE_OF_PROBLEM]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[CX_CONTACT]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[ENGINE_NO]</td>
<td style='font-size:10pt; border:1px solid black; padding:5px; text-align:center;'>[PRODUCT_TYPE]</td>
</tr>
</table>
<p> We appreciate the timely support and coordination extended to resolve this matter.</p>
<p>Regards,<br>Eicher Power Solutions</p>
<p><strong>Disclaimer:</strong> This is a system-generated email. Please do not reply to this mail.</p>
</body>
</html>";
// 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
}
}