123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using FspWebApp.Entity.Service;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Collections.Specialized;
- using System.IO;
- using System.Text.RegularExpressions;
- namespace FspWebApp.Controllers
- {
- [Route("api/[controller]")]
- [ApiController]
- public class FuelProductController : ControllerBase
- {
- #region Fields
- private static NLog.Logger logger = NLog.LogManager.LoadConfiguration("NLog.config").GetLogger("FspWebApp");
- #endregion
-
- [HttpGet]
- public ActionResult<object> Get()
- {
- object fuelProducts = null;
- try
- {
- fuelProducts = JsonConvert.SerializeObject(DevicesConfig.fuelProducts);
- }
- catch { }
- return fuelProducts;
- }
-
- [HttpPost]
- public ActionResult<object> Post([FromBody] object value)
- {
- try
- {
- logger.Info($"Fuel Product Change {value}");
- FuelProduct.onChangeFuelProduct(value);
- string bcpn = "";
- var nozzleDic = new StringDictionary();
- var fuelProducts = JsonConvert.DeserializeObject<Dictionary<int, FuelProduct>>(value.ToString());
- foreach (FuelProduct val in fuelProducts.Values)
- {
- bcpn += val.Barcode + ":" + val.FuelName + ";";
- foreach (int nozzle in val.CurrentNozzles)
- {
- nozzleDic[nozzle.ToString()] = val.Barcode.ToString();
- }
- }
- logger.Info($"rawProductNameToPosProductNameStr {bcpn}");
- string path = Directory.GetCurrentDirectory();
- string filename = "settings.xml";
- string allText = System.IO.File.ReadAllText(Path.Combine(path, filename));
- string pattern = "name=\"rawProductNameToPosProductNameStr\" value=\"{0}\"";
- var reg = new Regex(string.Format(pattern, "(.+)"));
- string modified = reg.Replace(allText, string.Format(pattern, bcpn));
- foreach (string siteLevelNozzleId in nozzleDic.Keys)
- {
- pattern = "siteLevelNozzleId=\"{0}\" productBarcode=\"{1}\"";
- reg = new Regex(string.Format(pattern, siteLevelNozzleId, "(\\d+)"));
- modified = reg.Replace(modified, string.Format(pattern, siteLevelNozzleId, nozzleDic[siteLevelNozzleId]));
- }
- System.IO.File.WriteAllText(Path.Combine(path, filename), modified);
- }
- catch (Exception ex)
- {
- logger.Info($"Post ChangeFuelProduct {ex}");
- return new { Name = "FuelProduct", Value = false };
- }
- return new { Name = "FuelProduct", Value = true };
- }
- }
- }
|