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

1062 lines
65 KiB
C#

namespace VECV_WebApi.Models.Tracking
{
#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.ServiceEngineer;
#endregion
#region Repository Class
/// <summary>
/// This class contain methods releted to tracking
/// </summary>
public class TrackingRepository
{
#region Global Variables
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <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 TrackingStatus model object available to this class
/// </summary>
TrackingStatus objTrackingStatus;
/// <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 TrackingRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
/// <summary>
/// To get tracking detail of particular device
/// </summary>
/// <param name="model">device info</param>
/// <returns>status and tracking detail of particular device</returns>
public List<TrackingModel> GetCurrentTrackingDetailDeviceAliaseWise(TrackingGetModel model)
{
List<TrackingModel> listTracking = new List<TrackingModel>();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataSet ds = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indevicealias ", model.DeviceAlias);
// get all device current log.
if (model.DeviceAlias == null)
{
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_all_device"]);
}
// get a device current log.
else
{
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_device_wise"], nSqlParam);
}
if (ds.Tables[0].Rows.Count > 0)
{
listTracking = ds.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<int>("_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"]),
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"])
}).ToList();
}
}
else
{
TrackingModel objModel = new TrackingModel();
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
listTracking.Add(objModel);
}
return listTracking;
}
catch (Exception Ex)
{
TrackingModel objModel = new TrackingModel();
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString();
listTracking.Add(objModel);
objLog.ErrorLogFile("GetCurrentTrackingDetailDeviceAliaseWise", Ex.Message, path, errorlogtf);
return listTracking;
}
}
/// <summary>
/// To get tracking detail of particular device(log history)
/// </summary>
/// <param name="model">device info</param>
/// <returns>Status and tracking detail of particular device(log history)</returns>
public List<TrackingModel> GetTrackingDetailDeviceAliasWise(TrackingGetModel model)
{
List<TrackingModel> listTracking = new List<TrackingModel>();
try
{
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
if (model.ToDate == "")
{
}
else {
DataSet ds = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[3];
nSqlParam[0] = new NpgsqlParameter("indevicealias ", model.DeviceAlias.ToString());
nSqlParam[1] = new NpgsqlParameter("instartdate ", Convert.ToDateTime(model.FromDate).AddMinutes(-model.UtcMinute));
nSqlParam[2] = new NpgsqlParameter("inenddate ", Convert.ToDateTime(model.ToDate).AddMinutes(-model.UtcMinute));
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_log_history"], nSqlParam);
if (ds.Tables[0].Rows.Count > 0)
{
listTracking = ds.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
LogId = s.Field<int>("_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"]),
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"])
}).ToList();
}
}
}
else
{
TrackingModel objModel = new TrackingModel();
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
listTracking.Add(objModel);
}
return listTracking;
}
catch (Exception Ex)
{
TrackingModel objModel = new TrackingModel();
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString();
listTracking.Add(objModel);
// write error log.
objLog.ErrorLogFile("GetTrackingDetailDeviceAliasWise", Ex.Message, path, errorlogtf);
return listTracking;
}
}
/// <summary>
/// To insert tracking detail of particular device
/// </summary>
/// <param name="model">tracking detail of particular device</param>
/// <returns>contain status 0 or 1 </returns>
public TrackingStatus InsertTrackingDetail(TrackingModel model)
{
try
{
objTrackingStatus = new TrackingStatus();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
//string newLogTime = Convert.ToDateTime(model.LogTime, System.Globalization.CultureInfo.GetCultureInfo("en-IN")).ToString("MM/dd/yyyy hh:MM:ss"); //commented condition on (08-12-2020)
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[11];
nSqlParam[0] = new NpgsqlParameter("indevicealias ", model.DeviceAlias.ToString());
nSqlParam[1] = new NpgsqlParameter("inlatitude", model.Latitude);
nSqlParam[2] = new NpgsqlParameter("inlongitude ", model.Longitude);
nSqlParam[3] = new NpgsqlParameter("inlogtime ", model.LogTime); //uncommented original condition on (08-12-2020)
//nSqlParam[3] = new NpgsqlParameter("inlogtime ", (newLogTime)); //commented condition on (08-12-2020)
nSqlParam[4] = new NpgsqlParameter("inX_coordinate", model.Xcordinate);
nSqlParam[5] = new NpgsqlParameter("inY_coordinate", model.Ycordinate);
nSqlParam[6] = new NpgsqlParameter("inZ_coordinate", model.Zcordinate);
nSqlParam[7] = new NpgsqlParameter("inbattery_status", model.BatteryStatus);
nSqlParam[8] = new NpgsqlParameter("ingps_status", model.GpsStatus);
nSqlParam[9] = new NpgsqlParameter("inis_charging", model.IsCharging);
nSqlParam[10] = new NpgsqlParameter("inis_power_saving", model.IsPowerSaving);
NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_insert_update_log"], nSqlParam);
objTrackingStatus.status = 1;
}
else
{
objTrackingStatus.status = 0;
objTrackingStatus.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objTrackingStatus;
}
catch (Exception Ex)
{
TrackingStatus objTrackingStatus = new TrackingStatus();
objTrackingStatus.status = 0;
objTrackingStatus.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString();
objLog.ErrorLogFile("InsertTrackingDetail", Ex.Message, path, errorlogtf);
return objTrackingStatus;
}
}
/// <summary>
/// To insert bulk tracking details
/// </summary>
/// <param name="model">bulk tracking details</param>
/// <returns>contain status o or 1</returns>
public TrackingStatus InsertBulkTrackingDetail(TrackingModel model)
{
try
{
objTrackingStatus = new TrackingStatus();
objAuthorization = new AuthenticationRepository();
if (objAuthorization.AuthenticateDevice(model.Token))
{
DataTable dt = new DataTable();
dt.Columns.Add("DeviceAlias");
dt.Columns.Add("Latitude");
dt.Columns.Add("Longitude");
dt.Columns.Add("LogTime", typeof(DateTime));
dt.Columns.Add("Xcordinate");
dt.Columns.Add("Ycordinate");
dt.Columns.Add("Zcordinate");
dt.Columns.Add("BatteryStatus");
dt.Columns.Add("GpsStatus");
dt.Columns.Add("IsCharging");
dt.Columns.Add("IsPowerSaving");
for (int i = 0; i < model.BulkTrackngDetail.Count; i++)
{
string[] arr = model.BulkTrackngDetail[i].Split(',');
dt.Rows.Add(arr[0].ToString(), arr[1].ToString(), arr[2].ToString(), arr[3].ToString(),
Convert.ToString(Convert.ToInt16(ConfigurationManager.AppSettings["EarthRadius"]) * Math.Cos(Convert.ToDouble(arr[1].ToString())) * Math.Cos(Convert.ToDouble(arr[2].ToString()))),
Convert.ToString(Convert.ToInt16(ConfigurationManager.AppSettings["EarthRadius"]) * Math.Cos(Convert.ToDouble(arr[1].ToString())) * Math.Sin(Convert.ToDouble(arr[2].ToString()))),
Convert.ToString(Convert.ToInt16(ConfigurationManager.AppSettings["EarthRadius"]) * Math.Sin(Convert.ToDouble(arr[1].ToString()))),
arr[4].ToString(), arr[5].ToString(), arr[6].ToString(), arr[7].ToString()
);
}
string insertQuery = "Insert Into vecv_log.log_history (device_alias,latitude,longitude,log_time,x_coordinate,y_coordinate,z_coordinate,battery_status,gps_status,is_charging,is_power_saving) " +
"values";
string insertValue = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == dt.Rows.Count - 1)
{
insertValue = "('" + dt.Rows[i]["DeviceAlias"].ToString() + "','" + dt.Rows[i]["Latitude"].ToString() + "','" + dt.Rows[i]["Longitude"].ToString() +
"','" + dt.Rows[i]["LogTime"].ToString() + "','" + dt.Rows[i]["Xcordinate"].ToString() +
"','" + dt.Rows[i]["Ycordinate"].ToString() + "','" + dt.Rows[i]["Zcordinate"].ToString() +
"','" + dt.Rows[i]["BatteryStatus"].ToString() + "','" + dt.Rows[i]["GpsStatus"].ToString() +
"','" + dt.Rows[i]["IsCharging"].ToString() +
"','" + dt.Rows[i]["IsPowerSaving"].ToString() +
"')";
}
else
{
insertValue = "('" + dt.Rows[i]["DeviceAlias"].ToString() + "','" + dt.Rows[i]["Latitude"].ToString() + "','" + dt.Rows[i]["Longitude"].ToString() +
"','" + dt.Rows[i]["LogTime"].ToString() + "','" + dt.Rows[i]["Xcordinate"].ToString() +
"','" + dt.Rows[i]["Ycordinate"].ToString() + "','" + dt.Rows[i]["Zcordinate"].ToString() +
"','" + dt.Rows[i]["BatteryStatus"].ToString() + "','" + dt.Rows[i]["GpsStatus"].ToString() +
"','" + dt.Rows[i]["IsCharging"].ToString() +
"','" + dt.Rows[i]["IsPowerSaving"].ToString() +
"'),";
}
insertQuery = insertQuery + insertValue;
}
NpgSqlHelper.ExecuteNonQuery(_connStr, CommandType.Text, insertQuery);
objTrackingStatus.status = 1;
}
else
{
objTrackingStatus.status = 0;
objTrackingStatus.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
}
return objTrackingStatus;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("InsertBulkTrackingDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get detail of dealer,van city and van state
/// </summary>
/// <param name="model">dealer/van info</param>
/// <returns>status and detail of dealer,van city and van state</returns>
public DealerVanModel GetDealerVanDetail(VanModel model)
{
DealerVanModel objModel = new DealerVanModel();
try
{
objAuthorization = new AuthenticationRepository();
List<VanCityModel> objlistVanCity = new List<VanCityModel>();
List<VanstateModel> objlistVanSate = new List<VanstateModel>();
List<DealerModel> objlistdealer = new List<DealerModel>();
if (objAuthorization.AuthenticateDevice(model.Token))
{
ServiceEngineerRepository objServiceRepository = new ServiceEngineerRepository(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString());
DataSet ds = new DataSet();
ds = objServiceRepository.GetVanDetailUserIdWise(model);
//get dealer.
objlistdealer = ds.Tables[0].AsEnumerable().Select(s => new DealerModel
{
DealerID = s.Field<string>("dealer_id"),
DealerName = s.Field<string>("dealer_dealer_name")
}).ToList();
//get van and city
objlistVanCity = ds.Tables[0].AsEnumerable().Select(s => new VanCityModel
{
VanID = s.Field<string>("van_id"),
VanCity = s.Field<string>("van_city")
}).ToList();
//get van and state.
objlistVanSate = ds.Tables[0].AsEnumerable().Select(s => new VanstateModel
{
VanID = s.Field<string>("van_id"),
VanState = s.Field<string>("van_state")
}).ToList();
objModel.status = "1";
}
else
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
return objModel;
}
//get dealer group by dealer
objlistdealer = objlistdealer.GroupBy(d => d.DealerID).Select(d => d.FirstOrDefault()).ToList();
//get van group by city.
objlistVanCity = objlistVanCity.GroupBy(d => d.VanCity).Select(d => d.FirstOrDefault()).ToList();
//get van group by state.
objlistVanSate = objlistVanSate.GroupBy(d => d.VanState).Select(d => d.FirstOrDefault()).ToList();
objModel.ListDealer = objlistdealer;
objModel.ListVanCity = objlistVanCity;
objModel.ListVanState = objlistVanSate;
return objModel;
}
catch (Exception Ex)
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString() + Ex.Message;
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To get current tracking details, user id wise
/// </summary>
/// <param name="model">van/user info</param>
/// <returns>status and current tracking details, user id wise</returns>
public CurrentTracking GetCurrentTrackingDetailUserIdWIse(VanModel model)
{
CurrentTracking objModel = new CurrentTracking();
try
{
DataSet dsTracking = new DataSet();
objAuthorization = new AuthenticationRepository();
List<VanModel> listVan = new List<VanModel>();
List<VanModel> listVanFiltered;
List<TrackingModel> listTracking = new List<TrackingModel>();
if (objAuthorization.AuthenticateDevice(model.Token))
{
ServiceEngineerRepository objServiceRepository = new ServiceEngineerRepository(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString());
DataSet dsUser = new DataSet();
dsUser = objServiceRepository.GetVanDetailUserIdWise(model);
listVan = dsUser.Tables[0].AsEnumerable().Select(s => new VanModel
{
DealerId = s.Field<string>("dealer_id"),
DealerOrganizationId = s.Field<Int32>("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"),
OrganizationName = s.Field<string>("_organization_name"),
OrganizationOrganizationAlias = s.Field<string>("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field<string>("_organization_organization_city"),
OrganizationOrganizationState = s.Field<string>("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field<string>("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field<string>("_organization_organization_description"),
OrganizationOrganizationPath = s.Field<string>("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field<string>("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field<string>("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field<string>("_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"),
ServiceEngineerVanVanId = s.Field<string>("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field<string>("service_engineer_van_service_engineer_id"),
//Token = s.Field<string>(""),
Status = "1",
current_latitude = s.Field<string>("current_latitude"),
current_longitude = s.Field<string>("current_longitude"),
van_start_working_hours = s.Field<string>("_van_starting_working_hours"),
van_end_working_hours = s.Field<string>("_van_ending_working_hours"),
//Message = s.Field<string>("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List<VanModel>(listVan.ToList());
if (listVan.Count > 0)
{
//get all van details
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Select(s => s).ToList());
}
// filter van dealer wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim())).ToList());
}
// filter van city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())).ToList());
}
// filter van state wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())).ToList());
}
// filter van dealer and city wise
if (model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
// filter van state and city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer and state wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer,state and city wise
if (model.VanCityParam.ToUpper().Trim() != "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
}
//get all device alias in a comma seprated string.
string deviceAlias = "";
if (listVanFiltered.Count > 0)
{
for (int i = 0; i < listVanFiltered.Count; i++)
{
if (i == 0)
{
deviceAlias = listVanFiltered[i].ServiceEngineerDeviceAlias.ToString();
}
else
{
deviceAlias = deviceAlias + "," + listVanFiltered[i].ServiceEngineerDeviceAlias;
}
}
}
//Get current log device alias wise.
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias);
dsTracking = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam);
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
// DeviceAlias = s.Field<string>(""),
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"]),
//Token = s.Field<string>(""),
//TrackingDetail = s.Field<List<string>>(""),
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"]),
BatteryStatus = s.Field<string>("_battery_status") != null ? s.Field<string>("_battery_status") : "0",
GpsStatus = s.Field<string>("_gps_status"),
IsCharging = s.Field<string>("_is_charging"),
IsPowerSaving = s.Field<string>("_is_power_saving")
//Message = s.Field<string>(""),
//status = s.Field<string>(""),
}).ToList();
objModel.status = "1";
if (listTracking.Count != listVanFiltered.Count && listTracking.Count < listVanFiltered.Count)
{
for (int i = listTracking.Count; i < listVanFiltered.Count; i++)
{
TrackingModel objTrack = new TrackingModel();
objTrack.BatteryStatus = "0";
listTracking.Add(objTrack);
}
}
}
else
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
return objModel;
}
objModel.ListUsers = listVanFiltered;
objModel.ListTracking = listTracking;
return objModel;
}
catch (Exception Ex)
{
objModel.status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To get detail of dealer,van city and van state
/// </summary>
/// <param name="model">dealer/van info</param>
/// <returns>status and detail of dealer,van city and van state</returns>
public DealerVanModel SaveVanWorkingHours(VanModel model)
{
DealerVanModel objModel = new DealerVanModel();
try
{
objAuthorization = new AuthenticationRepository();
DataSet dsRemoveServiceDeiceCredential = new DataSet();
if (objAuthorization.AuthenticateDevice(model.Token))
{
NpgsqlParameter[] nSqlParamServiceDeiceCredential = new NpgsqlParameter[4];
nSqlParamServiceDeiceCredential[0] = new NpgsqlParameter("invan_id", model.VanId);
nSqlParamServiceDeiceCredential[1] = new NpgsqlParameter("invan_starting_working_hours", model.van_start_working_hours);
nSqlParamServiceDeiceCredential[2] = new NpgsqlParameter("invan_ending_working_hours", model.van_end_working_hours);
nSqlParamServiceDeiceCredential[3] = new NpgsqlParameter("invan_last_modified_by", model.UserId.ToString());
dsRemoveServiceDeiceCredential = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_insert_or_update_van_working_hours"], nSqlParamServiceDeiceCredential);
objModel.status = "1";
}
else
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
return objModel;
}
//get dealer group by dealer
return objModel;
}
catch (Exception Ex)
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString() + Ex.Message;
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse", Ex.Message, path, errorlogtf);
return objModel;
}
}
public CurrentTracking GetCurrentTrackingDetailUserIdWIseVECV(VanModel model)
{
CurrentTracking objModel = new CurrentTracking();
try
{
DataSet dsTracking = new DataSet();
objAuthorization = new AuthenticationRepository();
List<VanModel> listVan = new List<VanModel>();
List<VanModel> listVanFiltered;
List<TrackingModel> listTracking = new List<TrackingModel>();
if (objAuthorization.AuthenticateDevice(model.Token))
{
ServiceEngineerRepository objServiceRepository = new ServiceEngineerRepository(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString());
DataSet dsUser = new DataSet();
dsUser = objServiceRepository.GetVanDetailUserIdWiseVECVUser(model);
listVan = dsUser.Tables[0].AsEnumerable().Select(s => new VanModel
{
DealerId = s.Field<string>("dealer_id"),
DealerOrganizationId = s.Field<Int32>("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"),
OrganizationName = s.Field<string>("_organization_name"),
OrganizationOrganizationAlias = s.Field<string>("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field<string>("_organization_organization_city"),
OrganizationOrganizationState = s.Field<string>("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field<string>("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field<string>("_organization_organization_description"),
OrganizationOrganizationPath = s.Field<string>("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field<string>("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field<string>("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field<string>("_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"),
ServiceEngineerVanVanId = s.Field<string>("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field<string>("service_engineer_van_service_engineer_id"),
//Token = s.Field<string>(""),
Status = "1",
current_latitude = s.Field<string>("current_latitude"),
current_longitude = s.Field<string>("current_longitude"),
van_start_working_hours = s.Field<string>("_van_starting_working_hours"),
van_end_working_hours = s.Field<string>("_van_ending_working_hours"),
//Message = s.Field<string>("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List<VanModel>(listVan.ToList());
if (listVan.Count > 0)
{
//get all van details
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Select(s => s).ToList());
}
// filter van dealer wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim())).ToList());
}
// filter van city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())).ToList());
}
// filter van state wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())).ToList());
}
// filter van dealer and city wise
if (model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
// filter van state and city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer and state wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer,state and city wise
if (model.VanCityParam.ToUpper().Trim() != "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
}
//get all device alias in a comma seprated string.
string deviceAlias = "";
if (listVanFiltered.Count > 0)
{
for (int i = 0; i < listVanFiltered.Count; i++)
{
if (i == 0)
{
deviceAlias = listVanFiltered[i].ServiceEngineerDeviceAlias.ToString();
}
else
{
deviceAlias = deviceAlias + "," + listVanFiltered[i].ServiceEngineerDeviceAlias;
}
}
}
//Get current log device alias wise.
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias);
dsTracking = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam);
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
// DeviceAlias = s.Field<string>(""),
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"]),
//Token = s.Field<string>(""),
//TrackingDetail = s.Field<List<string>>(""),
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"]),
BatteryStatus = s.Field<string>("_battery_status") != null ? s.Field<string>("_battery_status") : "0",
GpsStatus = s.Field<string>("_gps_status"),
IsCharging = s.Field<string>("_is_charging"),
IsPowerSaving = s.Field<string>("_is_power_saving")
//Message = s.Field<string>(""),
//status = s.Field<string>(""),
}).ToList();
objModel.status = "1";
if (listTracking.Count != listVanFiltered.Count && listTracking.Count < listVanFiltered.Count)
{
for (int i = listTracking.Count; i < listVanFiltered.Count; i++)
{
TrackingModel objTrack = new TrackingModel();
objTrack.BatteryStatus = "0";
listTracking.Add(objTrack);
}
}
}
else
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
return objModel;
}
objModel.ListUsers = listVanFiltered;
objModel.ListTracking = listTracking;
return objModel;
}
catch (Exception Ex)
{
objModel.status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse", Ex.Message, path, errorlogtf);
return objModel;
}
}
public CurrentTracking GetCurrentTrackingDetailWMWIse(VanModel model)
{
CurrentTracking objModel = new CurrentTracking();
try
{
DataSet dsTracking = new DataSet();
objAuthorization = new AuthenticationRepository();
List<VanModel> listVan = new List<VanModel>();
List<VanModel> listVanFiltered;
List<TrackingModel> listTracking = new List<TrackingModel>();
if (objAuthorization.AuthenticateDevice(model.Token))
{
ServiceEngineerRepository objServiceRepository = new ServiceEngineerRepository(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString());
DataSet dsUser = new DataSet();
dsUser = objServiceRepository.GetVanDetailWMWise(model);
listVan = dsUser.Tables[0].AsEnumerable().Select(s => new VanModel
{
DealerId = s.Field<string>("dealer_id"),
DealerOrganizationId = s.Field<Int32>("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"),
OrganizationName = s.Field<string>("_organization_name"),
OrganizationOrganizationAlias = s.Field<string>("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field<string>("_organization_organization_city"),
OrganizationOrganizationState = s.Field<string>("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field<string>("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field<string>("_organization_organization_description"),
OrganizationOrganizationPath = s.Field<string>("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field<string>("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field<string>("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field<string>("_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"),
ServiceEngineerVanVanId = s.Field<string>("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field<string>("service_engineer_van_service_engineer_id"),
//Token = s.Field<string>(""),
Status = "1",
current_latitude = s.Field<string>("current_latitude"),
current_longitude = s.Field<string>("current_longitude"),
van_start_working_hours = s.Field<string>("_van_starting_working_hours"),
van_end_working_hours = s.Field<string>("_van_ending_working_hours"),
//Message = s.Field<string>("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List<VanModel>(listVan.ToList());
if (listVan.Count > 0)
{
//get all van details
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Select(s => s).ToList());
}
// filter van dealer wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim())).ToList());
}
// filter van city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())).ToList());
}
// filter van state wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() == "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())).ToList());
}
// filter van dealer and city wise
if (model.VanStateParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
// filter van state and city wise
if (model.DealerNameParam.ToUpper().Trim() == "ALL" && model.VanCityParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer and state wise
if (model.VanCityParam.ToUpper().Trim() == "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim())
).ToList());
}
// filter van dealer,state and city wise
if (model.VanCityParam.ToUpper().Trim() != "ALL" && model.DealerNameParam.ToUpper().Trim() != "ALL" && model.VanStateParam.ToUpper().Trim() != "ALL")
{
listVanFiltered = new List<VanModel>(listVan.Where(s => s.DealerDealerName.ToUpper().Trim() == (model.DealerNameParam.ToUpper().Trim()) &&
s.DealerState.ToUpper().Trim() == (model.VanStateParam.ToUpper().Trim()) &&
s.DealerCity.ToUpper().Trim() == (model.VanCityParam.ToUpper().Trim())
).ToList());
}
}
//get all device alias in a comma seprated string.
string deviceAlias = "";
if (listVanFiltered.Count > 0)
{
for (int i = 0; i < listVanFiltered.Count; i++)
{
if (i == 0)
{
deviceAlias = listVanFiltered[i].ServiceEngineerDeviceAlias.ToString();
}
else
{
deviceAlias = deviceAlias + "," + listVanFiltered[i].ServiceEngineerDeviceAlias;
}
}
}
//Get current log device alias wise.
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1];
//nSqlParam[0] = new NpgsqlParameter("indevice_alias", deviceAlias);
//dsTracking = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["vecv_log_sp_get_current_log_devices_user_wise"], nSqlParam);
// 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);
listTracking = dsTracking.Tables[0].AsEnumerable().Select(s => new TrackingModel
{
// DeviceAlias = s.Field<string>(""),
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"]),
//Token = s.Field<string>(""),
//TrackingDetail = s.Field<List<string>>(""),
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"]),
BatteryStatus = s.Field<string>("_battery_status") != null ? s.Field<string>("_battery_status") : "0",
GpsStatus = s.Field<string>("_gps_status"),
IsCharging = s.Field<string>("_is_charging"),
IsPowerSaving = s.Field<string>("_is_power_saving")
//Message = s.Field<string>(""),
//status = s.Field<string>(""),
}).ToList();
objModel.status = "1";
if (listTracking.Count != listVanFiltered.Count && listTracking.Count < listVanFiltered.Count)
{
for (int i = listTracking.Count; i < listVanFiltered.Count; i++)
{
TrackingModel objTrack = new TrackingModel();
objTrack.BatteryStatus = "0";
listTracking.Add(objTrack);
}
}
}
else
{
objModel.status = "0";
objModel.Message = ConfigurationManager.AppSettings["DeviceConfigurationTokenMessage"].ToString();
return objModel;
}
objModel.ListUsers = listVanFiltered;
objModel.ListTracking = listTracking;
return objModel;
}
catch (Exception Ex)
{
objModel.status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse", Ex.Message, path, errorlogtf);
return objModel;
}
}
#endregion
}
#endregion
}