namespace VECV_WebApi.Models.Sync
{
#region Namespaces
using DBHelper;
using LoggingHelper;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using VECV_WebApi.Models.Authorization;
using VECV_WebApi.Models.Ticket;
#endregion
#region Repository Class
///
/// This class contains method related to syncing
///
public class SyncRepository
{
#region Global Variables
///
/// making object of LoggingUtility class available to this class
///
LoggingUtility objLog = new LoggingUtility();
///
/// making the data-log file path available to this class
///
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
///
/// making error log file path available to this class
///
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
///
/// making the Database connection string available to this class
///
private string _connStr;
///
/// making Authentication Repository object available to this class
///
AuthenticationRepository objAuthorization;
#endregion
#region Contructors
///
/// Default constructor intialize connection string of vecv_godata database
///
public SyncRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
///
/// To get synced open tickets details device alias wise
///
/// open ticket sync info
/// status and synced open tickets details device alias wise
public List GetSyncOpenTicketDetail(SyncOpenModel model)
{
List objListSync = new List();
SyncOpenModel objModelSync = new SyncOpenModel();
List objListCustomerOpenTicketDetail = new List();
List objListOpenTicketActivityTicket = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet ds = new DataSet();
DataSet dsActivity = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2];
nSqlParam[0] = new NpgsqlParameter("indevice_alias", model.DeviceAlias);
nSqlParam[1] = new NpgsqlParameter("db_syn_last_time", model.DbSynLastTime);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_open"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
// get open tciket details for android syn from last syn time
objListCustomerOpenTicketDetail = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field("breakdown_location"),
BreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
EstimatedDistance = s.Field("estimated_distance"),
TicketIdAlias = s.Field("_ticket_id_alias"),
ChassisNumber = s.Field("_chassis_number"),
OdometerReading = s.Field("_odometer_reading"),
}).ToList();
string TicketId = "";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (i == 0)
{
TicketId = ds.Tables[0].Rows[i]["ticket_id"].ToString();
}
else
{
TicketId = TicketId + "," + ds.Tables[0].Rows[i]["ticket_id"].ToString();
}
}
// Get ticket activity ticket wise.
nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inticket_id", TicketId);
dsActivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_open_ticket_activity"], nSqlParam);
if (dsActivity.Tables[0].Rows.Count > 0)
{
objListOpenTicketActivityTicket = dsActivity.Tables[0].AsEnumerable().Select(s => new TicketActivityOpenModel
{
Id = s.Field("id"),
TicketId = s.Field("ticket_id"),
ActivityTicketsOpenCreatedBy = s.Field("created_by"),
ActivityTicketsOpenCreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Remarks = s.Field("remarks"),
TicketActivityStatus = s.Field("ticket_activity_status")
}).ToList();
}
// add ticket list and activity in syn model.
objListSync.Add(new SyncOpenModel
{
TicketOpenList = objListCustomerOpenTicketDetail,
TicketActivityOpenList = objListOpenTicketActivityTicket,
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "1"
});
return objListSync;
}
else
{
objListSync.Add(new SyncOpenModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "1",
Message = ConfigurationManager.AppSettings["DataSetEmpty"].ToString()
});
return objListSync;
}
}
else
{
objListSync.Add(new SyncOpenModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString()
});
return objListSync;
}
}
catch (Exception Ex)
{
objListSync.Add(new SyncOpenModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = Ex.Message
});
objLog.ErrorLogFile("GetSyncOpenTicketDetail", Ex.Message, path, errorlogtf);
return objListSync;
}
}
///
/// To get close tickets detail device alias wise
///
/// close ticket sync info
/// status and close tickets detail device alias wise
public List GetSyncCloseTicketDetail(SyncCloseModel model)
{
List objListSync = new List();
SyncCloseModel objModelSync = new SyncCloseModel();
List objListCustomerOpenTicketDetail = new List();
List objListOpenTicketActivityTicket = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet ds = new DataSet();
DataSet dsActivity = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2];
nSqlParam[0] = new NpgsqlParameter("indevice_alias", model.DeviceAlias);
nSqlParam[1] = new NpgsqlParameter("db_syn_last_time", model.DbSynLastTime);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_closed"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objListCustomerOpenTicketDetail = ds.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field("breakdown_location"),
BreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
EstimatedDistance = s.Field("estimated_distance")
}).ToList();
string TicketId = "";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (i == 0)
{
TicketId = ds.Tables[0].Rows[i]["ticket_id"].ToString();
}
else
{
TicketId = TicketId + "," + ds.Tables[0].Rows[i]["ticket_id"].ToString();
}
}
nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inticket_id", TicketId);
dsActivity = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_close_ticket_activity"], nSqlParam);
if (dsActivity.Tables[0].Rows.Count > 0)
{
objListOpenTicketActivityTicket = dsActivity.Tables[0].AsEnumerable().Select(s => new TicketActivityCloseModel
{
Id = s.Field("id"),
TicketId = s.Field("ticket_id"),
ActivityTicketsOpenCreatedBy = s.Field("created_by"),
ActivityTicketsOpenCreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Remarks = s.Field("remarks"),
TicketActivityStatus = s.Field("ticket_activity_status")
}).ToList();
}
objListSync.Add(new SyncCloseModel
{
TicketCloseList = objListCustomerOpenTicketDetail,
TicketActivityCloseList = objListOpenTicketActivityTicket,
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "1"
});
return objListSync;
}
else
{
objListSync.Add(new SyncCloseModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "1",
Message = ConfigurationManager.AppSettings["DataSetEmpty"].ToString()
});
return objListSync;
}
}
else
{
objListSync.Add(new SyncCloseModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString()
});
return objListSync;
}
}
catch (Exception Ex)
{
objListSync.Add(new SyncCloseModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = Ex.Message
});
objLog.ErrorLogFile("GetSyncCloseTicketDetail", Ex.Message, path, errorlogtf);
return objListSync;
}
}
///
/// To get Sync detail of open and close ticket
///
/// ticket info
/// status and Sync detail of open and close ticket
public List GetSyncTicketDetail(SyncModel model)
{
List objListSync = new List();
SyncOpenModel objModelSyncOpen = new SyncOpenModel();
SyncCloseModel objModelSyncClose = new SyncCloseModel();
List objListCustomerOpenTicketDetail = new List();
List objListOpenTicketActivityTicket = new List();
List objListCustomerCloseTicketDetail = new List();
List objListCloseTicketActivityTicket = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet dsTicketOpen = new DataSet();
DataSet dsActivityOpen = new DataSet();
DataSet dsTicketClose = new DataSet();
DataSet dsActivityClose = 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("db_syn_last_time", model.DbSynLastTime);
dsTicketOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_open"], nSqlParam);
dsTicketClose = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_closed"], nSqlParam);
#region open Ticket
if (dsTicketOpen.Tables[0].Rows.Count > 0)
{
objListCustomerOpenTicketDetail = dsTicketOpen.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString("dd MMM yyy HH:mm:ss"),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).ToString("dd MMM yyy HH:mm:ss"),
BreakdownLocation = s.Field("breakdown_location"),
BreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString("dd MMM yyy HH:mm:ss"),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
RepairCost = s.Field("repair_cost"),
DefaultSlaTime = s.Field("default_sla_time"),
SlaMissedReason = s.Field("sla_missed_reason"),
SuggestionComment = s.Field("suggestion_comment"),
JobCompleteResponseTime = s.Field("default_col_1"),
DefaultCol2 = s.Field("default_col_2"),
DefaultCol3 = s.Field("default_col_3"),
EstimatedDistance = s.Field("estimated_distance"),
Owner_Contact_no = s.Field("_owner_contact_no"),
TicketIdAlias = s.Field("_ticket_id_alias"),
IsTripEnd = s.Field("_trip_end"),
ChassisNumber = s.Field("_chassis_number"),
OdometerReading = s.Field("_odometer_reading"),
VehicleType = s.Field("_vehicle_type"),
PreviousOdometerReading = s.Field("_previous_odometer_reading"),
//--------added on 31-12-2020 start------------------
VehicleWarranty = s.Field("_vehicle_warranty") == null ? "" : s.Field("_vehicle_warranty"),
VehicleAMC = s.Field("_vehicle_amc") == null ? "" : s.Field("_vehicle_amc"),
VehicleSalesDate = s.Field("_vehicle_sales_date"),
TicketSource = s.Field("_toll_free_no_source") == null ? "" : s.Field("_toll_free_no_source"),
OwnerName = s.Field("_owner_name") == null ? "" : s.Field("_owner_name"),
CustomerId = s.Field("_customer_id") == null ? "" : s.Field("_customer_id"),
CustomerType = s.Field("_customer_type") == null ? "" : s.Field("_customer_type"),
// priya 15 oct 2022
IsTripStart = s.Field("istripstart"),
IsKam = s.Field("_is_kam"),
Product_Variant = s.Field("_product_variant"),
Vehicle_Emission_Norms = s.Field("_vehicle_emission_norms")
//--------added on 31-12-2020 end------------------
}).ToList();
}
#endregion
#region Close Ticket
if (dsTicketClose.Tables[0].Rows.Count > 0)
{
objListCustomerCloseTicketDetail = dsTicketClose.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field("breakdown_location"),
BreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
RepairCost = s.Field("repair_cost"),
DefaultSlaTime = s.Field("default_sla_time"),
SlaMissedReason = s.Field("sla_missed_reason"),
SuggestionComment = s.Field("suggestion_comment"),
JobCompleteResponseTime = s.Field("default_col_1"),
DefaultCol2 = s.Field("default_col_2"),
DefaultCol3 = s.Field("default_col_3"),
EstimatedDistance = s.Field("estimated_distance"),
Owner_Contact_no = s.Field("_owner_contact_no"),
TicketIdAlias = s.Field("_ticket_id_alias"),
IsTripEnd = s.Field("_trip_end"),
ChassisNo = s.Field("_chassis_number"),
//OdoMeter = s.Field("_odometer_reading"), //commented existing condition on 31-12-2020
OdometerReading = s.Field("_odometer_reading"), //added condition on 31-12-2020
VehicleType = s.Field("_vehicle_type"),
PreviousOdometerReading = s.Field("_previous_odometer_reading"),
//--------added on 31-12-2020 start------------------
VehicleWarranty = s.Field("_vehicle_warranty") == null ? "" : s.Field("_vehicle_warranty"),
VehicleAMC = s.Field("_vehicle_amc") == null ? "" : s.Field("_vehicle_amc"),
VehicleSalesDate = s.Field("_vehicle_sales_date"),
TicketSource = s.Field("_toll_free_no_source") == null ? "" : s.Field("_toll_free_no_source"),
OwnerName = s.Field("_owner_name") == null ? "" : s.Field("_owner_name"),
CustomerId = s.Field("_customer_id") == null ? "" : s.Field("_customer_id"),
CustomerType = s.Field("_customer_type") == null ? "" : s.Field("_customer_type"),
// Added by priya 21102022
IsTripStart = s.Field("istripstart"),
IsKam = s.Field("_is_kam"),
//--------added on 31-12-2020 end------------------
}).ToList();
}
#endregion
objListSync.Add(new SyncModel
{
TicketOpenList = objListCustomerOpenTicketDetail,
// TicketActivityOpenList = objListOpenTicketActivityTicket,
TicketCloseList = objListCustomerCloseTicketDetail,
// TicketActivityCloseList = objListCloseTicketActivityTicket,
DeviceAlias = model.DeviceAlias,
// DbSynLastTime = string.Format("{yyyy-MM-dd hh:mm:ss}", DateTime.UtcNow),
DbSynLastTime = DateTime.UtcNow.ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
Status = "1"
});
return objListSync;
}
else
{
objListSync.Add(new SyncModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString()
});
return objListSync;
}
}
catch (Exception Ex)
{
objListSync.Add(new SyncModel
{
DeviceAlias = model.DeviceAlias,
DbSynLastTime = model.DbSynLastTime,
Status = "0",
Message = Ex.Message
});
objLog.ErrorLogFile("GetSyncTicketDetail", Ex.Message, path, errorlogtf);
return objListSync;
}
}
///
/// To get Sync detail of open and close ticket for dealer
///
/// ticket info
/// status and Sync detail of open and close ticket
public List GetSyncTicketDetail_Dealer(SyncModel model)
{
List objListSync = new List();
SyncOpenModel objModelSyncOpen = new SyncOpenModel();
SyncCloseModel objModelSyncClose = new SyncCloseModel();
List objListCustomerOpenTicketDetail = new List();
List objListOpenTicketActivityTicket = new List();
List objListCustomerCloseTicketDetail = new List();
List objListCloseTicketActivityTicket = new List();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet dsTicketOpen = new DataSet();
DataSet dsActivityOpen = new DataSet();
DataSet dsTicketClose = new DataSet();
DataSet dsActivityClose = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2];
nSqlParam[0] = new NpgsqlParameter("indealer_code", model.DealerCode);
nSqlParam[1] = new NpgsqlParameter("db_syn_last_time", model.DbSynLastTime);
dsTicketOpen = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_open_dealer"], nSqlParam);
dsTicketClose = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_syn_android_db_ticket_closed_dealer"], nSqlParam);
#region open Ticket
if (dsTicketOpen.Tables[0].Rows.Count > 0)
{
objListCustomerOpenTicketDetail = dsTicketOpen.Tables[0].AsEnumerable().Select(s => new CustomerOpenTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = Convert.ToDateTime(s.Field("creation_time")).ToString("dd MMM yyy HH:mm:ss"),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = Convert.ToDateTime(s.Field("last_modified_time")).ToString("dd MMM yyy HH:mm:ss"),
BreakdownLocation = s.Field("breakdown_location"),
BreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString("dd MMM yyy HH:mm:ss"),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
RepairCost = s.Field("repair_cost"),
DefaultSlaTime = s.Field("default_sla_time"),
SlaMissedReason = s.Field("sla_missed_reason"),
SuggestionComment = s.Field("suggestion_comment"),
JobCompleteResponseTime = s.Field("default_col_1"),
DefaultCol2 = s.Field("default_col_2"),
DefaultCol3 = s.Field("default_col_3"),
EstimatedDistance = s.Field("estimated_distance"),
Owner_Contact_no = s.Field("_owner_contact_no"),
TicketIdAlias = s.Field("_ticket_id_alias")
}).ToList();
}
#endregion
#region Close Ticket
if (dsTicketClose.Tables[0].Rows.Count > 0)
{
objListCustomerCloseTicketDetail = dsTicketClose.Tables[0].AsEnumerable().Select(s => new CustomerCloseTicketDetail
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field