291 lines
8.7 KiB
C#
291 lines
8.7 KiB
C#
using Foresight.Fleet.Services.JobSite;
|
|
using Foresight.ServiceModel;
|
|
using IronIntel.Contractor.Contact;
|
|
using IronIntel.Contractor.JobSites;
|
|
using IronIntel.Contractor.Maintenance;
|
|
using IronIntel.Contractor.MapView;
|
|
using IronIntel.Contractor.Users;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Web;
|
|
|
|
namespace IronIntel.Contractor.Site.Contact
|
|
{
|
|
public class ContactBasePage : ContractorBasePage
|
|
{
|
|
protected void ProcessRequest(string methodName)
|
|
{
|
|
object result = null;
|
|
try
|
|
{
|
|
if (methodName != null)
|
|
{
|
|
switch (methodName)
|
|
{
|
|
case "GetContacts":
|
|
result = GetContacts();
|
|
break;
|
|
case "SaveContact":
|
|
result = SaveContact();
|
|
break;
|
|
case "GetUsers":
|
|
result = GetUsers();
|
|
break;
|
|
case "DeleteContact":
|
|
result = DeleteContact();
|
|
break;
|
|
case "GetSelectedMachines":
|
|
result = GetSelectedMachines();
|
|
break;
|
|
case "SaveContactMachines":
|
|
result = SaveContactMachines();
|
|
break;
|
|
case "GetJobsiteList":
|
|
result = GetJobsiteList();
|
|
break;
|
|
case "GetSelectedJobsites":
|
|
result = GetSelectedJobsites();
|
|
break;
|
|
case "SaveContactJobsites":
|
|
result = SaveContactJobsites();
|
|
break;
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemParams.WriteLog("error", "ContactBasePage", ex.Message, ex.ToString());
|
|
throw ex;
|
|
}
|
|
string json = JsonConvert.SerializeObject(result);
|
|
Response.Write(json);
|
|
Response.End();
|
|
}
|
|
|
|
private object GetContacts()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
ContactInfo[] items = null;
|
|
if (session != null)
|
|
{
|
|
var s = Request.Form["ClientData"];
|
|
s = HttpUtility.HtmlDecode(s);
|
|
|
|
items = ContactManagement.GetContacts(session.SessionID);
|
|
}
|
|
else
|
|
{
|
|
items = new ContactInfo[0];
|
|
}
|
|
return items.OrderBy(m => m.ContactName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string SaveContact()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var s = Request.Form["ClientData"];
|
|
s = HttpUtility.HtmlDecode(s);
|
|
|
|
var ci = JsonConvert.DeserializeObject<ContactInfo>(s);
|
|
if (string.IsNullOrWhiteSpace(ci.ContactID))
|
|
{
|
|
ci.ContactID = Guid.NewGuid().ToString();
|
|
}
|
|
|
|
ContactManagement.SaveContact(ci, GetCurrentLoginSession().User.UID);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private object GetUsers()
|
|
{
|
|
try
|
|
{
|
|
var session = GetCurrentLoginSession();
|
|
UserInfo[] items = null;
|
|
if (session != null)
|
|
{
|
|
items = UserManagement.GetUsers();
|
|
}
|
|
else
|
|
{
|
|
items = new UserInfo[0];
|
|
}
|
|
return items.OrderBy(m => m.ID);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string DeleteContact()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var contactid = Request.Form["ClientData"];
|
|
contactid = HttpUtility.HtmlDecode(contactid);
|
|
ContactManagement.DeleteContact(contactid);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private MaintenanceMachineInfo[] GetSelectedMachines()
|
|
{
|
|
var contactid = Request.Form["ClientData"];
|
|
var machines = ContactManagement.GetContactMachinesByID(contactid);
|
|
|
|
return machines.OrderBy(m => m.VIN).ToArray();
|
|
}
|
|
|
|
private string SaveContactMachines()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contactid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var machineids = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
string[] ids = JsonConvert.DeserializeObject<string[]>(machineids);
|
|
|
|
ContactManagement.SaveContactMachines(contactid, SystemParams.CompanyID, ids);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private object GetJobsiteList()
|
|
{
|
|
try
|
|
{
|
|
JobSiteViewItem[] items = null;
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var s = Request.Form["ClientData"];
|
|
s = HttpUtility.UrlDecode(s);
|
|
|
|
var jss = CreateClient<JobSiteProvider>().GetJobSiteItems(SystemParams.CompanyID, "", 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 contactid = Request.Form["ClientData"];
|
|
contactid = HttpUtility.UrlDecode(contactid);
|
|
|
|
items = ContactManagement.GetContactJobsitesByID(contactid);
|
|
}
|
|
else
|
|
{
|
|
items = new JobSiteViewItem[0];
|
|
}
|
|
return items;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
|
|
private string SaveContactJobsites()
|
|
{
|
|
try
|
|
{
|
|
if (GetCurrentLoginSession() != null)
|
|
{
|
|
var clientdata = Request.Form["ClientData"].Split((char)170);
|
|
var contactid = HttpUtility.HtmlDecode(clientdata[0]);
|
|
var jobsiteids = HttpUtility.HtmlDecode(clientdata[1]);
|
|
|
|
string[] ids = JsonConvert.DeserializeObject<string[]>(jobsiteids);
|
|
|
|
ContactManagement.SaveContactJobsites(contactid, SystemParams.CompanyID, ids);
|
|
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "Failed";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|