1062 lines
65 KiB
C#
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
|
|
} |