620 lines
22 KiB
C#
620 lines
22 KiB
C#
using Foresight.Data;
|
|
using Foresight.Fleet.Services.AssetHealth;
|
|
using Foresight.Fleet.Services.JobSite;
|
|
using Foresight.Fleet.Services.SystemOption;
|
|
using IronIntel.Contractor.JobSites;
|
|
using IronIntel.Contractor.Maintenance;
|
|
using IronIntel.Contractor.MapView;
|
|
using IronIntel.Contractor.Security;
|
|
using IronIntel.Contractor.Users;
|
|
using IronIntel.Services.Customers;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
|
|
namespace IronIntel.Contractor.Site.Security
|
|
{
|
|
public class CurfewBasePage : ContractorBasePage
|
|
{
|
|
protected void ProcessRequest(string methodName)
|
|
{
|
|
object result = null;
|
|
try
|
|
{
|
|
if (methodName != null)
|
|
{
|
|
switch (methodName)
|
|
{
|
|
case "GetCurfews":
|
|
result = GetCurfews();
|
|
break;
|
|
case "GetCurfewInfo":
|
|
result = GetCurfewInfo();
|
|
break;
|
|
case "SaveCurfew":
|
|
result = SaveCurfew();
|
|
break;
|
|
case "GetUsers":
|
|
result = GetUsers();
|
|
break;
|
|
case "DeleteCurfew":
|
|
result = DeleteCurfew();
|
|
break;
|
|
case "GetSelectedMachines":
|
|
result = GetSelectedMachines();
|
|
break;
|
|
case "SaveCurfewMachines":
|
|
result = SaveCurfewMachines();
|
|
break;
|
|
case "GetSelectedAssets":
|
|
result = GetSelectedAssets();
|
|
break;
|
|
case "AssignAssetsToUser":
|
|
result = AssignAssetsToUser();
|
|
break;
|
|
case "RemoveAssignedAssetsFromUser":
|
|
result = RemoveAssignedAssetsFromUser();
|
|
break;
|
|
case "GetJobsiteList":
|
|
result = GetJobsiteList();
|
|
break;
|
|
case "GetSelectedJobsites":
|
|
result = GetSelectedJobsites();
|
|
break;
|
|
case "SaveCurfewJobsites":
|
|
result = SaveCurfewJobsites();
|
|
break;
|
|
case "GetMachineList":
|
|
result = GetMachineList();
|
|
break;
|
|
case "GetCurfewMovementTolerance":
|
|
result = GetCurfewMovementTolerance();
|
|
break;
|
|
case "UpdateCurfewMovementTolerance":
|
|
result = UpdateCurfewMovementTolerance();
|
|
break;
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemParams.WriteLog("error", "CurfewBasePage", ex.Message, ex.ToString());
|
|
throw ex;
|
|
}
|
|
string json = JsonConvert.SerializeObject(result);
|
|
Response.Write(json);
|
|
Response.End();
|
|
}
|
|
|
|
private object GetCurfews()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
CurfewInfo[] items = null;
|
|
if (session != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var searchtext = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
items = CurfewManagement.GetCurfews(session.SessionID, searchtext, contractordb);
|
|
}
|
|
else
|
|
{
|
|
items = new CurfewInfo[0];
|
|
}
|
|
return items.OrderBy(m => m.Title);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
private object GetCurfewInfo()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
return CurfewManagement.GetCurfewInfo(curfewid, contractordb);
|
|
}
|
|
else
|
|
return new CurfewInfo();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
private object SaveCurfew()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var data = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
var ci = JsonConvert.DeserializeObject<CurfewInfo>(data);
|
|
if (string.IsNullOrWhiteSpace(ci.CurfewID))
|
|
{
|
|
ci.CurfewID = Guid.NewGuid().ToString();
|
|
}
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
CurfewManagement.SaveCurfew(ci, GetCurrentLoginSession().User.UID, contractordb);
|
|
|
|
return new string[] { ci.CurfewID, "OK" };
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private object GetUsers()
|
|
{
|
|
try
|
|
{
|
|
UserInfo[] items = null;
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
items = UserManagement.GetUsers();
|
|
}
|
|
else
|
|
{
|
|
items = new UserInfo[0];
|
|
}
|
|
return items.OrderBy(m => m.ID);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string DeleteCurfew()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
CurfewManagement.DeleteCurfew(curfewid, contractordb);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private MaintenanceMachineInfo[] GetSelectedMachines()
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
var machines = CurfewManagement.GetCurfewMachinesByID(curfewid, contractordb);
|
|
|
|
return machines.OrderBy(m => m.VIN).ToArray();
|
|
}
|
|
|
|
private string SaveCurfewMachines()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
var machineids = HttpUtility.HtmlDecode(clientdata[2]);
|
|
if (string.IsNullOrWhiteSpace(contractorid))
|
|
contractorid = SystemParams.CompanyID;
|
|
|
|
string[] ids = JsonConvert.DeserializeObject<string[]>(machineids);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
CurfewManagement.SaveCurfewMachines(curfewid, contractorid, ids, contractordb);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private object[] GetSelectedAssets()
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var companyId = HttpUtility.HtmlDecode(clientdata[0]);
|
|
if (string.IsNullOrEmpty(companyId))
|
|
{
|
|
companyId = SystemParams.CompanyID;
|
|
}
|
|
var uid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
var machines = CreateClient<CurfewClient>(companyId).GetAssetsAssignedToCurfew(companyId, uid);
|
|
|
|
return machines.OrderBy(m => m.VIN).Select(m => new
|
|
{
|
|
ID = m.Id,
|
|
Name = string.IsNullOrEmpty(m.Name2) ? m.Name : m.Name2,
|
|
m.VIN,
|
|
m.MakeName,
|
|
m.ModelName,
|
|
m.TypeName
|
|
}).ToArray();
|
|
}
|
|
|
|
private string AssignAssetsToUser()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
if (session != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var companyId = HttpUtility.HtmlDecode(clientdata[0]);
|
|
if (string.IsNullOrEmpty(companyId))
|
|
{
|
|
companyId = SystemParams.CompanyID;
|
|
}
|
|
var uid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
var machineids = HttpUtility.HtmlDecode(clientdata[2]);
|
|
|
|
var ids = JsonConvert.DeserializeObject<long[]>(machineids);
|
|
|
|
CreateClient<CurfewClient>(companyId).AssignAssetsToCurfew(companyId, uid, ids, session.User.UID);
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string RemoveAssignedAssetsFromUser()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
if (session != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var companyId = HttpUtility.HtmlDecode(clientdata[0]);
|
|
if (string.IsNullOrEmpty(companyId))
|
|
{
|
|
companyId = SystemParams.CompanyID;
|
|
}
|
|
var uid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
var machineids = HttpUtility.HtmlDecode(clientdata[2]);
|
|
|
|
var ids = JsonConvert.DeserializeObject<long[]>(machineids);
|
|
|
|
CreateClient<CurfewClient>(companyId).RemoveAssetsFromCurfew(companyId, uid, ids, session.User.UID);
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private MaintenanceMachineInfo[] GetMachineList()
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
string contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
string type = HttpUtility.HtmlDecode(clientdata[1]);
|
|
string searchtxt = HttpUtility.HtmlDecode(clientdata[2]);
|
|
|
|
int typeid = 0;
|
|
int.TryParse(type, out typeid);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
var machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, typeid, searchtxt, session.User.UID, contractorid)
|
|
.OrderBy(m => m.VIN)
|
|
.ToArray();
|
|
|
|
return machines;
|
|
}
|
|
|
|
private object GetJobsiteList()
|
|
{
|
|
try
|
|
{
|
|
JobSiteViewItem[] items = null;
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
string contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
string searchtxt = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
var jss = CreateClient<JobSiteProvider>(contractorid).GetJobSiteItems(contractorid, "", false);
|
|
List<JobSiteViewItem> list = new List<JobSiteViewItem>();
|
|
foreach (var js in jss)
|
|
{
|
|
JobSiteViewItem item = new JobSiteViewItem();
|
|
item.ID = js.ID;
|
|
item.Name = js.Name;
|
|
|
|
list.Add(item);
|
|
}
|
|
items = list.ToArray();
|
|
}
|
|
else
|
|
{
|
|
items = new JobSiteViewItem[0];
|
|
}
|
|
return items;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
private object GetSelectedJobsites()
|
|
{
|
|
try
|
|
{
|
|
JobSiteViewItem[] items = null;
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
items = CurfewManagement.GetCurfewJobsitesByID(curfewid, contractordb);
|
|
}
|
|
else
|
|
{
|
|
items = new JobSiteViewItem[0];
|
|
}
|
|
return items;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string SaveCurfewJobsites()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
|
|
var jobsiteids = HttpUtility.HtmlDecode(clientdata[2]);
|
|
if (string.IsNullOrWhiteSpace(contractorid))
|
|
contractorid = SystemParams.CompanyID;
|
|
|
|
string[] ids = JsonConvert.DeserializeObject<string[]>(jobsiteids);
|
|
|
|
FISqlConnection contractordb = null;
|
|
if (!SystemParams.IsDealer)
|
|
contractorid = SystemParams.CompanyID;
|
|
else
|
|
{
|
|
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
|
|
contractordb = new FISqlConnection(connetionstring);
|
|
}
|
|
|
|
CurfewManagement.SaveCurfewJobsites(curfewid, contractorid, ids, contractordb);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
|
|
#region Curfew Movement Tolerance
|
|
|
|
private object GetCurfewMovementTolerance()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
CurfewMovementTolerance tolerance = CreateClient<SystemOptionProvider>().GetCurfewMovementTolerance(SystemParams.CompanyID);
|
|
if (tolerance == null)
|
|
{
|
|
return new CurfewMovementToleranceInfo();
|
|
}
|
|
|
|
CurfewMovementToleranceInfo toleranceinfo = new CurfewMovementToleranceInfo();
|
|
toleranceinfo.DefaultTolerance = tolerance.DefaultTolerance;
|
|
if (tolerance.JobSites != null && tolerance.JobSites.Count > 0)
|
|
{
|
|
toleranceinfo.JobSites = new List<JobSiteCurfewMovementToleranceInfo>();
|
|
foreach (var js in tolerance.JobSites)
|
|
{
|
|
JobSiteCurfewMovementToleranceInfo jsi = new JobSiteCurfewMovementToleranceInfo();
|
|
Helper.CloneProperty(jsi, js);
|
|
toleranceinfo.JobSites.Add(jsi);
|
|
}
|
|
}
|
|
|
|
return toleranceinfo;
|
|
}
|
|
else
|
|
{
|
|
return new CurfewMovementToleranceInfo();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
|
|
private string UpdateCurfewMovementTolerance()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
if (session != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"];
|
|
clientdata = HttpUtility.HtmlDecode(clientdata);
|
|
|
|
CurfewMovementToleranceInfo toleranceinfo = JsonConvert.DeserializeObject<CurfewMovementToleranceInfo>(clientdata);
|
|
|
|
CurfewMovementTolerance tolerance = new CurfewMovementTolerance();
|
|
tolerance.DefaultTolerance = toleranceinfo.DefaultTolerance;
|
|
foreach (JobSiteCurfewMovementToleranceInfo jsi in toleranceinfo.JobSites)
|
|
{
|
|
JobSiteCurfewMovementTolerance js = new JobSiteCurfewMovementTolerance();
|
|
Helper.CloneProperty(js, jsi);
|
|
tolerance.JobSites.Add(js);
|
|
}
|
|
|
|
CreateClient<SystemOptionProvider>().UpdateCurfewMovementTolerance(SystemParams.CompanyID, tolerance, session.User.UID);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|