using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using IronIntel.Contractor.Machines; using IronIntel.Contractor.Maintenance; using IronIntel.Services.Business.Admin; using System.Web; using IronIntel.Contractor.Users; using Foresight.ServiceModel; using Foresight.Fleet.Services.AssetHealth; namespace IronIntel.Contractor.Site.Maintenance { public class FuelRecordBasePage : ContractorBasePage { protected void ProcessRequest(string methodName) { object result = null; try { if (methodName != null) { switch (methodName.ToUpper()) { case "GETFUELRECORDS": result = GetFuelRecords(); break; case "GETFUELRECORDCHANGEHISTORY": result = GetFuelRecordChangeHistory(); break; case "SAVEFUELRECORD": result = SaveFuelRecord(); break; case "DELETEFUELRECORD": result = DeleteFuelRecord(); break; case "GETFUELTYPES": result = GetFuelTypes(); break; } } } catch (System.Threading.ThreadAbortException) { throw; } catch (Exception ex) { SystemParams.WriteLog("error", "FuelRecordsBasePage" + methodName, ex.Message, ex.ToString()); } string json = JsonConvert.SerializeObject(result); Response.Write(json); Response.End(); } private object GetFuelRecords() { try { var session = GetCurrentLoginSession(); if (session != null) { var clientdata = Request.Form["ClientData"].Split((char)170); var type = HttpUtility.HtmlDecode(clientdata[0]); var sdatestr = HttpUtility.HtmlDecode(clientdata[1]); var edatestr = HttpUtility.HtmlDecode(clientdata[2]); var searchtxt = HttpUtility.HtmlDecode(clientdata[3]); DateTime beginDate = DateTime.MinValue; DateTime endDate = DateTime.MaxValue; if (!DateTime.TryParse(sdatestr, out beginDate)) beginDate = DateTime.MinValue; if (!DateTime.TryParse(edatestr, out endDate)) endDate = DateTime.MaxValue; FuelRecord[] fuels = CreateClient().GetFuelRecords(SystemParams.CompanyID, Convert.ToInt64(type), beginDate, endDate, searchtxt); List list = new List(); foreach (FuelRecord fuel in fuels) { FuelRecordInfo fi = new FuelRecordInfo(); Helper.CloneProperty(fi, fuel); fi.TransactionDate = fi.TransactionDate.ToLocalTime(); list.Add(fi); } return list.ToArray(); } else return new FuelRecordInfo[0]; } catch (Exception ex) { AddLog("ERROR", "FuelRecordBasePage.GetFuelRecords", ex.Message, ex.ToString()); return ex.Message; } } private object GetFuelRecordChangeHistory() { try { var session = GetCurrentLoginSession(); if (session != null) { string clientdata = Request.Form["ClientData"]; long fuleid = Convert.ToInt64(HttpUtility.HtmlDecode(clientdata)); FuelRecordAuditInfo[] fuels = CreateClient().GetFuelRecordAuditItems(SystemParams.CompanyID, fuleid); List list = new List(); foreach (FuelRecordAuditInfo fuel in fuels) { FuelRecordAuditItem fi = new FuelRecordAuditItem(); Helper.CloneProperty(fi, fuel); fi.TransactionDate = fi.TransactionDate.ToLocalTime(); fi.AddedOn = fi.AddedOn.ToLocalTime(); fi.LastUpdatedOn = fi.LastUpdatedOn.ToLocalTime(); list.Add(fi); } return list.ToArray(); } else return new FuelRecordInfo[0]; } catch (Exception ex) { AddLog("ERROR", "FuelRecordBasePage.GetFuelRecords", ex.Message, ex.ToString()); return ex.Message; } } private object SaveFuelRecord() { try { var session = GetCurrentLoginSession(); if (session != null) { string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]); FuelRecordInfo fuelrecord = JsonConvert.DeserializeObject(clientdata); FuelRecord record = new FuelRecord(); Helper.CloneProperty(record, fuelrecord); record.TransactionDate = record.TransactionDate.ToUniversalTime(); long fuleid = record.FuelID; if (record.FuelID == -1) { FuelRecord fr = CreateClient().AddNewFuelRecord(SystemParams.CompanyID, record, session.User.UID); fuleid = fr.FuelID; } else { CreateClient().UpdateFuelRecord(SystemParams.CompanyID, record, session.User.UID); } return fuleid; } return "Failed"; } catch (Exception ex) { return ex.Message; } } private object DeleteFuelRecord() { try { var session = GetCurrentLoginSession(); if (session != null) { string clientdata = Request.Form["ClientData"]; long fuleid = Convert.ToInt64(HttpUtility.HtmlDecode(clientdata)); CreateClient().DeleteFuelRecord(SystemParams.CompanyID, fuleid, session.User.UID); return "OK"; } return "Failed"; } catch (Exception ex) { return ex.Message; } } private object GetFuelTypes() { try { var session = GetCurrentLoginSession(); if (session != null) { List> list = FuelManagementClient.FuelTypes.OrderBy(m => m.Value).ToList(); var type1 = list.FirstOrDefault(m => m.Value == "Unleaded Regular"); var type2 = list.FirstOrDefault(m => m.Value == "Unleaded Plus"); var type3 = list.FirstOrDefault(m => m.Value == "Diesel #1"); list.Remove(type1); list.Remove(type2); list.Remove(type3); list = list.OrderBy(m => m.Value).ToList(); list.Insert(0, type1); list.Insert(1, type2); list.Insert(2, type3); return list.ToArray(); } else return new StringKeyValue[0]; } catch (Exception ex) { AddLog("ERROR", "FuelRecordBasePage.GetFuelTypes", ex.Message, ex.ToString()); return ex.Message; } } } }