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(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(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().GetJobSiteItems(SystemParams.CompanyID, "", false); List list = new List(); 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(jobsiteids); ContactManagement.SaveContactJobsites(contactid, SystemParams.CompanyID, ids); return "OK"; } else { return "Failed"; } } catch (Exception ex) { return ex.Message; } } } }