namespace VECV_WebApi.Models.Dealer
{
#region Namespaces
using DBHelper;
using LoggingHelper;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using VECV_WebApi.Models.Authorization;
using VECV_WebApi.Models.Dashboard;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.ServiceEngineer;
using VECV_WebApi.Models.Sync;
//using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.User;
#endregion
#region Repository Class
///
/// This class contain dealer releted methods
///
public class DealerRepository
{
#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 database
///
public DealerRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
///
/// To get dealer detail with its position details
///
/// dealer info
/// status and dealer detail with its position details
public List GetDealerPositionDetail(GetDealerPositionModel model)
{
List objListModel = new List();
DealerPositionModel objModel = new DealerPositionModel();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet ds = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[5];
nSqlParam[0] = new NpgsqlParameter("instate", model.State);
nSqlParam[1] = new NpgsqlParameter("incity", model.City);
nSqlParam[2] = new NpgsqlParameter("indealer_id", model.DealerId);
nSqlParam[3] = new NpgsqlParameter("insla_id", model.SlaId);
nSqlParam[4] = new NpgsqlParameter("inorganization", model.RegionId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_postion_details"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objListModel = ds.Tables[0].AsEnumerable().Select(s => new DealerPositionModel
{
DealerId = s.Field("dealer_id"),
OrganizationId = s.Field("dealer_organization_id"),
DealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerDefaultLatitude = s.Field("dealer_dealer_default_lattitude"),
DealerDefaultLongitude = s.Field("dealer_dealer_default_longitude"),
OrganizationName = s.Field("_organization_name"),
OrganizationAlias = s.Field("_organization_organization_alias"),
OrganizationCity = s.Field("_organization_organization_city"),
OrganizationState = s.Field("_organization_organization_state"),
OrganizationCountry = s.Field("_organization_organization_country"),
OrganizationPath = s.Field("_organization_organization_path"),
OrganizationDepth = s.Field("_organization_organization_depth"),
}).ToList();
}
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
objListModel.Add(objModel);
}
}
catch (Exception Ex)
{
// writing error logs
objLog.ErrorLogFile("GetCustomerDetails", Ex.Message, path, errorlogtf);
objModel.Status = "0";
objModel.Message = Ex.Message;
objListModel.Add(objModel);
}
return objListModel;
}
///
/// To get open ticket detail of dealer
///
/// dealer info
/// status and open ticket detail of dealer
public List GetDealerOpenTicketDetail(DealerOpenTicketDetailModel model)
{
DealerOpenTicketDetailModel objModel = new DealerOpenTicketDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_open_ticket_details_new"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new DealerOpenTicketDetailModel
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field("breakdown_location"),
DreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
RepairCost = s.Field("repair_cost"),
DefaultSlTtime = s.Field("default_sla_time"),
SlaMissedReason = s.Field("sla_missed_reason"),
SuggestionComment = s.Field("suggestion_comment"),
TicketStatusAlias = s.Field("ticket_status_alias"),
JobCompleteResponseTime = s.Field("default_col_1"),
DefaultCol2 = s.Field("default_col_2"),
DefaultCol3 = s.Field("default_col_3"),
TicketIdAlias = s.Field("_ticket_id_alias"),
TollFreeNoSource= s.Field("_toll_free_no_source")
}).ToList();
}
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objList;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerOpenTicketDetail", Ex.Message, path, errorlogtf);
return objList;
}
}
///
/// To get close ticket detail of dealer
///
/// dealer info
/// status and close ticket detail of dealer
public List GetDealerCloseTicketDetail(DealerCloseTicketDetailModel model)
{
DealerCloseTicketDetailModel objModel = new DealerCloseTicketDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_close_ticket_details_new"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new DealerCloseTicketDetailModel
{
TicketId = s.Field("ticket_id"),
Description = s.Field("description"),
AssignedTo = s.Field("assigned_to"),
ReportedVia = s.Field("reported_via"),
TicketStatus = s.Field("ticket_status"),
Priority = s.Field("priority"),
CustomerScore = s.Field("customer_score"),
CreatedBy = s.Field("created_by"),
CreationTime = s.Field("creation_time") != null ? Convert.ToDateTime(s.Field("creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
LastModifiedBy = s.Field("last_modified_by"),
LastModifiedTime = s.Field("last_modified_time") != null ? Convert.ToDateTime(s.Field("last_modified_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("last_modified_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BreakdownLocation = s.Field("breakdown_location"),
DreakdownLongitude = s.Field("breakdown_longitude"),
BreakdownLattitude = s.Field("breakdown_lattitude"),
AssignedToUserId = s.Field("assigned_to_user_id"),
AssignedToUserLattitude = s.Field("assigned_to_user_lattitude"),
AssignedToUserLongitude = s.Field("assigned_to_user_longitude"),
Isdeclined = s.Field("isdeclined"),
EstimatedTimeForJobCompletion = s.Field("estimated_time_for_job_completion"),
TotalTicketLifecycleTimeSla = s.Field("total_ticket_lifecycle_time_sla"),
EstimatedTimeForJobCompletionSubmitTime = s.Field("estimated_time_for_job_completion_submit_time") != null ? Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("estimated_time_for_job_completion_submit_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
VehicleRegisterNumber = s.Field("vehicle_register_number"),
BreakdownLocationLandmark = s.Field("breakdown_location_landmark"),
RouteId = s.Field("route_id"),
CustomerContactNo = s.Field("customer_contact_no"),
RepairCost = s.Field("repair_cost"),
DefaultSlTtime = s.Field("default_sla_time"),
SlaMissedReason = s.Field("sla_missed_reason"),
SuggestionComment = s.Field("suggestion_comment"),
TicketStatusAlias = s.Field("ticket_status_alias"),
JobCompleteResponseTime = s.Field("default_col_1"),
DefaultCol2 = s.Field("default_col_2"),
DefaultCol3 = s.Field("default_col_3"),
TicketIdAlias = s.Field("_ticket_id_alias"),
TollFreeNoSource = s.Field("_toll_free_no_source")
}).ToList();
}
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objList;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerCloseTicketDetail", Ex.Message, path, errorlogtf);
return objList;
}
}
///
/// To get dealer notification list
///
/// dealer info
/// status and dealer notification list
public List GetDealerNortification(DealerNortificationModel model)
{
DealerNortificationModel objModel = new DealerNortificationModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inuser_id", model.UserId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_nortification"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new DealerNortificationModel
{
TicketId = s.Field("_ticket_id"),
TicketIdAlias = s.Field("_ticket_id_alias"),
TicketStatus = s.Field("_ticket_status"),
TicketStatusAlias = s.Field("_ticket_status_alias"),
NotificationTime = s.Field("_notification_time") != null ? Convert.ToDateTime(s.Field("_notification_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_notification_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
DealerDealerName = s.Field("dealer_dealer_name"),
VanId = s.Field("van_id"),
VanRegistrationNumber = s.Field("van_registration_number"),
ServiceEngineerName = s.Field("_service_engineer_name"),
CreatedBy = s.Field("_created_by"),
AssignedTo = s.Field("_assigned_to"),
NotificationId = s.Field("_notification_id"),
CreationTime = Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(Convert.ToInt16(model.UtcMinute)).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
}).ToList();
}
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objList;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerNortificationModel", Ex.Message, path, errorlogtf);
return objList;
}
}
///
/// To get child dealer list for a principal dealer
///
/// principal dealer info
/// status and child dealer list for a principal dealer
public DealerDetailModel GetChildDealerships(DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inid", model.DealerId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_child"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new DealerChildPrincipalModel
{
DealerId = s.Field("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id").ToString(),
DealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerLatitude = s.Field("dealer_dealer_default_lattitude"),
DealerLongitude = s.Field("dealer_dealer_default_longitude"),
DealerContact1 = s.Field("dealer_contact_number1"),
DealerContact2 = s.Field("dealer_contact_number2")
}).ToList();
}
objModel.DealerChildPrincipalList = objList;
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetChildDealerships", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To get principal delership details
///
/// principal dealer info
/// status and principal delership details
public DealerDetailModel GetPrincipalDealershipDetails(DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inid", model.DealerId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_principal"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
objList = ds.Tables[0].AsEnumerable().Select(s => new DealerChildPrincipalModel
{
DealerId = s.Field("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id").ToString(),
DealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerLatitude = s.Field("dealer_dealer_default_lattitude"),
DealerLongitude = s.Field("dealer_dealer_default_longitude"),
DealerContact1 = s.Field("dealer_contact_number1"),
DealerContact2 = s.Field("dealer_contact_number2")
}).ToList();
}
objModel.DealerChildPrincipalList = objList;
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetChildDealerships", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To get dealer complete detail
///
/// dealer info
/// status and dealer complete detail
public DealerDetailModel GetDealerDetailDealerIdWise(DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indealer_id", model.DealerId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_service_engg_dealer_id_wise"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
foreach (string dealerid in ds.Tables[0].AsEnumerable().Select(s => s.Field("dealer_id")).Distinct())
{
objModel.DealerId = dealerid;
objModel.DealerCity = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_city")).First();
objModel.DealerContactNo = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_contact_number1")).First();
objModel.DealerDealerDefaultLattitude = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_dealer_default_lattitude")).First();
objModel.DealerDealerDefaultLongitude = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_dealer_default_longitude")).First();
objModel.DealerDealerName = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_dealer_name")).First();
objModel.DealerOrganizationId = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_organization_id")).First();
objModel.DealerState = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_state")).First();
objModel.OrganizationAlias = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_alias")).First();
objModel.OrganizationCity = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_city")).First();
objModel.OrganizationColor = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_color")).First();
objModel.OrganizationCountry = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_country")).First();
objModel.OrganizationDepth = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_depth")).First();
objModel.OrganizationDescription = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_description")).First();
//objModel.OrganizationId = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_state")).First();
objModel.OrganizationName = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_name")).First();
objModel.OrganizationPath = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_path")).First();
objModel.OrganizationRegion = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_region")).First();
objModel.OrganizationState = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("_organization_organization_state")).First();
objModel.DealerContactNo2 = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_contact_number2")).First();
objModel.IsDeleted = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => s.Field("dealer_isdeleted")).First();
objModel.VanList = ds.Tables[0].AsEnumerable().Where(w => w.Field("dealer_id").Equals(dealerid)).Select(s => new VanDetailModel
{
ServiceEngineerAlias = s.Field("service_engineer_alias"),
ServiceEngineerApplicationLicenseKey = s.Field("service_engineer_application_license_key"),
ServiceEngineerContactNumber = s.Field("service_engineer_contact_number"),
ServiceEngineerDeviceAlias = s.Field("service_engineer_device_alias"),
ServiceEngineerId = s.Field("service_engineer_id"),
ServiceEngineerImeiNumber = s.Field("service_engineer_imei_number"),
ServiceEngineerMobileApplicationBlocked = s.Field("service_engineer_mobile_application_blocked"),
ServiceEngineerName = s.Field("_service_engineer_name"),
ServiceEngineerPinPassword = s.Field("service_engineer_pin_password"),
ServiceEngineerVanServiceEngineerId = s.Field("service_engineer_van_service_engineer_id"),
ServiceEngineerVanVanId = s.Field("service_engineer_van_van_id"),
VanAlias = s.Field("van_alias"),
VanCity = s.Field("van_city"),
VanState = s.Field("van_state"),
VanDefaultLatitude = s.Field("van_van_default_lattitude"),
VanDefaultLongitude = s.Field("van_van_default_longitude"),
VanId = s.Field("van_id"),
VanModelName = s.Field("van_van_model"),
VanregisteredAs = s.Field("van_van_registered_as"),
VanRegistrationNo = s.Field("van_registration_number"),
VanIsVisitedInterState = s.Field("van_is_visited_interstate"),
VanRoutId = s.Field("_van_route_id"),
IsDeletedVan = s.Field("_van_is_deleted"),
IsDeletedServiceEngg = s.Field("service_engineer_isdeleted"),
IsVanRelease = s.Field("_is_released"),
}).ToList();
}
}
objModel.Status = "1";
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerDetailDealerIdWise", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To insert or update dealer detail
///
/// deaelr details
/// status
public DealerDetailModel InsertOrUpdateDealerDetail(DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
List objList = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[11];
nSqlParam[0] = new NpgsqlParameter("inid", model.DealerId);
nSqlParam[1] = new NpgsqlParameter("inorganization_id", model.DealerOrganizationId);
nSqlParam[2] = new NpgsqlParameter("indealer_name", model.DealerDealerName);
nSqlParam[3] = new NpgsqlParameter("incity", model.DealerCity);
nSqlParam[4] = new NpgsqlParameter("instate", model.DealerState);
nSqlParam[5] = new NpgsqlParameter("indealer_default_lattitude", model.DealerDealerDefaultLattitude);
nSqlParam[6] = new NpgsqlParameter("indealer_default_longitude", model.DealerDealerDefaultLongitude);
nSqlParam[7] = new NpgsqlParameter("inisdeleted", model.IsDeleted);
nSqlParam[8] = new NpgsqlParameter("incontact_number1", model.DealerContactNo);
nSqlParam[9] = new NpgsqlParameter("incontact_number2", model.DealerContactNo2);
nSqlParam[10] = new NpgsqlParameter("inaction", model.Operation);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_or_update_dealer"], nSqlParam);
// For Telematics Use
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_dealer_details"]);
model.DealerId = ds.Tables[0].Rows[0][0].ToString();
if (model.DealerId != null && model.DealerId.Trim().ToUpper() != "DUPLICATE")
{
string result = InsertOrUpdateVanDetail(model);
if (result == "1")
{
objModel.Status = "1";
}
else
{
objModel.Status = "2";
objModel.Message = result;
}
}
else
{
objModel.Status = "3";
objModel.Message = "DUPLICATE";
}
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("InsertOrUpdateDealerDetail", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To insert or update van detail
///
/// van detail
/// status
public string InsertOrUpdateVanDetail(DealerDetailModel model)
{
string result = "0";
try
{
if (model.VanList == null)
{
}
else
{
for (int i = 0; i < model.VanList.Count; i++)
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[20];
nSqlParam[0] = new NpgsqlParameter("indealer_id", model.DealerId);
nSqlParam[1] = new NpgsqlParameter("invan_id", model.VanList[i].VanId);
nSqlParam[2] = new NpgsqlParameter("inalias", model.VanList[i].VanAlias);
nSqlParam[3] = new NpgsqlParameter("invan_default_lattitude", model.VanList[i].VanDefaultLatitude);
nSqlParam[4] = new NpgsqlParameter("invan_default_longitude", model.VanList[i].VanDefaultLongitude);
nSqlParam[5] = new NpgsqlParameter("incity", model.VanList[i].VanCity);
nSqlParam[6] = new NpgsqlParameter("state", model.VanList[i].VanState);
nSqlParam[7] = new NpgsqlParameter("invan_model", model.VanList[i].VanModelName);
nSqlParam[8] = new NpgsqlParameter("inregistration_number", model.VanList[i].VanRegistrationNo);
nSqlParam[9] = new NpgsqlParameter("invan_registered_as", model.VanList[i].VanregisteredAs);
nSqlParam[10] = new NpgsqlParameter("inisdeleted_van", model.VanList[i].IsDeletedVan);
nSqlParam[11] = new NpgsqlParameter("inroute_id", null);
nSqlParam[12] = new NpgsqlParameter("inis_visited_interstate", model.VanList[i].VanIsVisitedInterState);
nSqlParam[13] = new NpgsqlParameter("inservice_engg_id", model.VanList[i].ServiceEngineerId);
nSqlParam[14] = new NpgsqlParameter("inservice_engineer_name", model.VanList[i].ServiceEngineerName);
nSqlParam[15] = new NpgsqlParameter("inservice_engineer_alias", model.VanList[i].ServiceEngineerAlias);
nSqlParam[16] = new NpgsqlParameter("incontact_number", model.VanList[i].ServiceEngineerContactNumber);
nSqlParam[17] = new NpgsqlParameter("inmobile_application_blocked", model.VanList[i].ServiceEngineerMobileApplicationBlocked);
nSqlParam[18] = new NpgsqlParameter("inisdeleted_service_engg", model.VanList[i].IsDeletedServiceEngg);
if (model.VanList[i].VanId == null || model.VanList[i].VanId == "")
{
nSqlParam[19] = new NpgsqlParameter("inaction", "INSERT");
}
else
{
nSqlParam[19] = new NpgsqlParameter("inaction", "UPDATE");
DataSet dsRemoveServiceDeiceCredential = new DataSet();
if (!model.VanList[i].IsVanRelease)
{
NpgsqlParameter[] nSqlParamServiceDeiceCredential = new NpgsqlParameter[1];
nSqlParamServiceDeiceCredential[0] = new NpgsqlParameter("inapplication_license_key", model.VanList[i].ServiceEngineerApplicationLicenseKey);
dsRemoveServiceDeiceCredential = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_release_service_engg_device_credentials"], nSqlParamServiceDeiceCredential);
}
}
DataSet ds = new DataSet();
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_or_update_service_engg_and_van"], nSqlParam);
if(i== model.VanList.Count-1)
{
}
// For Telematics Use
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_van_details"]);
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_service_engineer_details"]);
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_service_engineer_van_details"]);
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_dealer_van_details"]);
if (ds.Tables[0].Rows[0][0].ToString() == "0")
{
result = "Van already registered";
return result;
}
else
{
result = "1";
}
}
}
}
catch (Exception Ex)
{
result = Ex.Message;
objLog.ErrorLogFile("InsertOrUpdateVanDetail", Ex.Message, path, errorlogtf);
}
return result;
}
///
/// To insert Principle dealer detail
///
/// principal deaelr details
/// status
public DealerDetailModel InsertOrUpdatePrincipleDealerDetail(DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
// splitting dealer child list and storing them in array
string[] dealerChildList = model.DealerChildList.Split(',');
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[14];
nSqlParam[0] = new NpgsqlParameter("inid", model.DealerId);
nSqlParam[1] = new NpgsqlParameter("in_principal_dealer_name", model.PrincipalDealerName);
nSqlParam[2] = new NpgsqlParameter("inlast_name", model.DealerDealerName);
nSqlParam[3] = new NpgsqlParameter("inuser_name", model.UserName);
nSqlParam[4] = new NpgsqlParameter("indesignation", model.Designation);
nSqlParam[5] = new NpgsqlParameter("inorganization_id", model.DealerOrganizationId);
nSqlParam[6] = new NpgsqlParameter("incity", model.DealerCity);
nSqlParam[7] = new NpgsqlParameter("instate", model.DealerState);
nSqlParam[8] = new NpgsqlParameter("is_deleted", model.IsDeleted);
nSqlParam[9] = new NpgsqlParameter("incontact_number", model.DealerContactNo);
nSqlParam[10] = new NpgsqlParameter("is_parent", model.IsParent);
nSqlParam[11] = new NpgsqlParameter("child_id", dealerChildList);
nSqlParam[12] = new NpgsqlParameter("inaction", model.Operation);
nSqlParam[13] = new NpgsqlParameter("intimezone_id", model.TimeZoneId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_or_update_principal_dealer"], nSqlParam);
// For Telematics Use
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_dealer_details"]);
// NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_sync_users"]);
string dealerId = ds.Tables[0].Rows[0][0].ToString();
if (!String.IsNullOrEmpty(dealerId))
{
objModel.Status = "1";
objModel.Message = dealerId;
}
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("InsertOrUpdatePrincipleDealerDetail", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To check Van and dealer exist or not by mob no. and van reg no.
///
/// DealerDetailModel(mob and reg no.)
/// type is a string contain like (van, dealer)
///
public DealerDetailModel CheckDealerOrVanStatusExistOrNot(DealerDetailModel model, string type)
{
DealerDetailModel objModel = new DealerDetailModel();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
if (type == "van")
{
nSqlParam[0] = new NpgsqlParameter("inregistration_number", model.DealerContactNo);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_van_registration_no_exists_or_not"], nSqlParam);
}
else if (type == "dealer")
{
nSqlParam[0] = new NpgsqlParameter("inmobile_no", model.DealerContactNo);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_dealer_exists_or_not_by_mob_no_wise"], nSqlParam);
}
if (ds.Tables[0].Rows[0][0].ToString() == "0")
{
objModel.Status = "1";
}
else
{
objModel.Status = "2";
}
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("CheckDealerOrVanStatusExistOrNot", Ex.Message, path, errorlogtf);
return objModel;
}
}
///
/// To get dealer details organization wise.
///
/// dealer and organization info
/// status and dealer details organization wise
public List GetDealerListUserWiseOrgWise(DealerModelList obj)
{
List objModel = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(obj.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2];
nSqlParam[0] = new NpgsqlParameter("inid", obj.Id);
nSqlParam[1] = new NpgsqlParameter("inorg", obj.DealerOrganizationId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_user_org_wise"], nSqlParam);
objModel = ds.Tables[0].AsEnumerable().Select(s => new DealerModelList
{
DealerId = s.Field("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id"),
DealerDealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerDealerDefaultLattitude = s.Field("dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("dealer_dealer_default_longitude"),
DealerOrgName = s.Field("_organization_name"),
OrgPath = s.Field("_organization_organization_path"),
Region = s.Field("_organization_organization_region"),
}).ToList();
objModel.RemoveAll(item => String.IsNullOrEmpty(item.DealerId));
return objModel;
}
else
{
return objModel;
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetDealerListUserWiseOrgWise", ex.Message, path, errorlogtf);
return objModel;
}
}
public DealerOutputModel GetDealerExistOrNot(DealerInputModel model)
{
DealerOutputModel objModel = new DealerOutputModel();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indealer_code", model.DealerCode);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_check_dealer_exist_or_not"], nSqlParam);
if (ds.Tables[0].Rows[0][0].ToString() == "0")
{
objModel.Message = "Dealer Does Not Exist.";
objModel.Status = "1";
}
else if (ds.Tables[0].Rows[0][0].ToString() == "1")
{
objModel.Message = "Dealer Exist.";
objModel.Status = "2";
}
}
else
{
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objModel;
}
catch (Exception Ex)
{
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetChildDealerships", Ex.Message, path, errorlogtf);
return objModel;
}
}
#region dealer list for dealer wise dashboard
///
/// Get dealer list with user id of dealer for dealer wise dashboard.
///
/// login user info
/// dealer list with dealer's user id
public List GetDealerListWithUserId(UserModel obj)
{
List objModel = new List();
try
{
DataSet ds = new DataSet();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(obj.Token))
{
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("inuser_id", obj.UserId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_dealer_user_id"], nSqlParam);
objModel = ds.Tables[0].AsEnumerable().Select(s => new DealerUserIdList
{
DealerId = s.Field("_dealer_code"),
DealerOrganizationId = s.Field("_dealer_organization_id"),
//DealerDealerName = s.Field("_dealer_first_name") + " " + s.Field("_dealer_last_name"),
DealerDealerName = s.Field("_dealer_name"),
dealer_first_name = s.Field("_dealer_first_name"),
dealer_last_name = s.Field("_dealer_last_name"),
dealer_user_id = s.Field("_dealer_user_id"),
}).ToList();
objModel.RemoveAll(item => String.IsNullOrEmpty(Convert.ToString(item.dealer_user_id)));
return objModel;
}
else
{
return objModel;
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetDealerListWithUserId", ex.Message, path, errorlogtf);
return objModel;
}
}
#endregion
///
/// To get van and dealer list.
///
/// van and dealer info
/// van and dealer list
public List GetDealerVanListStateWise(DealerVanListStateWise model)
{
List objListModel = new List();
DealerVanListStateWise objModel = new DealerVanListStateWise();
try
{
objModel.Status = "1";
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
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("dealer_id_val ", model.DealerId);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_van_dealer_list_state_dealer_wise"], nSqlParam);
string deviceAlias = "";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (ds.Tables[0].Rows[i]["type"].ToString().Trim().ToLower() == "van")
{
if (i == 0)
{
deviceAlias = ds.Tables[0].Rows[i]["device_alias"].ToString();
}
else
{
deviceAlias = deviceAlias + "," + ds.Tables[0].Rows[i]["device_alias"].ToString();
}
}
}
//Get device tracking log
nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias);
dsTracking = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_Tracking"].ToString(), CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam);
List listTracking = new List();
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field("_log_id"),
DeviceAlias = s.Field("_device_alias"),
Latitude = s.Field("_latitude"),
Longitude = s.Field("_longitude"),
LogTime = s.Field("_log_time") != null ? Convert.ToDateTime(s.Field("_log_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_log_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
IsConnected = s.Field("_device_status"),
Xcordinate = s.Field("_x_coordinate"),
Ycordinate = s.Field