using System; using System.Collections.Generic; using Wayne.FDCPOSLibrary; using Wayne.FDCPOSLibrary.Configuration; namespace Wayne.ForecourtControl.Fusion { public class FUSIONConfig { private FUSIONForecourtControl forecourtControl; private IFSFSockets clientSocket; protected Dictionary serviceRequestClientList; public FUSIONConfig(int deviceId) { if (FUSIONFactory.fusionForecourtControlList.ContainsKey(deviceId)) { this.forecourtControl = (FUSIONForecourtControl)(FUSIONFactory.fusionForecourtControlList[deviceId]); clientSocket = this.forecourtControl.manager.ifsfManager.clientSocket; serviceRequestClientList = new Dictionary(); } } public event EventHandler OnConfigurationChanged; internal void FireOnConfigurationChanged() { if (this.OnConfigurationChanged != null) { this.OnConfigurationChanged(this, EventArgs.Empty); } } public void ConfigStart(EventHandler requestCompleted, object userToken, object src) { try { // create XML ServiceRequest object ServiceRequestConfigStart SvRes = new ServiceRequestConfigStart(); SvRes.ApplicationSender = this.clientSocket.applicationSender; SvRes.WorkstationID = this.clientSocket.workstationID; ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart posDataElem = new ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart(); posDataElem.POSTimeStamp = DateTime.Now.ToString(FDCConvert.DateFormat); ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart[] posDataArray = { posDataElem }; SvRes.POSdata = posDataArray; clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message + " - " + ex.StackTrace); } } public void ConfigEnd(EventHandler requestCompleted, object userToken, object src) { try { // create XML ServiceRequest object ServiceRequestConfigEnd SvRes = new ServiceRequestConfigEnd(); SvRes.ApplicationSender = this.clientSocket.applicationSender; SvRes.WorkstationID = this.clientSocket.workstationID; ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd posDataElem = new ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd(); posDataElem.POSTimeStamp = DateTime.Now.ToString(FDCConvert.DateFormat); ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd[] posDataArray = { posDataElem }; SvRes.POSdata = posDataArray; clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message + " - " + ex.StackTrace); } } public bool AddGrade(int gradeId) { try { Trace.WriteLine("init"); ServiceRequestDefGrades SvRes = null; string key = "DefGrades"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefGrades)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestDefGrades(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "DefGrades" && SvRes.RequestType != "DefGrade") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefGrades", SvRes.RequestType)); return false; } } ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades[] POSDataArray = null; POSDataElem = new ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefGrades.DefGradesGrade grade = null; if (POSDataElem.Grade != null) { foreach (ServiceRequestDefGrades.DefGradesGrade gradeTemp in POSDataElem.Grade) if (gradeTemp.Id == Convert.ToString(gradeId)) grade = gradeTemp; } if (grade == null && gradeId > 0) { grade = new ServiceRequestDefGrades.DefGradesGrade(); grade.Id = Convert.ToString(gradeId); ServiceRequestDefGrades.DefGradesGrade[] gradeArray = POSDataElem.Grade; IFSFManager.ArrayResize(ref gradeArray, (gradeArray != null) ? gradeArray.Length + 1 : 1); gradeArray[gradeArray.Length - 1] = grade; POSDataElem.Grade = gradeArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddGradeSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefGrades SvRes = null; string key = "DefGrades"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefGrades)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddAssignGradePar(int gradeId, string gradeName) { try { Trace.WriteLine("init"); ServiceRequestAssignGradePars SvRes = null; string key = "AssignGradePars"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignGradePars)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestAssignGradePars(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "AssignGradePars") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignGradePars", SvRes.RequestType)); return false; } } ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars[] POSDataArray = null; POSDataElem = new ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestAssignGradePars.AssignGradeParsGrade grade = null; if (POSDataElem.Grade != null) { foreach (ServiceRequestAssignGradePars.AssignGradeParsGrade gradeTemp in POSDataElem.Grade) if (gradeTemp.Id == Convert.ToString(gradeId)) grade = gradeTemp; } if (grade == null && gradeId > 0) { grade = new ServiceRequestAssignGradePars.AssignGradeParsGrade(); grade.Id = Convert.ToString(gradeId); grade.Name = gradeName; ServiceRequestAssignGradePars.AssignGradeParsGrade[] gradeArray = POSDataElem.Grade; IFSFManager.ArrayResize(ref gradeArray, (gradeArray != null) ? gradeArray.Length + 1 : 1); gradeArray[gradeArray.Length - 1] = grade; POSDataElem.Grade = gradeArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddAssignGradeParsSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestAssignGradePars SvRes = null; string key = "AssignGradePars"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignGradePars)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddTank(int tankId, int gradeId, int capacity, int overflowLimit, int productHighLimit, int productLowLimit, int suctionLimit, double waterHighLimit, int temperatureHighLimit, int temperatureLowLimit, int leakMinimumElapsedTime, double leakVolumeTrigger) { try { Trace.WriteLine("init"); ServiceRequestDefTanks SvRes = null; string key = "DefTanks"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefTanks)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestDefTanks(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "DefTanks") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefTanks", SvRes.RequestType)); return false; } } ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks[] POSDataArray = null; POSDataElem = new ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefTanks.DefTanksTank tank = null; if (POSDataElem.Tank != null) { foreach (ServiceRequestDefTanks.DefTanksTank tankTemp in POSDataElem.Tank) if (tankTemp.Id == Convert.ToString(tankId)) tank = tankTemp; } if (tank == null && tankId > 0) { tank = new ServiceRequestDefTanks.DefTanksTank(); tank.Id = Convert.ToString(tankId); tank.GradeId = Convert.ToString(gradeId); tank.Capacity = Convert.ToString(capacity); tank.OverflowLimit = Convert.ToString(overflowLimit); tank.ProductHighLimit = Convert.ToString(productHighLimit); tank.ProductLowLimit = Convert.ToString(productLowLimit); tank.SuctionLimit = Convert.ToString(suctionLimit); tank.WaterHighLimit = FDCConvert.ToString(waterHighLimit); tank.TemperatureHighLimit = Convert.ToString(temperatureHighLimit); tank.TemperatureLowLimit = Convert.ToString(temperatureLowLimit); tank.LeakMinimumElapsedTime = Convert.ToString(leakMinimumElapsedTime); tank.LeakVolumeTrigger = FDCConvert.ToString(leakVolumeTrigger); ServiceRequestDefTanks.DefTanksTank[] tankArray = POSDataElem.Tank; IFSFManager.ArrayResize(ref tankArray, (tankArray != null) ? tankArray.Length + 1 : 1); tankArray[tankArray.Length - 1] = tank; POSDataElem.Tank = tankArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddTanksSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefTanks SvRes = null; string key = "DefTanks"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefTanks)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddFuelMode(int id, string name, int authType, int maxAuthTime, int nozzleLayDownTime, int minGuardTime, int paymentType, double minVolume, double minMoney, int SupTransBufSize) { try { Trace.WriteLine("init"); ServiceRequestDefFuelMode SvRes = null; string key = "DefFuelMode"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefFuelMode)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestDefFuelMode(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "DefFuelMode") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefFuelMode", SvRes.RequestType)); return false; } } ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode[] POSDataArray = null; POSDataElem = new ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefFuelMode.DefFuelModeFuelMode fuelMode = null; if (POSDataElem.FuelMode != null) { foreach (ServiceRequestDefFuelMode.DefFuelModeFuelMode fuelModeTemp in POSDataElem.FuelMode) if (fuelModeTemp.Id == Convert.ToString(id)) fuelMode = fuelModeTemp; } if (fuelMode == null && id > 0) { fuelMode = new ServiceRequestDefFuelMode.DefFuelModeFuelMode(); fuelMode.Id = Convert.ToString(id); fuelMode.MaxAuthTime = Convert.ToString(maxAuthTime); fuelMode.MinGuardTime = Convert.ToString(minGuardTime); fuelMode.MinMoney = Convert.ToString(minMoney); fuelMode.MinVolume = Convert.ToString(minVolume); fuelMode.Name = Convert.ToString(name); fuelMode.NozzleLayDownTime = Convert.ToString(nozzleLayDownTime); fuelMode.PaymentType = Convert.ToString(paymentType); fuelMode.SupTransBufSize = Convert.ToString(SupTransBufSize); fuelMode.AuthType = Convert.ToString(authType); ServiceRequestDefFuelMode.DefFuelModeFuelMode[] fuelModeArray = POSDataElem.FuelMode; IFSFManager.ArrayResize(ref fuelModeArray, (fuelModeArray != null) ? fuelModeArray.Length + 1 : 1); fuelModeArray[fuelModeArray.Length - 1] = fuelMode; POSDataElem.FuelMode = fuelModeArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddFuelModeSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefFuelMode SvRes = null; string key = "DefFuelMode"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefFuelMode)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool SetFuellingModes(int fuellingType, double maxVolume, double maxMoney, int maxFuellingTime, int maxTimeNoProgress, int maxTimeToMinLimit, int presetOverrunLimit) { //try //{ // Trace.WriteLine("init"); // ServiceRequestDefFuelMode SvRes = null; // string key = FDCPOSClient.getClientID(this.clientSocket.workstationID, this.clientSocket.applicationSender) + "DefFuelMode"; // if (serviceRequestClientList.ContainsKey(key)) // { // clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); // serviceRequestClientList.Remove(key); // Trace.WriteLine("end"); // return true; // } //} //catch (Exception ex) //{ // Trace.WriteLine("Exception! " + ex.Message); //} return false; } public bool AddFuelPoint(int id, int pumpType, string comChannelId, string IPAddress, int IPPort, int physicalAddress, int internalAddress) { try { Trace.WriteLine("init"); ServiceRequestDefFuelPoint SvRes = null; string key = "DefFuelPoint"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestDefFuelPoint(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "DefFuelPoint") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefFuelPoint", SvRes.RequestType)); return false; } } ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint[] POSDataArray = null; POSDataElem = new ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpoint = null; if (POSDataElem.FuelPoint != null) { foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpointTemp in POSDataElem.FuelPoint) if (fuelpointTemp.Id == Convert.ToString(id)) fuelpoint = fuelpointTemp; } if (fuelpoint == null && id > 0) { fuelpoint = new ServiceRequestDefFuelPoint.DefFuelPointFuelPoint(); fuelpoint.Id = Convert.ToString(id); fuelpoint.ComChannelId = comChannelId; fuelpoint.InternalAddress = Convert.ToString(internalAddress); fuelpoint.IPAddress = IPAddress; fuelpoint.IPPort = Convert.ToString(IPPort); fuelpoint.PhysicalAddress = Convert.ToString(physicalAddress); fuelpoint.PumpType = Convert.ToString(pumpType); ServiceRequestDefFuelPoint.DefFuelPointFuelPoint[] fuelpointArray = POSDataElem.FuelPoint; IFSFManager.ArrayResize(ref fuelpointArray, (fuelpointArray != null) ? fuelpointArray.Length + 1 : 1); fuelpointArray[fuelpointArray.Length - 1] = fuelpoint; POSDataElem.FuelPoint = fuelpointArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddNozzle(int pumpId, int nozzleId) { try { Trace.WriteLine("init"); ServiceRequestDefFuelPoint SvRes = null; string key = "DefFuelPoint"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]); if (SvRes == null) { Trace.WriteLine(string.Format("RequestType DefFuelPoint NOT found!!! return FALSE", SvRes.RequestType)); return false; } ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint[] POSDataArray = null; POSDataElem = new ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpoint = null; if (POSDataElem.FuelPoint != null) { foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpointTemp in POSDataElem.FuelPoint) if (fuelpointTemp.Id == Convert.ToString(pumpId)) fuelpoint = fuelpointTemp; } if (fuelpoint == null && pumpId > 0) { Trace.WriteLine(string.Format("fuel point id={0} NOT found!!! return FALSE", pumpId)); return false; } else { ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle nozzle = null; if (fuelpoint.Nozzle != null) { foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle nozzleTemp in fuelpoint.Nozzle) if (nozzleTemp.Id == Convert.ToString(nozzleId)) nozzle = nozzleTemp; } if (nozzle == null) { nozzle = new ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle(); nozzle.Id = Convert.ToString(nozzleId); ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle[] nozzleArray = fuelpoint.Nozzle; IFSFManager.ArrayResize(ref nozzleArray, (nozzleArray != null) ? nozzleArray.Length + 1 : 1); nozzleArray[nozzleArray.Length - 1] = nozzle; fuelpoint.Nozzle = nozzleArray; } } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AddFuelPointsSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefFuelPoint SvRes = null; string key = "DefFuelPoint"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AssignGrade(int pumpId, int nozzleId, int gradeId) { try { Trace.WriteLine("init"); ServiceRequestAssignGrades SvRes = null; string key = "AssignGrades"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignGrades)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestAssignGrades(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "AssignGrades") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignGrades", SvRes.RequestType)); return false; } } ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades[] POSDataArray = null; POSDataElem = new ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestAssignGrades.AssignGradesFuelPoint gradeFP = null; if (POSDataElem.FuelPoint != null) { foreach (ServiceRequestAssignGrades.AssignGradesFuelPoint gradeFPTemp in POSDataElem.FuelPoint) if (gradeFPTemp.Id == Convert.ToString(pumpId)) gradeFP = gradeFPTemp; } if (gradeFP == null && pumpId > 0) { gradeFP = new ServiceRequestAssignGrades.AssignGradesFuelPoint(); gradeFP.Id = Convert.ToString(pumpId); ServiceRequestAssignGrades.AssignGradesFuelPoint[] gradeFPArray = POSDataElem.FuelPoint; IFSFManager.ArrayResize(ref gradeFPArray, (gradeFPArray != null) ? gradeFPArray.Length + 1 : 1); gradeFPArray[gradeFPArray.Length - 1] = gradeFP; POSDataElem.FuelPoint = gradeFPArray; } ServiceRequestAssignGrades.AssignGradesFuelPointNozzle gradeNozzle = null; if (gradeFP.Nozzle != null) { foreach (ServiceRequestAssignGrades.AssignGradesFuelPointNozzle gradeNozzleTemp in gradeFP.Nozzle) if (gradeNozzleTemp.Id == Convert.ToString(nozzleId)) gradeNozzle = gradeNozzleTemp; } if (gradeNozzle == null && nozzleId > 0) { gradeNozzle = new ServiceRequestAssignGrades.AssignGradesFuelPointNozzle(); gradeNozzle.Id = Convert.ToString(nozzleId); gradeNozzle.GradeId = Convert.ToString(gradeId); ServiceRequestAssignGrades.AssignGradesFuelPointNozzle[] gradeNozzleArray = gradeFP.Nozzle; IFSFManager.ArrayResize(ref gradeNozzleArray, (gradeNozzleArray != null) ? gradeNozzleArray.Length + 1 : 1); gradeNozzleArray[gradeNozzleArray.Length - 1] = gradeNozzle; gradeFP.Nozzle = gradeNozzleArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } Trace.WriteLine("end"); return false; } public bool AssignGradesSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestAssignGrades SvRes = null; string key = "AssignGrades"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignGrades)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AssignMeter(int pumpId, int gradeId, int meterId, int part) { try { Trace.WriteLine("init"); ServiceRequestAssignMeters SvRes = null; string key = "AssignMeters"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignMeters)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestAssignMeters(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "AssignMeters") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignMeters", SvRes.RequestType)); return false; } } ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters[] POSDataArray = null; POSDataElem = new ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestAssignMeters.AssignMetersFuelPoint meterFP = null; if (POSDataElem.FuelPoint != null) { foreach (ServiceRequestAssignMeters.AssignMetersFuelPoint meterFPTemp in POSDataElem.FuelPoint) if (meterFPTemp.Id == Convert.ToString(pumpId)) meterFP = meterFPTemp; } if (meterFP == null && pumpId > 0) { meterFP = new ServiceRequestAssignMeters.AssignMetersFuelPoint(); meterFP.Id = Convert.ToString(pumpId); ServiceRequestAssignMeters.AssignMetersFuelPoint[] meterFPArray = POSDataElem.FuelPoint; IFSFManager.ArrayResize(ref meterFPArray, (meterFPArray != null) ? meterFPArray.Length + 1 : 1); meterFPArray[meterFPArray.Length - 1] = meterFP; POSDataElem.FuelPoint = meterFPArray; } ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption gradeOption = null; if (meterFP.GradeOption != null) { foreach (ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption gradeOptionTemp in meterFP.GradeOption) if (gradeOptionTemp.Id == Convert.ToString(gradeId)) gradeOption = gradeOptionTemp; } if (gradeOption == null && gradeId > 0) { gradeOption = new ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption(); gradeOption.Id = Convert.ToString(gradeId); ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption[] gradeOptionArray = meterFP.GradeOption; IFSFManager.ArrayResize(ref gradeOptionArray, (gradeOptionArray != null) ? gradeOptionArray.Length + 1 : 1); gradeOptionArray[gradeOptionArray.Length - 1] = gradeOption; meterFP.GradeOption = gradeOptionArray; } ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter gradeOptionMeter = null; if (gradeOption.Meter != null) { foreach (ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter gradeOptionMeterTemp in gradeOption.Meter) if (gradeOptionMeterTemp.Id == Convert.ToString(meterId)) gradeOptionMeter = gradeOptionMeterTemp; } if (gradeOptionMeter == null && meterId > 0) { gradeOptionMeter = new ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter(); gradeOptionMeter.Id = Convert.ToString(meterId); gradeOptionMeter.Part = Convert.ToString(part); ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter[] gradeOptionMeterArray = gradeOption.Meter; IFSFManager.ArrayResize(ref gradeOptionMeterArray, (gradeOptionMeterArray != null) ? gradeOptionMeterArray.Length + 1 : 1); gradeOptionMeterArray[gradeOptionMeterArray.Length - 1] = gradeOptionMeter; gradeOption.Meter = gradeOptionMeterArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AssignMetersSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestAssignMeters SvRes = null; string key = "AssignMeters"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignMeters)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AssignTank(int pumpId, int meterId, int tankId) { try { Trace.WriteLine("init"); ServiceRequestAssignTanks SvRes = null; string key = "AssignTanks"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignTanks)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestAssignTanks(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "AssignTanks") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignTanks", SvRes.RequestType)); return false; } } ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks[] POSDataArray = null; POSDataElem = new ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestAssignTanks.AssignTanksFuelPoint tankFP = null; if (POSDataElem.FuelPoint != null) { foreach (ServiceRequestAssignTanks.AssignTanksFuelPoint tankFPTemp in POSDataElem.FuelPoint) if (tankFPTemp.Id == Convert.ToString(pumpId)) tankFP = tankFPTemp; } if (tankFP == null && pumpId > 0) { tankFP = new ServiceRequestAssignTanks.AssignTanksFuelPoint(); tankFP.Id = Convert.ToString(pumpId); ServiceRequestAssignTanks.AssignTanksFuelPoint[] tankFPArray = POSDataElem.FuelPoint; IFSFManager.ArrayResize(ref tankFPArray, (tankFPArray != null) ? tankFPArray.Length + 1 : 1); tankFPArray[tankFPArray.Length - 1] = tankFP; POSDataElem.FuelPoint = tankFPArray; } ServiceRequestAssignTanks.AssignTanksFuelPointMeter tankMeter = null; if (tankFP.Meter != null) { foreach (ServiceRequestAssignTanks.AssignTanksFuelPointMeter tankMeterTemp in tankFP.Meter) if (tankMeterTemp.Id == Convert.ToString(meterId)) tankMeter = tankMeterTemp; } if (tankMeter == null && meterId > 0) { tankMeter = new ServiceRequestAssignTanks.AssignTanksFuelPointMeter(); tankMeter.Id = Convert.ToString(meterId); tankMeter.Tank = Convert.ToString(tankId); ServiceRequestAssignTanks.AssignTanksFuelPointMeter[] tankMeterArray = tankFP.Meter; IFSFManager.ArrayResize(ref tankMeterArray, (tankMeterArray != null) ? tankMeterArray.Length + 1 : 1); tankMeterArray[tankMeterArray.Length - 1] = tankMeter; tankFP.Meter = tankMeterArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AssignTanksSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestAssignTanks SvRes = null; string key = "AssignTanks"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestAssignTanks)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddPricePole(int id, int type, int physicalAddress, string COMPort) { return false; } public bool AddPricePoleRow(int id, int gradeId, int fuelMode, int position) { return false; } public bool AddPricePoleSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefPricePole SvRes = null; string key = "DefPricePole"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefPricePole)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool LoadPriceset(int id, int gradeId, double price) { return false; } public bool LoadPricesetSend(EventHandler requestCompleted, object userToken, object src) { return false; } public bool AddTankMonitor(int id, int type, string COMPort, int timeBetweenRead, int sendTransactions, int messageSentUnsolicited) { try { Trace.WriteLine(string.Format("init: id={0}, type={1}, COMPort={2}, timeBetweenRead={3}, sendTransactions={4}, messageSentUnsolicited={5}", id, type, COMPort, timeBetweenRead, sendTransactions, messageSentUnsolicited)); ServiceRequestDefTankMonitor SvRes = null; string key = "DefTankMonitor"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]); if (SvRes == null) { SvRes = new ServiceRequestDefTankMonitor(); SvRes.WorkstationID = this.clientSocket.workstationID; SvRes.ApplicationSender = this.clientSocket.applicationSender; serviceRequestClientList.Add(key, SvRes); } else { if (SvRes.RequestType != "DefTankMonitor") { Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefTankMonitor", SvRes.RequestType)); return false; } } ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor[] POSDataArray = null; POSDataElem = new ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitor = null; if (POSDataElem.TankMonitor != null) { foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitorTemp in POSDataElem.TankMonitor) if (tankMonitorTemp.Id == Convert.ToString(id)) tankMonitor = tankMonitorTemp; } if (tankMonitor == null && id > 0) { tankMonitor = new ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor(); tankMonitor.Id = Convert.ToString(id); tankMonitor.Type = Convert.ToString(type); tankMonitor.COMPort = COMPort; tankMonitor.TimeBetweenRead = Convert.ToString(timeBetweenRead); tankMonitor.SendTransactions = Convert.ToString(sendTransactions); tankMonitor.MessageSentUnsolicited = Convert.ToString(messageSentUnsolicited); ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor[] tankMonitorArray = POSDataElem.TankMonitor; IFSFManager.ArrayResize(ref tankMonitorArray, (tankMonitorArray != null) ? tankMonitorArray.Length + 1 : 1); tankMonitorArray[tankMonitorArray.Length - 1] = tankMonitor; POSDataElem.TankMonitor = tankMonitorArray; } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddTankProbe(int tankMonitorId, string probeSN, int tankId, double floatOffset, double minimumHeight, int boardNumber, int connector) { try { Trace.WriteLine(string.Format("init: tankMonitorId={0}, probeSN={1}, tankId={2}, boardNumber={3}, connector={4}", tankMonitorId, probeSN, tankId, boardNumber, connector)); ServiceRequestDefTankMonitor SvRes = null; string key = "DefTankMonitor"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]); if (SvRes == null) { Trace.WriteLine(string.Format("RequestType DefTankMonitor NOT found!!! return FALSE", SvRes.RequestType)); return false; } ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor POSDataElem = null; if (SvRes.POSdata != null) POSDataElem = SvRes.POSdata[0]; else { ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor[] POSDataArray = null; POSDataElem = new ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor(); IFSFManager.ArrayResize(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1); POSDataArray[POSDataArray.Length - 1] = POSDataElem; POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now); SvRes.POSdata = POSDataArray; } ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitor = null; if (POSDataElem.TankMonitor != null) { foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitorTemp in POSDataElem.TankMonitor) if (tankMonitorTemp.Id == Convert.ToString(tankMonitorId)) tankMonitor = tankMonitorTemp; } if (tankMonitor == null && tankMonitorId > 0) { Trace.WriteLine(string.Format("TankMonitor id={0} NOT found!!! return FALSE", tankMonitorId)); return false; } else { ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe probe = null; if (tankMonitor.Probe != null) { foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe probeTemp in tankMonitor.Probe) if (probeTemp.Id == probeSN) probe = probeTemp; } if (probe == null) { probe = new ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe(); probe.Id = probeSN; probe.TankId = Convert.ToString(tankId); probe.FloatOffset = FDCConvert.ToString(floatOffset); probe.MinimumHeight = FDCConvert.ToString(minimumHeight); probe.BoardNumber = Convert.ToString(boardNumber); probe.Connector = Convert.ToString(connector); ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe[] probeArray = tankMonitor.Probe; IFSFManager.ArrayResize(ref probeArray, (probeArray != null) ? probeArray.Length + 1 : 1); probeArray[probeArray.Length - 1] = probe; tankMonitor.Probe = probeArray; } } Trace.WriteLine("end"); return true; } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } public bool AddTankMonitorSend(EventHandler requestCompleted, object userToken, object src) { try { Trace.WriteLine("init"); ServiceRequestDefTankMonitor SvRes = null; string key = "DefTankMonitor"; if (serviceRequestClientList.ContainsKey(key)) SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]); if (SvRes != null) { clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true); serviceRequestClientList.Remove(key); Trace.WriteLine("end"); return true; } } catch (Exception ex) { Trace.WriteLine("Exception! " + ex.Message); } return false; } } }