FUSIONConfig.cs 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209
  1. using System;
  2. using System.Collections.Generic;
  3. using Wayne.FDCPOSLibrary;
  4. using Wayne.FDCPOSLibrary.Configuration;
  5. namespace Wayne.ForecourtControl.Fusion
  6. {
  7. public class FUSIONConfig
  8. {
  9. private FUSIONForecourtControl forecourtControl;
  10. private IFSFSockets clientSocket;
  11. protected Dictionary<string, ServiceRequest> serviceRequestClientList;
  12. public FUSIONConfig(int deviceId)
  13. {
  14. if (FUSIONFactory.fusionForecourtControlList.ContainsKey(deviceId))
  15. {
  16. this.forecourtControl = (FUSIONForecourtControl)(FUSIONFactory.fusionForecourtControlList[deviceId]);
  17. clientSocket = this.forecourtControl.manager.ifsfManager.clientSocket;
  18. serviceRequestClientList = new Dictionary<string, ServiceRequest>();
  19. }
  20. }
  21. public event EventHandler OnConfigurationChanged;
  22. internal void FireOnConfigurationChanged()
  23. {
  24. if (this.OnConfigurationChanged != null)
  25. {
  26. this.OnConfigurationChanged(this, EventArgs.Empty);
  27. }
  28. }
  29. public void ConfigStart(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  30. {
  31. try
  32. {
  33. // create XML ServiceRequest object
  34. ServiceRequestConfigStart SvRes = new ServiceRequestConfigStart();
  35. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  36. SvRes.WorkstationID = this.clientSocket.workstationID;
  37. ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart posDataElem = new ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart();
  38. posDataElem.POSTimeStamp = DateTime.Now.ToString(FDCConvert.DateFormat);
  39. ServiceRequestConfigStart.ServiceRequestPOSdataConfigStart[] posDataArray = { posDataElem };
  40. SvRes.POSdata = posDataArray;
  41. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  42. }
  43. catch (Exception ex)
  44. {
  45. Trace.WriteLine("Exception! " + ex.Message + " - " + ex.StackTrace);
  46. }
  47. }
  48. public void ConfigEnd(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  49. {
  50. try
  51. {
  52. // create XML ServiceRequest object
  53. ServiceRequestConfigEnd SvRes = new ServiceRequestConfigEnd();
  54. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  55. SvRes.WorkstationID = this.clientSocket.workstationID;
  56. ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd posDataElem = new ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd();
  57. posDataElem.POSTimeStamp = DateTime.Now.ToString(FDCConvert.DateFormat);
  58. ServiceRequestConfigEnd.ServiceRequestPOSdataConfigEnd[] posDataArray = { posDataElem };
  59. SvRes.POSdata = posDataArray;
  60. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  61. }
  62. catch (Exception ex)
  63. {
  64. Trace.WriteLine("Exception! " + ex.Message + " - " + ex.StackTrace);
  65. }
  66. }
  67. public bool AddGrade(int gradeId)
  68. {
  69. try
  70. {
  71. Trace.WriteLine("init");
  72. ServiceRequestDefGrades SvRes = null;
  73. string key = "DefGrades";
  74. if (serviceRequestClientList.ContainsKey(key))
  75. SvRes = (ServiceRequestDefGrades)(serviceRequestClientList[key]);
  76. if (SvRes == null)
  77. {
  78. SvRes = new ServiceRequestDefGrades();
  79. SvRes.WorkstationID = this.clientSocket.workstationID;
  80. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  81. serviceRequestClientList.Add(key, SvRes);
  82. }
  83. else
  84. {
  85. if (SvRes.RequestType != "DefGrades" && SvRes.RequestType != "DefGrade")
  86. {
  87. Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefGrades", SvRes.RequestType));
  88. return false;
  89. }
  90. }
  91. ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades POSDataElem = null;
  92. if (SvRes.POSdata != null)
  93. POSDataElem = SvRes.POSdata[0];
  94. else
  95. {
  96. ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades[] POSDataArray = null;
  97. POSDataElem = new ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades();
  98. IFSFManager.ArrayResize<ServiceRequestDefGrades.ServiceRequestPOSdataDefGrades>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  99. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  100. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  101. SvRes.POSdata = POSDataArray;
  102. }
  103. ServiceRequestDefGrades.DefGradesGrade grade = null;
  104. if (POSDataElem.Grade != null)
  105. {
  106. foreach (ServiceRequestDefGrades.DefGradesGrade gradeTemp in POSDataElem.Grade)
  107. if (gradeTemp.Id == Convert.ToString(gradeId))
  108. grade = gradeTemp;
  109. }
  110. if (grade == null && gradeId > 0)
  111. {
  112. grade = new ServiceRequestDefGrades.DefGradesGrade();
  113. grade.Id = Convert.ToString(gradeId);
  114. ServiceRequestDefGrades.DefGradesGrade[] gradeArray = POSDataElem.Grade;
  115. IFSFManager.ArrayResize<ServiceRequestDefGrades.DefGradesGrade>(ref gradeArray, (gradeArray != null) ? gradeArray.Length + 1 : 1);
  116. gradeArray[gradeArray.Length - 1] = grade;
  117. POSDataElem.Grade = gradeArray;
  118. }
  119. Trace.WriteLine("end");
  120. return true;
  121. }
  122. catch (Exception ex)
  123. {
  124. Trace.WriteLine("Exception! " + ex.Message);
  125. }
  126. Trace.WriteLine("end");
  127. return false;
  128. }
  129. public bool AddGradeSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  130. {
  131. try
  132. {
  133. Trace.WriteLine("init");
  134. ServiceRequestDefGrades SvRes = null;
  135. string key = "DefGrades";
  136. if (serviceRequestClientList.ContainsKey(key))
  137. SvRes = (ServiceRequestDefGrades)(serviceRequestClientList[key]);
  138. if (SvRes != null)
  139. {
  140. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  141. serviceRequestClientList.Remove(key);
  142. Trace.WriteLine("end");
  143. return true;
  144. }
  145. }
  146. catch (Exception ex)
  147. {
  148. Trace.WriteLine("Exception! " + ex.Message);
  149. }
  150. return false;
  151. }
  152. public bool AddAssignGradePar(int gradeId, string gradeName)
  153. {
  154. try
  155. {
  156. Trace.WriteLine("init");
  157. ServiceRequestAssignGradePars SvRes = null;
  158. string key = "AssignGradePars";
  159. if (serviceRequestClientList.ContainsKey(key))
  160. SvRes = (ServiceRequestAssignGradePars)(serviceRequestClientList[key]);
  161. if (SvRes == null)
  162. {
  163. SvRes = new ServiceRequestAssignGradePars();
  164. SvRes.WorkstationID = this.clientSocket.workstationID;
  165. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  166. serviceRequestClientList.Add(key, SvRes);
  167. }
  168. else
  169. {
  170. if (SvRes.RequestType != "AssignGradePars")
  171. {
  172. Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignGradePars", SvRes.RequestType));
  173. return false;
  174. }
  175. }
  176. ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars POSDataElem = null;
  177. if (SvRes.POSdata != null)
  178. POSDataElem = SvRes.POSdata[0];
  179. else
  180. {
  181. ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars[] POSDataArray = null;
  182. POSDataElem = new ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars();
  183. IFSFManager.ArrayResize<ServiceRequestAssignGradePars.ServiceRequestPOSdataAssignGradePars>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  184. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  185. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  186. SvRes.POSdata = POSDataArray;
  187. }
  188. ServiceRequestAssignGradePars.AssignGradeParsGrade grade = null;
  189. if (POSDataElem.Grade != null)
  190. {
  191. foreach (ServiceRequestAssignGradePars.AssignGradeParsGrade gradeTemp in POSDataElem.Grade)
  192. if (gradeTemp.Id == Convert.ToString(gradeId))
  193. grade = gradeTemp;
  194. }
  195. if (grade == null && gradeId > 0)
  196. {
  197. grade = new ServiceRequestAssignGradePars.AssignGradeParsGrade();
  198. grade.Id = Convert.ToString(gradeId);
  199. grade.Name = gradeName;
  200. ServiceRequestAssignGradePars.AssignGradeParsGrade[] gradeArray = POSDataElem.Grade;
  201. IFSFManager.ArrayResize<ServiceRequestAssignGradePars.AssignGradeParsGrade>(ref gradeArray, (gradeArray != null) ? gradeArray.Length + 1 : 1);
  202. gradeArray[gradeArray.Length - 1] = grade;
  203. POSDataElem.Grade = gradeArray;
  204. }
  205. Trace.WriteLine("end");
  206. return true;
  207. }
  208. catch (Exception ex)
  209. {
  210. Trace.WriteLine("Exception! " + ex.Message);
  211. }
  212. Trace.WriteLine("end");
  213. return false;
  214. }
  215. public bool AddAssignGradeParsSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  216. {
  217. try
  218. {
  219. Trace.WriteLine("init");
  220. ServiceRequestAssignGradePars SvRes = null;
  221. string key = "AssignGradePars";
  222. if (serviceRequestClientList.ContainsKey(key))
  223. SvRes = (ServiceRequestAssignGradePars)(serviceRequestClientList[key]);
  224. if (SvRes != null)
  225. {
  226. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  227. serviceRequestClientList.Remove(key);
  228. Trace.WriteLine("end");
  229. return true;
  230. }
  231. }
  232. catch (Exception ex)
  233. {
  234. Trace.WriteLine("Exception! " + ex.Message);
  235. }
  236. return false;
  237. }
  238. 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)
  239. {
  240. try
  241. {
  242. Trace.WriteLine("init");
  243. ServiceRequestDefTanks SvRes = null;
  244. string key = "DefTanks";
  245. if (serviceRequestClientList.ContainsKey(key))
  246. SvRes = (ServiceRequestDefTanks)(serviceRequestClientList[key]);
  247. if (SvRes == null)
  248. {
  249. SvRes = new ServiceRequestDefTanks();
  250. SvRes.WorkstationID = this.clientSocket.workstationID;
  251. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  252. serviceRequestClientList.Add(key, SvRes);
  253. }
  254. else
  255. {
  256. if (SvRes.RequestType != "DefTanks")
  257. {
  258. Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefTanks", SvRes.RequestType));
  259. return false;
  260. }
  261. }
  262. ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks POSDataElem = null;
  263. if (SvRes.POSdata != null)
  264. POSDataElem = SvRes.POSdata[0];
  265. else
  266. {
  267. ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks[] POSDataArray = null;
  268. POSDataElem = new ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks();
  269. IFSFManager.ArrayResize<ServiceRequestDefTanks.ServiceRequestPOSdataDefTanks>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  270. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  271. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  272. SvRes.POSdata = POSDataArray;
  273. }
  274. ServiceRequestDefTanks.DefTanksTank tank = null;
  275. if (POSDataElem.Tank != null)
  276. {
  277. foreach (ServiceRequestDefTanks.DefTanksTank tankTemp in POSDataElem.Tank)
  278. if (tankTemp.Id == Convert.ToString(tankId))
  279. tank = tankTemp;
  280. }
  281. if (tank == null && tankId > 0)
  282. {
  283. tank = new ServiceRequestDefTanks.DefTanksTank();
  284. tank.Id = Convert.ToString(tankId);
  285. tank.GradeId = Convert.ToString(gradeId);
  286. tank.Capacity = Convert.ToString(capacity);
  287. tank.OverflowLimit = Convert.ToString(overflowLimit);
  288. tank.ProductHighLimit = Convert.ToString(productHighLimit);
  289. tank.ProductLowLimit = Convert.ToString(productLowLimit);
  290. tank.SuctionLimit = Convert.ToString(suctionLimit);
  291. tank.WaterHighLimit = FDCConvert.ToString(waterHighLimit);
  292. tank.TemperatureHighLimit = Convert.ToString(temperatureHighLimit);
  293. tank.TemperatureLowLimit = Convert.ToString(temperatureLowLimit);
  294. tank.LeakMinimumElapsedTime = Convert.ToString(leakMinimumElapsedTime);
  295. tank.LeakVolumeTrigger = FDCConvert.ToString(leakVolumeTrigger);
  296. ServiceRequestDefTanks.DefTanksTank[] tankArray = POSDataElem.Tank;
  297. IFSFManager.ArrayResize<ServiceRequestDefTanks.DefTanksTank>(ref tankArray, (tankArray != null) ? tankArray.Length + 1 : 1);
  298. tankArray[tankArray.Length - 1] = tank;
  299. POSDataElem.Tank = tankArray;
  300. }
  301. Trace.WriteLine("end");
  302. return true;
  303. }
  304. catch (Exception ex)
  305. {
  306. Trace.WriteLine("Exception! " + ex.Message);
  307. }
  308. Trace.WriteLine("end");
  309. return false;
  310. }
  311. public bool AddTanksSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  312. {
  313. try
  314. {
  315. Trace.WriteLine("init");
  316. ServiceRequestDefTanks SvRes = null;
  317. string key = "DefTanks";
  318. if (serviceRequestClientList.ContainsKey(key))
  319. SvRes = (ServiceRequestDefTanks)(serviceRequestClientList[key]);
  320. if (SvRes != null)
  321. {
  322. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  323. serviceRequestClientList.Remove(key);
  324. Trace.WriteLine("end");
  325. return true;
  326. }
  327. }
  328. catch (Exception ex)
  329. {
  330. Trace.WriteLine("Exception! " + ex.Message);
  331. }
  332. return false;
  333. }
  334. public bool AddFuelMode(int id, string name, int authType, int maxAuthTime, int nozzleLayDownTime, int minGuardTime, int paymentType, double minVolume, double minMoney, int SupTransBufSize)
  335. {
  336. try
  337. {
  338. Trace.WriteLine("init");
  339. ServiceRequestDefFuelMode SvRes = null;
  340. string key = "DefFuelMode";
  341. if (serviceRequestClientList.ContainsKey(key))
  342. SvRes = (ServiceRequestDefFuelMode)(serviceRequestClientList[key]);
  343. if (SvRes == null)
  344. {
  345. SvRes = new ServiceRequestDefFuelMode();
  346. SvRes.WorkstationID = this.clientSocket.workstationID;
  347. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  348. serviceRequestClientList.Add(key, SvRes);
  349. }
  350. else
  351. {
  352. if (SvRes.RequestType != "DefFuelMode")
  353. {
  354. Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefFuelMode", SvRes.RequestType));
  355. return false;
  356. }
  357. }
  358. ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode POSDataElem = null;
  359. if (SvRes.POSdata != null)
  360. POSDataElem = SvRes.POSdata[0];
  361. else
  362. {
  363. ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode[] POSDataArray = null;
  364. POSDataElem = new ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode();
  365. IFSFManager.ArrayResize<ServiceRequestDefFuelMode.ServiceRequestPOSdataDefFuelMode>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  366. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  367. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  368. SvRes.POSdata = POSDataArray;
  369. }
  370. ServiceRequestDefFuelMode.DefFuelModeFuelMode fuelMode = null;
  371. if (POSDataElem.FuelMode != null)
  372. {
  373. foreach (ServiceRequestDefFuelMode.DefFuelModeFuelMode fuelModeTemp in POSDataElem.FuelMode)
  374. if (fuelModeTemp.Id == Convert.ToString(id))
  375. fuelMode = fuelModeTemp;
  376. }
  377. if (fuelMode == null && id > 0)
  378. {
  379. fuelMode = new ServiceRequestDefFuelMode.DefFuelModeFuelMode();
  380. fuelMode.Id = Convert.ToString(id);
  381. fuelMode.MaxAuthTime = Convert.ToString(maxAuthTime);
  382. fuelMode.MinGuardTime = Convert.ToString(minGuardTime);
  383. fuelMode.MinMoney = Convert.ToString(minMoney);
  384. fuelMode.MinVolume = Convert.ToString(minVolume);
  385. fuelMode.Name = Convert.ToString(name);
  386. fuelMode.NozzleLayDownTime = Convert.ToString(nozzleLayDownTime);
  387. fuelMode.PaymentType = Convert.ToString(paymentType);
  388. fuelMode.SupTransBufSize = Convert.ToString(SupTransBufSize);
  389. fuelMode.AuthType = Convert.ToString(authType);
  390. ServiceRequestDefFuelMode.DefFuelModeFuelMode[] fuelModeArray = POSDataElem.FuelMode;
  391. IFSFManager.ArrayResize<ServiceRequestDefFuelMode.DefFuelModeFuelMode>(ref fuelModeArray, (fuelModeArray != null) ? fuelModeArray.Length + 1 : 1);
  392. fuelModeArray[fuelModeArray.Length - 1] = fuelMode;
  393. POSDataElem.FuelMode = fuelModeArray;
  394. }
  395. Trace.WriteLine("end");
  396. return true;
  397. }
  398. catch (Exception ex)
  399. {
  400. Trace.WriteLine("Exception! " + ex.Message);
  401. }
  402. Trace.WriteLine("end");
  403. return false;
  404. }
  405. public bool AddFuelModeSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  406. {
  407. try
  408. {
  409. Trace.WriteLine("init");
  410. ServiceRequestDefFuelMode SvRes = null;
  411. string key = "DefFuelMode";
  412. if (serviceRequestClientList.ContainsKey(key))
  413. SvRes = (ServiceRequestDefFuelMode)(serviceRequestClientList[key]);
  414. if (SvRes != null)
  415. {
  416. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  417. serviceRequestClientList.Remove(key);
  418. Trace.WriteLine("end");
  419. return true;
  420. }
  421. }
  422. catch (Exception ex)
  423. {
  424. Trace.WriteLine("Exception! " + ex.Message);
  425. }
  426. return false;
  427. }
  428. public bool SetFuellingModes(int fuellingType, double maxVolume, double maxMoney, int maxFuellingTime, int maxTimeNoProgress, int maxTimeToMinLimit, int presetOverrunLimit)
  429. {
  430. //try
  431. //{
  432. // Trace.WriteLine("init");
  433. // ServiceRequestDefFuelMode SvRes = null;
  434. // string key = FDCPOSClient.getClientID(this.clientSocket.workstationID, this.clientSocket.applicationSender) + "DefFuelMode";
  435. // if (serviceRequestClientList.ContainsKey(key))
  436. // {
  437. // clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  438. // serviceRequestClientList.Remove(key);
  439. // Trace.WriteLine("end");
  440. // return true;
  441. // }
  442. //}
  443. //catch (Exception ex)
  444. //{
  445. // Trace.WriteLine("Exception! " + ex.Message);
  446. //}
  447. return false;
  448. }
  449. public bool AddFuelPoint(int id, int pumpType, string comChannelId, string IPAddress, int IPPort, int physicalAddress, int internalAddress)
  450. {
  451. try
  452. {
  453. Trace.WriteLine("init");
  454. ServiceRequestDefFuelPoint SvRes = null;
  455. string key = "DefFuelPoint";
  456. if (serviceRequestClientList.ContainsKey(key))
  457. SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]);
  458. if (SvRes == null)
  459. {
  460. SvRes = new ServiceRequestDefFuelPoint();
  461. SvRes.WorkstationID = this.clientSocket.workstationID;
  462. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  463. serviceRequestClientList.Add(key, SvRes);
  464. }
  465. else
  466. {
  467. if (SvRes.RequestType != "DefFuelPoint")
  468. {
  469. Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefFuelPoint", SvRes.RequestType));
  470. return false;
  471. }
  472. }
  473. ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint POSDataElem = null;
  474. if (SvRes.POSdata != null)
  475. POSDataElem = SvRes.POSdata[0];
  476. else
  477. {
  478. ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint[] POSDataArray = null;
  479. POSDataElem = new ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint();
  480. IFSFManager.ArrayResize<ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  481. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  482. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  483. SvRes.POSdata = POSDataArray;
  484. }
  485. ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpoint = null;
  486. if (POSDataElem.FuelPoint != null)
  487. {
  488. foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpointTemp in POSDataElem.FuelPoint)
  489. if (fuelpointTemp.Id == Convert.ToString(id))
  490. fuelpoint = fuelpointTemp;
  491. }
  492. if (fuelpoint == null && id > 0)
  493. {
  494. fuelpoint = new ServiceRequestDefFuelPoint.DefFuelPointFuelPoint();
  495. fuelpoint.Id = Convert.ToString(id);
  496. fuelpoint.ComChannelId = comChannelId;
  497. fuelpoint.InternalAddress = Convert.ToString(internalAddress);
  498. fuelpoint.IPAddress = IPAddress;
  499. fuelpoint.IPPort = Convert.ToString(IPPort);
  500. fuelpoint.PhysicalAddress = Convert.ToString(physicalAddress);
  501. fuelpoint.PumpType = Convert.ToString(pumpType);
  502. ServiceRequestDefFuelPoint.DefFuelPointFuelPoint[] fuelpointArray = POSDataElem.FuelPoint;
  503. IFSFManager.ArrayResize<ServiceRequestDefFuelPoint.DefFuelPointFuelPoint>(ref fuelpointArray, (fuelpointArray != null) ? fuelpointArray.Length + 1 : 1);
  504. fuelpointArray[fuelpointArray.Length - 1] = fuelpoint;
  505. POSDataElem.FuelPoint = fuelpointArray;
  506. }
  507. Trace.WriteLine("end");
  508. return true;
  509. }
  510. catch (Exception ex)
  511. {
  512. Trace.WriteLine("Exception! " + ex.Message);
  513. }
  514. Trace.WriteLine("end");
  515. return false;
  516. }
  517. public bool AddNozzle(int pumpId, int nozzleId)
  518. {
  519. try
  520. {
  521. Trace.WriteLine("init");
  522. ServiceRequestDefFuelPoint SvRes = null;
  523. string key = "DefFuelPoint";
  524. if (serviceRequestClientList.ContainsKey(key))
  525. SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]);
  526. if (SvRes == null)
  527. {
  528. Trace.WriteLine(string.Format("RequestType DefFuelPoint NOT found!!! return FALSE", SvRes.RequestType));
  529. return false;
  530. }
  531. ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint POSDataElem = null;
  532. if (SvRes.POSdata != null)
  533. POSDataElem = SvRes.POSdata[0];
  534. else
  535. {
  536. ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint[] POSDataArray = null;
  537. POSDataElem = new ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint();
  538. IFSFManager.ArrayResize<ServiceRequestDefFuelPoint.ServiceRequestPOSdataDefFuelPoint>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  539. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  540. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  541. SvRes.POSdata = POSDataArray;
  542. }
  543. ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpoint = null;
  544. if (POSDataElem.FuelPoint != null)
  545. {
  546. foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPoint fuelpointTemp in POSDataElem.FuelPoint)
  547. if (fuelpointTemp.Id == Convert.ToString(pumpId))
  548. fuelpoint = fuelpointTemp;
  549. }
  550. if (fuelpoint == null && pumpId > 0)
  551. {
  552. Trace.WriteLine(string.Format("fuel point id={0} NOT found!!! return FALSE", pumpId));
  553. return false;
  554. }
  555. else
  556. {
  557. ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle nozzle = null;
  558. if (fuelpoint.Nozzle != null)
  559. {
  560. foreach (ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle nozzleTemp in fuelpoint.Nozzle)
  561. if (nozzleTemp.Id == Convert.ToString(nozzleId))
  562. nozzle = nozzleTemp;
  563. }
  564. if (nozzle == null)
  565. {
  566. nozzle = new ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle();
  567. nozzle.Id = Convert.ToString(nozzleId);
  568. ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle[] nozzleArray = fuelpoint.Nozzle;
  569. IFSFManager.ArrayResize<ServiceRequestDefFuelPoint.DefFuelPointFuelPointNozzle>(ref nozzleArray, (nozzleArray != null) ? nozzleArray.Length + 1 : 1);
  570. nozzleArray[nozzleArray.Length - 1] = nozzle;
  571. fuelpoint.Nozzle = nozzleArray;
  572. }
  573. }
  574. Trace.WriteLine("end");
  575. return true;
  576. }
  577. catch (Exception ex)
  578. {
  579. Trace.WriteLine("Exception! " + ex.Message);
  580. }
  581. Trace.WriteLine("end");
  582. return false;
  583. }
  584. public bool AddFuelPointsSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  585. {
  586. try
  587. {
  588. Trace.WriteLine("init");
  589. ServiceRequestDefFuelPoint SvRes = null;
  590. string key = "DefFuelPoint";
  591. if (serviceRequestClientList.ContainsKey(key))
  592. SvRes = (ServiceRequestDefFuelPoint)(serviceRequestClientList[key]);
  593. if (SvRes != null)
  594. {
  595. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  596. serviceRequestClientList.Remove(key);
  597. Trace.WriteLine("end");
  598. return true;
  599. }
  600. }
  601. catch (Exception ex)
  602. {
  603. Trace.WriteLine("Exception! " + ex.Message);
  604. }
  605. return false;
  606. }
  607. public bool AssignGrade(int pumpId, int nozzleId, int gradeId)
  608. {
  609. try
  610. {
  611. Trace.WriteLine("init");
  612. ServiceRequestAssignGrades SvRes = null;
  613. string key = "AssignGrades";
  614. if (serviceRequestClientList.ContainsKey(key))
  615. SvRes = (ServiceRequestAssignGrades)(serviceRequestClientList[key]);
  616. if (SvRes == null)
  617. {
  618. SvRes = new ServiceRequestAssignGrades();
  619. SvRes.WorkstationID = this.clientSocket.workstationID;
  620. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  621. serviceRequestClientList.Add(key, SvRes);
  622. }
  623. else
  624. {
  625. if (SvRes.RequestType != "AssignGrades")
  626. {
  627. Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignGrades", SvRes.RequestType));
  628. return false;
  629. }
  630. }
  631. ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades POSDataElem = null;
  632. if (SvRes.POSdata != null)
  633. POSDataElem = SvRes.POSdata[0];
  634. else
  635. {
  636. ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades[] POSDataArray = null;
  637. POSDataElem = new ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades();
  638. IFSFManager.ArrayResize<ServiceRequestAssignGrades.ServiceRequestPOSdataAssignGrades>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  639. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  640. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  641. SvRes.POSdata = POSDataArray;
  642. }
  643. ServiceRequestAssignGrades.AssignGradesFuelPoint gradeFP = null;
  644. if (POSDataElem.FuelPoint != null)
  645. {
  646. foreach (ServiceRequestAssignGrades.AssignGradesFuelPoint gradeFPTemp in POSDataElem.FuelPoint)
  647. if (gradeFPTemp.Id == Convert.ToString(pumpId))
  648. gradeFP = gradeFPTemp;
  649. }
  650. if (gradeFP == null && pumpId > 0)
  651. {
  652. gradeFP = new ServiceRequestAssignGrades.AssignGradesFuelPoint();
  653. gradeFP.Id = Convert.ToString(pumpId);
  654. ServiceRequestAssignGrades.AssignGradesFuelPoint[] gradeFPArray = POSDataElem.FuelPoint;
  655. IFSFManager.ArrayResize<ServiceRequestAssignGrades.AssignGradesFuelPoint>(ref gradeFPArray, (gradeFPArray != null) ? gradeFPArray.Length + 1 : 1);
  656. gradeFPArray[gradeFPArray.Length - 1] = gradeFP;
  657. POSDataElem.FuelPoint = gradeFPArray;
  658. }
  659. ServiceRequestAssignGrades.AssignGradesFuelPointNozzle gradeNozzle = null;
  660. if (gradeFP.Nozzle != null)
  661. {
  662. foreach (ServiceRequestAssignGrades.AssignGradesFuelPointNozzle gradeNozzleTemp in gradeFP.Nozzle)
  663. if (gradeNozzleTemp.Id == Convert.ToString(nozzleId))
  664. gradeNozzle = gradeNozzleTemp;
  665. }
  666. if (gradeNozzle == null && nozzleId > 0)
  667. {
  668. gradeNozzle = new ServiceRequestAssignGrades.AssignGradesFuelPointNozzle();
  669. gradeNozzle.Id = Convert.ToString(nozzleId);
  670. gradeNozzle.GradeId = Convert.ToString(gradeId);
  671. ServiceRequestAssignGrades.AssignGradesFuelPointNozzle[] gradeNozzleArray = gradeFP.Nozzle;
  672. IFSFManager.ArrayResize<ServiceRequestAssignGrades.AssignGradesFuelPointNozzle>(ref gradeNozzleArray, (gradeNozzleArray != null) ? gradeNozzleArray.Length + 1 : 1);
  673. gradeNozzleArray[gradeNozzleArray.Length - 1] = gradeNozzle;
  674. gradeFP.Nozzle = gradeNozzleArray;
  675. }
  676. Trace.WriteLine("end");
  677. return true;
  678. }
  679. catch (Exception ex)
  680. {
  681. Trace.WriteLine("Exception! " + ex.Message);
  682. }
  683. Trace.WriteLine("end");
  684. return false;
  685. }
  686. public bool AssignGradesSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  687. {
  688. try
  689. {
  690. Trace.WriteLine("init");
  691. ServiceRequestAssignGrades SvRes = null;
  692. string key = "AssignGrades";
  693. if (serviceRequestClientList.ContainsKey(key))
  694. SvRes = (ServiceRequestAssignGrades)(serviceRequestClientList[key]);
  695. if (SvRes != null)
  696. {
  697. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  698. serviceRequestClientList.Remove(key);
  699. Trace.WriteLine("end");
  700. return true;
  701. }
  702. }
  703. catch (Exception ex)
  704. {
  705. Trace.WriteLine("Exception! " + ex.Message);
  706. }
  707. return false;
  708. }
  709. public bool AssignMeter(int pumpId, int gradeId, int meterId, int part)
  710. {
  711. try
  712. {
  713. Trace.WriteLine("init");
  714. ServiceRequestAssignMeters SvRes = null;
  715. string key = "AssignMeters";
  716. if (serviceRequestClientList.ContainsKey(key))
  717. SvRes = (ServiceRequestAssignMeters)(serviceRequestClientList[key]);
  718. if (SvRes == null)
  719. {
  720. SvRes = new ServiceRequestAssignMeters();
  721. SvRes.WorkstationID = this.clientSocket.workstationID;
  722. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  723. serviceRequestClientList.Add(key, SvRes);
  724. }
  725. else
  726. {
  727. if (SvRes.RequestType != "AssignMeters")
  728. {
  729. Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignMeters", SvRes.RequestType));
  730. return false;
  731. }
  732. }
  733. ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters POSDataElem = null;
  734. if (SvRes.POSdata != null)
  735. POSDataElem = SvRes.POSdata[0];
  736. else
  737. {
  738. ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters[] POSDataArray = null;
  739. POSDataElem = new ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters();
  740. IFSFManager.ArrayResize<ServiceRequestAssignMeters.ServiceRequestPOSdataAssignMeters>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  741. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  742. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  743. SvRes.POSdata = POSDataArray;
  744. }
  745. ServiceRequestAssignMeters.AssignMetersFuelPoint meterFP = null;
  746. if (POSDataElem.FuelPoint != null)
  747. {
  748. foreach (ServiceRequestAssignMeters.AssignMetersFuelPoint meterFPTemp in POSDataElem.FuelPoint)
  749. if (meterFPTemp.Id == Convert.ToString(pumpId))
  750. meterFP = meterFPTemp;
  751. }
  752. if (meterFP == null && pumpId > 0)
  753. {
  754. meterFP = new ServiceRequestAssignMeters.AssignMetersFuelPoint();
  755. meterFP.Id = Convert.ToString(pumpId);
  756. ServiceRequestAssignMeters.AssignMetersFuelPoint[] meterFPArray = POSDataElem.FuelPoint;
  757. IFSFManager.ArrayResize<ServiceRequestAssignMeters.AssignMetersFuelPoint>(ref meterFPArray, (meterFPArray != null) ? meterFPArray.Length + 1 : 1);
  758. meterFPArray[meterFPArray.Length - 1] = meterFP;
  759. POSDataElem.FuelPoint = meterFPArray;
  760. }
  761. ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption gradeOption = null;
  762. if (meterFP.GradeOption != null)
  763. {
  764. foreach (ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption gradeOptionTemp in meterFP.GradeOption)
  765. if (gradeOptionTemp.Id == Convert.ToString(gradeId))
  766. gradeOption = gradeOptionTemp;
  767. }
  768. if (gradeOption == null && gradeId > 0)
  769. {
  770. gradeOption = new ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption();
  771. gradeOption.Id = Convert.ToString(gradeId);
  772. ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption[] gradeOptionArray = meterFP.GradeOption;
  773. IFSFManager.ArrayResize<ServiceRequestAssignMeters.AssignMetersFuelPointGradeOption>(ref gradeOptionArray, (gradeOptionArray != null) ? gradeOptionArray.Length + 1 : 1);
  774. gradeOptionArray[gradeOptionArray.Length - 1] = gradeOption;
  775. meterFP.GradeOption = gradeOptionArray;
  776. }
  777. ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter gradeOptionMeter = null;
  778. if (gradeOption.Meter != null)
  779. {
  780. foreach (ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter gradeOptionMeterTemp in gradeOption.Meter)
  781. if (gradeOptionMeterTemp.Id == Convert.ToString(meterId))
  782. gradeOptionMeter = gradeOptionMeterTemp;
  783. }
  784. if (gradeOptionMeter == null && meterId > 0)
  785. {
  786. gradeOptionMeter = new ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter();
  787. gradeOptionMeter.Id = Convert.ToString(meterId);
  788. gradeOptionMeter.Part = Convert.ToString(part);
  789. ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter[] gradeOptionMeterArray = gradeOption.Meter;
  790. IFSFManager.ArrayResize<ServiceRequestAssignMeters.AssignMetersFuelPointGradeOptionMeter>(ref gradeOptionMeterArray, (gradeOptionMeterArray != null) ? gradeOptionMeterArray.Length + 1 : 1);
  791. gradeOptionMeterArray[gradeOptionMeterArray.Length - 1] = gradeOptionMeter;
  792. gradeOption.Meter = gradeOptionMeterArray;
  793. }
  794. Trace.WriteLine("end");
  795. return true;
  796. }
  797. catch (Exception ex)
  798. {
  799. Trace.WriteLine("Exception! " + ex.Message);
  800. }
  801. return false;
  802. }
  803. public bool AssignMetersSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  804. {
  805. try
  806. {
  807. Trace.WriteLine("init");
  808. ServiceRequestAssignMeters SvRes = null;
  809. string key = "AssignMeters";
  810. if (serviceRequestClientList.ContainsKey(key))
  811. SvRes = (ServiceRequestAssignMeters)(serviceRequestClientList[key]);
  812. if (SvRes != null)
  813. {
  814. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  815. serviceRequestClientList.Remove(key);
  816. Trace.WriteLine("end");
  817. return true;
  818. }
  819. }
  820. catch (Exception ex)
  821. {
  822. Trace.WriteLine("Exception! " + ex.Message);
  823. }
  824. return false;
  825. }
  826. public bool AssignTank(int pumpId, int meterId, int tankId)
  827. {
  828. try
  829. {
  830. Trace.WriteLine("init");
  831. ServiceRequestAssignTanks SvRes = null;
  832. string key = "AssignTanks";
  833. if (serviceRequestClientList.ContainsKey(key))
  834. SvRes = (ServiceRequestAssignTanks)(serviceRequestClientList[key]);
  835. if (SvRes == null)
  836. {
  837. SvRes = new ServiceRequestAssignTanks();
  838. SvRes.WorkstationID = this.clientSocket.workstationID;
  839. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  840. serviceRequestClientList.Add(key, SvRes);
  841. }
  842. else
  843. {
  844. if (SvRes.RequestType != "AssignTanks")
  845. {
  846. Trace.WriteLine(string.Format("SvRes.RequestType={0} != AssignTanks", SvRes.RequestType));
  847. return false;
  848. }
  849. }
  850. ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks POSDataElem = null;
  851. if (SvRes.POSdata != null)
  852. POSDataElem = SvRes.POSdata[0];
  853. else
  854. {
  855. ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks[] POSDataArray = null;
  856. POSDataElem = new ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks();
  857. IFSFManager.ArrayResize<ServiceRequestAssignTanks.ServiceRequestPOSdataAssignTanks>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  858. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  859. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  860. SvRes.POSdata = POSDataArray;
  861. }
  862. ServiceRequestAssignTanks.AssignTanksFuelPoint tankFP = null;
  863. if (POSDataElem.FuelPoint != null)
  864. {
  865. foreach (ServiceRequestAssignTanks.AssignTanksFuelPoint tankFPTemp in POSDataElem.FuelPoint)
  866. if (tankFPTemp.Id == Convert.ToString(pumpId))
  867. tankFP = tankFPTemp;
  868. }
  869. if (tankFP == null && pumpId > 0)
  870. {
  871. tankFP = new ServiceRequestAssignTanks.AssignTanksFuelPoint();
  872. tankFP.Id = Convert.ToString(pumpId);
  873. ServiceRequestAssignTanks.AssignTanksFuelPoint[] tankFPArray = POSDataElem.FuelPoint;
  874. IFSFManager.ArrayResize<ServiceRequestAssignTanks.AssignTanksFuelPoint>(ref tankFPArray, (tankFPArray != null) ? tankFPArray.Length + 1 : 1);
  875. tankFPArray[tankFPArray.Length - 1] = tankFP;
  876. POSDataElem.FuelPoint = tankFPArray;
  877. }
  878. ServiceRequestAssignTanks.AssignTanksFuelPointMeter tankMeter = null;
  879. if (tankFP.Meter != null)
  880. {
  881. foreach (ServiceRequestAssignTanks.AssignTanksFuelPointMeter tankMeterTemp in tankFP.Meter)
  882. if (tankMeterTemp.Id == Convert.ToString(meterId))
  883. tankMeter = tankMeterTemp;
  884. }
  885. if (tankMeter == null && meterId > 0)
  886. {
  887. tankMeter = new ServiceRequestAssignTanks.AssignTanksFuelPointMeter();
  888. tankMeter.Id = Convert.ToString(meterId);
  889. tankMeter.Tank = Convert.ToString(tankId);
  890. ServiceRequestAssignTanks.AssignTanksFuelPointMeter[] tankMeterArray = tankFP.Meter;
  891. IFSFManager.ArrayResize<ServiceRequestAssignTanks.AssignTanksFuelPointMeter>(ref tankMeterArray, (tankMeterArray != null) ? tankMeterArray.Length + 1 : 1);
  892. tankMeterArray[tankMeterArray.Length - 1] = tankMeter;
  893. tankFP.Meter = tankMeterArray;
  894. }
  895. Trace.WriteLine("end");
  896. return true;
  897. }
  898. catch (Exception ex)
  899. {
  900. Trace.WriteLine("Exception! " + ex.Message);
  901. }
  902. return false;
  903. }
  904. public bool AssignTanksSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  905. {
  906. try
  907. {
  908. Trace.WriteLine("init");
  909. ServiceRequestAssignTanks SvRes = null;
  910. string key = "AssignTanks";
  911. if (serviceRequestClientList.ContainsKey(key))
  912. SvRes = (ServiceRequestAssignTanks)(serviceRequestClientList[key]);
  913. if (SvRes != null)
  914. {
  915. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  916. serviceRequestClientList.Remove(key);
  917. Trace.WriteLine("end");
  918. return true;
  919. }
  920. }
  921. catch (Exception ex)
  922. {
  923. Trace.WriteLine("Exception! " + ex.Message);
  924. }
  925. return false;
  926. }
  927. public bool AddPricePole(int id, int type, int physicalAddress, string COMPort)
  928. {
  929. return false;
  930. }
  931. public bool AddPricePoleRow(int id, int gradeId, int fuelMode, int position)
  932. {
  933. return false;
  934. }
  935. public bool AddPricePoleSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  936. {
  937. try
  938. {
  939. Trace.WriteLine("init");
  940. ServiceRequestDefPricePole SvRes = null;
  941. string key = "DefPricePole";
  942. if (serviceRequestClientList.ContainsKey(key))
  943. SvRes = (ServiceRequestDefPricePole)(serviceRequestClientList[key]);
  944. if (SvRes != null)
  945. {
  946. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  947. serviceRequestClientList.Remove(key);
  948. Trace.WriteLine("end");
  949. return true;
  950. }
  951. }
  952. catch (Exception ex)
  953. {
  954. Trace.WriteLine("Exception! " + ex.Message);
  955. }
  956. return false;
  957. }
  958. public bool LoadPriceset(int id, int gradeId, double price)
  959. {
  960. return false;
  961. }
  962. public bool LoadPricesetSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  963. {
  964. return false;
  965. }
  966. public bool AddTankMonitor(int id, int type, string COMPort, int timeBetweenRead, int sendTransactions, int messageSentUnsolicited)
  967. {
  968. try
  969. {
  970. Trace.WriteLine(string.Format("init: id={0}, type={1}, COMPort={2}, timeBetweenRead={3}, sendTransactions={4}, messageSentUnsolicited={5}", id, type, COMPort, timeBetweenRead, sendTransactions, messageSentUnsolicited));
  971. ServiceRequestDefTankMonitor SvRes = null;
  972. string key = "DefTankMonitor";
  973. if (serviceRequestClientList.ContainsKey(key))
  974. SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]);
  975. if (SvRes == null)
  976. {
  977. SvRes = new ServiceRequestDefTankMonitor();
  978. SvRes.WorkstationID = this.clientSocket.workstationID;
  979. SvRes.ApplicationSender = this.clientSocket.applicationSender;
  980. serviceRequestClientList.Add(key, SvRes);
  981. }
  982. else
  983. {
  984. if (SvRes.RequestType != "DefTankMonitor")
  985. {
  986. Trace.WriteLine(string.Format("SvRes.RequestType={0} != DefTankMonitor", SvRes.RequestType));
  987. return false;
  988. }
  989. }
  990. ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor POSDataElem = null;
  991. if (SvRes.POSdata != null)
  992. POSDataElem = SvRes.POSdata[0];
  993. else
  994. {
  995. ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor[] POSDataArray = null;
  996. POSDataElem = new ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor();
  997. IFSFManager.ArrayResize<ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  998. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  999. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  1000. SvRes.POSdata = POSDataArray;
  1001. }
  1002. ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitor = null;
  1003. if (POSDataElem.TankMonitor != null)
  1004. {
  1005. foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitorTemp in POSDataElem.TankMonitor)
  1006. if (tankMonitorTemp.Id == Convert.ToString(id))
  1007. tankMonitor = tankMonitorTemp;
  1008. }
  1009. if (tankMonitor == null && id > 0)
  1010. {
  1011. tankMonitor = new ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor();
  1012. tankMonitor.Id = Convert.ToString(id);
  1013. tankMonitor.Type = Convert.ToString(type);
  1014. tankMonitor.COMPort = COMPort;
  1015. tankMonitor.TimeBetweenRead = Convert.ToString(timeBetweenRead);
  1016. tankMonitor.SendTransactions = Convert.ToString(sendTransactions);
  1017. tankMonitor.MessageSentUnsolicited = Convert.ToString(messageSentUnsolicited);
  1018. ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor[] tankMonitorArray = POSDataElem.TankMonitor;
  1019. IFSFManager.ArrayResize<ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor>(ref tankMonitorArray, (tankMonitorArray != null) ? tankMonitorArray.Length + 1 : 1);
  1020. tankMonitorArray[tankMonitorArray.Length - 1] = tankMonitor;
  1021. POSDataElem.TankMonitor = tankMonitorArray;
  1022. }
  1023. Trace.WriteLine("end");
  1024. return true;
  1025. }
  1026. catch (Exception ex)
  1027. {
  1028. Trace.WriteLine("Exception! " + ex.Message);
  1029. }
  1030. return false;
  1031. }
  1032. public bool AddTankProbe(int tankMonitorId, string probeSN, int tankId, double floatOffset, double minimumHeight, int boardNumber, int connector)
  1033. {
  1034. try
  1035. {
  1036. Trace.WriteLine(string.Format("init: tankMonitorId={0}, probeSN={1}, tankId={2}, boardNumber={3}, connector={4}", tankMonitorId, probeSN, tankId, boardNumber, connector));
  1037. ServiceRequestDefTankMonitor SvRes = null;
  1038. string key = "DefTankMonitor";
  1039. if (serviceRequestClientList.ContainsKey(key))
  1040. SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]);
  1041. if (SvRes == null)
  1042. {
  1043. Trace.WriteLine(string.Format("RequestType DefTankMonitor NOT found!!! return FALSE", SvRes.RequestType));
  1044. return false;
  1045. }
  1046. ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor POSDataElem = null;
  1047. if (SvRes.POSdata != null)
  1048. POSDataElem = SvRes.POSdata[0];
  1049. else
  1050. {
  1051. ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor[] POSDataArray = null;
  1052. POSDataElem = new ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor();
  1053. IFSFManager.ArrayResize<ServiceRequestDefTankMonitor.ServiceRequestPOSdataDefTankMonitor>(ref POSDataArray, (POSDataArray != null) ? POSDataArray.Length + 1 : 1);
  1054. POSDataArray[POSDataArray.Length - 1] = POSDataElem;
  1055. POSDataElem.POSTimeStamp = FDCConvert.ToString(DateTime.Now);
  1056. SvRes.POSdata = POSDataArray;
  1057. }
  1058. ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitor = null;
  1059. if (POSDataElem.TankMonitor != null)
  1060. {
  1061. foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitor tankMonitorTemp in POSDataElem.TankMonitor)
  1062. if (tankMonitorTemp.Id == Convert.ToString(tankMonitorId))
  1063. tankMonitor = tankMonitorTemp;
  1064. }
  1065. if (tankMonitor == null && tankMonitorId > 0)
  1066. {
  1067. Trace.WriteLine(string.Format("TankMonitor id={0} NOT found!!! return FALSE", tankMonitorId));
  1068. return false;
  1069. }
  1070. else
  1071. {
  1072. ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe probe = null;
  1073. if (tankMonitor.Probe != null)
  1074. {
  1075. foreach (ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe probeTemp in tankMonitor.Probe)
  1076. if (probeTemp.Id == probeSN)
  1077. probe = probeTemp;
  1078. }
  1079. if (probe == null)
  1080. {
  1081. probe = new ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe();
  1082. probe.Id = probeSN;
  1083. probe.TankId = Convert.ToString(tankId);
  1084. probe.FloatOffset = FDCConvert.ToString(floatOffset);
  1085. probe.MinimumHeight = FDCConvert.ToString(minimumHeight);
  1086. probe.BoardNumber = Convert.ToString(boardNumber);
  1087. probe.Connector = Convert.ToString(connector);
  1088. ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe[] probeArray = tankMonitor.Probe;
  1089. IFSFManager.ArrayResize<ServiceRequestDefTankMonitor.DefTankMonitorTankMonitorProbe>(ref probeArray, (probeArray != null) ? probeArray.Length + 1 : 1);
  1090. probeArray[probeArray.Length - 1] = probe;
  1091. tankMonitor.Probe = probeArray;
  1092. }
  1093. }
  1094. Trace.WriteLine("end");
  1095. return true;
  1096. }
  1097. catch (Exception ex)
  1098. {
  1099. Trace.WriteLine("Exception! " + ex.Message);
  1100. }
  1101. return false;
  1102. }
  1103. public bool AddTankMonitorSend(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> requestCompleted, object userToken, object src)
  1104. {
  1105. try
  1106. {
  1107. Trace.WriteLine("init");
  1108. ServiceRequestDefTankMonitor SvRes = null;
  1109. string key = "DefTankMonitor";
  1110. if (serviceRequestClientList.ContainsKey(key))
  1111. SvRes = (ServiceRequestDefTankMonitor)(serviceRequestClientList[key]);
  1112. if (SvRes != null)
  1113. {
  1114. clientSocket.ifsfMessages.EnqueueMessage(SvRes, requestCompleted, userToken, src, true);
  1115. serviceRequestClientList.Remove(key);
  1116. Trace.WriteLine("end");
  1117. return true;
  1118. }
  1119. }
  1120. catch (Exception ex)
  1121. {
  1122. Trace.WriteLine("Exception! " + ex.Message);
  1123. }
  1124. return false;
  1125. }
  1126. }
  1127. }