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
///
/// This class contain methods releted to tracking
///
public class TrackingRepository
{
#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 TrackingStatus model object available to this class
///
TrackingStatus objTrackingStatus;
///
/// making Authentication Repository object available to this class
///
AuthenticationRepository objAuthorization;
#endregion
#region Contructors
///
/// Default constructor intialize connection string of tracking database
///
public TrackingRepository(string connString)
{
this._connStr = connString;
}
#endregion
#region API Methods
///
/// To get tracking detail of particular device
///
/// device info
/// status and tracking detail of particular device
public List GetCurrentTrackingDetailDeviceAliaseWise(TrackingGetModel model)
{
List listTracking = new List();
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("_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"]),
Xcordinate = s.Field("_x_coordinate"),
Ycordinate = s.Field("_y_coordinate"),
Zcordinate = s.Field("_z_coordinate"),
CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"])
}).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;
}
}
///
/// To get tracking detail of particular device(log history)
///
/// device info
/// Status and tracking detail of particular device(log history)
public List GetTrackingDetailDeviceAliasWise(TrackingGetModel model)
{
List listTracking = new List();
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("_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"]),
Xcordinate = s.Field("_x_coordinate"),
Ycordinate = s.Field("_y_coordinate"),
Zcordinate = s.Field("_z_coordinate")
// CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"])
}).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;
}
}
///
/// To insert tracking detail of particular device
///
/// tracking detail of particular device
/// contain status 0 or 1
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;
}
}
///
/// To insert bulk tracking details
///
/// bulk tracking details
/// contain status o or 1
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;
}
}
///
/// To get detail of dealer,van city and van state
///
/// dealer/van info
/// status and detail of dealer,van city and van state
public DealerVanModel GetDealerVanDetail(VanModel model)
{
DealerVanModel objModel = new DealerVanModel();
try
{
objAuthorization = new AuthenticationRepository();
List objlistVanCity = new List();
List objlistVanSate = new List();
List objlistdealer = new List();
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("dealer_id"),
DealerName = s.Field("dealer_dealer_name")
}).ToList();
//get van and city
objlistVanCity = ds.Tables[0].AsEnumerable().Select(s => new VanCityModel
{
VanID = s.Field("van_id"),
VanCity = s.Field("van_city")
}).ToList();
//get van and state.
objlistVanSate = ds.Tables[0].AsEnumerable().Select(s => new VanstateModel
{
VanID = s.Field("van_id"),
VanState = s.Field("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;
}
}
///
/// To get current tracking details, user id wise
///
/// van/user info
/// status and current tracking details, user id wise
public CurrentTracking GetCurrentTrackingDetailUserIdWIse(VanModel model)
{
CurrentTracking objModel = new CurrentTracking();
try
{
DataSet dsTracking = new DataSet();
objAuthorization = new AuthenticationRepository();
List listVan = new List();
List listVanFiltered;
List listTracking = new List();
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("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id"),
DealerDealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerDealerDefaultLattitude = s.Field("dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("dealer_dealer_default_longitude"),
VanId = s.Field("van_id"),
VanAlias = s.Field("van_alias"),
VanVanDefaultLattitude = s.Field("van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field("van_van_default_longitude"),
VanCity = s.Field("van_city"),
VanState = s.Field("van_state"),
VanVanModel = s.Field("van_van_model"),
VanRegistrationNumber = s.Field("van_registration_number"),
VanVanRegisteredAs = s.Field("van_van_registered_as"),
OrganizationName = s.Field("_organization_name"),
OrganizationOrganizationAlias = s.Field("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field("_organization_organization_city"),
OrganizationOrganizationState = s.Field("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field("_organization_organization_description"),
OrganizationOrganizationPath = s.Field("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field("_organization_organization_region"),
ServiceEngineerId = s.Field("service_engineer_id"),
ServiceEngineerName = s.Field("_service_engineer_name"),
ServiceEngineerAlias = s.Field("service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field("service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field("service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field("service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field("service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field("service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field("service_engineer_pin_password"),
ServiceEngineerVanVanId = s.Field("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field("service_engineer_van_service_engineer_id"),
//Token = s.Field(""),
Status = "1",
current_latitude = s.Field("current_latitude"),
current_longitude = s.Field("current_longitude"),
van_start_working_hours = s.Field("_van_starting_working_hours"),
van_end_working_hours = s.Field("_van_ending_working_hours"),
//Message = s.Field("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List(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(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(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(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(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(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(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(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(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(""),
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"]),
//Token = s.Field(""),
//TrackingDetail = s.Field>(""),
IsConnected = s.Field("_device_status"),
Xcordinate = s.Field("_x_coordinate"),
Ycordinate = s.Field("_y_coordinate"),
Zcordinate = s.Field("_z_coordinate"),
CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BatteryStatus = s.Field("_battery_status") != null ? s.Field("_battery_status") : "0",
GpsStatus = s.Field("_gps_status"),
IsCharging = s.Field("_is_charging"),
IsPowerSaving = s.Field("_is_power_saving")
//Message = s.Field(""),
//status = s.Field(""),
}).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;
}
}
///
/// To get detail of dealer,van city and van state
///
/// dealer/van info
/// status and detail of dealer,van city and van state
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 listVan = new List();
List listVanFiltered;
List listTracking = new List();
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("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id"),
DealerDealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerDealerDefaultLattitude = s.Field("dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("dealer_dealer_default_longitude"),
VanId = s.Field("van_id"),
VanAlias = s.Field("van_alias"),
VanVanDefaultLattitude = s.Field("van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field("van_van_default_longitude"),
VanCity = s.Field("van_city"),
VanState = s.Field("van_state"),
VanVanModel = s.Field("van_van_model"),
VanRegistrationNumber = s.Field("van_registration_number"),
VanVanRegisteredAs = s.Field("van_van_registered_as"),
OrganizationName = s.Field("_organization_name"),
OrganizationOrganizationAlias = s.Field("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field("_organization_organization_city"),
OrganizationOrganizationState = s.Field("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field("_organization_organization_description"),
OrganizationOrganizationPath = s.Field("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field("_organization_organization_region"),
ServiceEngineerId = s.Field("service_engineer_id"),
ServiceEngineerName = s.Field("_service_engineer_name"),
ServiceEngineerAlias = s.Field("service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field("service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field("service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field("service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field("service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field("service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field("service_engineer_pin_password"),
ServiceEngineerVanVanId = s.Field("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field("service_engineer_van_service_engineer_id"),
//Token = s.Field(""),
Status = "1",
current_latitude = s.Field("current_latitude"),
current_longitude = s.Field("current_longitude"),
van_start_working_hours = s.Field("_van_starting_working_hours"),
van_end_working_hours = s.Field("_van_ending_working_hours"),
//Message = s.Field("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List(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(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(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(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(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(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(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(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(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(""),
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"]),
//Token = s.Field(""),
//TrackingDetail = s.Field>(""),
IsConnected = s.Field("_device_status"),
Xcordinate = s.Field("_x_coordinate"),
Ycordinate = s.Field("_y_coordinate"),
Zcordinate = s.Field("_z_coordinate"),
CreationTime = s.Field("_creation_time") != null ? Convert.ToDateTime(s.Field("_creation_time")).AddMinutes(model.UtcMinute).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]) : Convert.ToDateTime(s.Field("_creation_time")).ToString(ConfigurationManager.AppSettings["DateTimeFormat"]),
BatteryStatus = s.Field("_battery_status") != null ? s.Field("_battery_status") : "0",
GpsStatus = s.Field("_gps_status"),
IsCharging = s.Field("_is_charging"),
IsPowerSaving = s.Field("_is_power_saving")
//Message = s.Field(""),
//status = s.Field(""),
}).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 listVan = new List();
List listVanFiltered;
List listTracking = new List();
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("dealer_id"),
DealerOrganizationId = s.Field("dealer_organization_id"),
DealerDealerName = s.Field("dealer_dealer_name"),
DealerCity = s.Field("dealer_city"),
DealerState = s.Field("dealer_state"),
DealerDealerDefaultLattitude = s.Field("dealer_dealer_default_lattitude"),
DealerDealerDefaultLongitude = s.Field("dealer_dealer_default_longitude"),
VanId = s.Field("van_id"),
VanAlias = s.Field("van_alias"),
VanVanDefaultLattitude = s.Field("van_van_default_lattitude"),
VanVanDefaultLongitude = s.Field("van_van_default_longitude"),
VanCity = s.Field("van_city"),
VanState = s.Field("van_state"),
VanVanModel = s.Field("van_van_model"),
VanRegistrationNumber = s.Field("van_registration_number"),
VanVanRegisteredAs = s.Field("van_van_registered_as"),
OrganizationName = s.Field("_organization_name"),
OrganizationOrganizationAlias = s.Field("_organization_organization_alias"),
OrganizationOrganizationCity = s.Field("_organization_organization_city"),
OrganizationOrganizationState = s.Field("_organization_organization_state"),
OrganizationOrganizationCountry = s.Field("_organization_organization_country"),
OrganizationOrganizationDescription = s.Field("_organization_organization_description"),
OrganizationOrganizationPath = s.Field("_organization_organization_path"),
OrganizationOrganizationDepth = s.Field("_organization_organization_depth"),
OrganizationOrganizationColor = s.Field("_organization_organization_color"),
OrganizationOrganizationRegion = s.Field("_organization_organization_region"),
ServiceEngineerId = s.Field("service_engineer_id"),
ServiceEngineerName = s.Field("_service_engineer_name"),
ServiceEngineerAlias = s.Field("service_engineer_alias"),
ServiceEngineerImeiNumber = s.Field("service_engineer_imei_number"),
ServiceEngineerContactNumber = s.Field("service_engineer_contact_number"),
ServiceEngineerApplicationLicenseKey = s.Field("service_engineer_application_license_key"),
ServiceEngineerMobileApplicationBlocked = s.Field("service_engineer_mobile_application_blocked"),
ServiceEngineerDeviceAlias = s.Field("service_engineer_device_alias"),
ServiceEngineerPinPassword = s.Field("service_engineer_pin_password"),
ServiceEngineerVanVanId = s.Field("service_engineer_van_van_id"),
ServiceEngineerVanServiceEngineerId = s.Field("service_engineer_van_service_engineer_id"),
//Token = s.Field(""),
Status = "1",
current_latitude = s.Field("current_latitude"),
current_longitude = s.Field("current_longitude"),
van_start_working_hours = s.Field("_van_starting_working_hours"),
van_end_working_hours = s.Field("_van_ending_working_hours"),
//Message = s.Field("")
}).ToList();
listVan.RemoveAll(item => String.IsNullOrEmpty(item.ServiceEngineerImeiNumber));
listVanFiltered = new List