12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using Communicator.HttpServerWebApiCommunicator;
- using DeviceProcessor;
- using Newtonsoft.Json;
- using Parser.HttpMessageParser;
- using Sinochem_InternetPlus_Display.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web.Http.Results;
- using Wayne.FDCPOSLibrary;
- namespace Sinochem_InternetPlus_Display
- {
- public class Handler : IHandler<string, BaseHttpMessage<string>>, IFdcCommunicableController
- {
- public Guid Id => new Guid();
- public Func<string, bool> BroadcastMessageViaFdc { get; set; }
- public Func<string, Tuple<string, OverallResult>> OnMessageReceivedViaFdc { get; set; }
- private int bindingPumpId;
- public Handler(int bindingPumpId)
- {
- this.bindingPumpId = bindingPumpId;
- this.OnMessageReceivedViaFdc += (msg) =>
- {
- Console.WriteLine("I received sth via FDC protocol: " + msg);
- return new Tuple<string, OverallResult>("thanks for you message", OverallResult.Success);
- };
- }
- public void Init(IContext<string, BaseHttpMessage<string>> context)
- {
- var pump = DeviceControllerBus.Default.OfType<IFdcPumpController>().FirstOrDefault(p => p.PumpId == this.bindingPumpId);
- if (pump != null)
- pump.OnCurrentFuellingStatusChange += Handler_OnCurrentFuellingStatusChange;
- }
- public void Process(IContext<string, BaseHttpMessage<string>> context)
- {
- var httpRequest = context.Incoming.Message;
- Console.WriteLine("I read car plate request: " + httpRequest.Content);
-
- CarPlateTrxRequest carPlateTrxRequest = JsonConvert.DeserializeObject<CarPlateTrxRequest>(httpRequest.Content);
- Console.WriteLine(carPlateTrxRequest.car_Number);
- CarPlateTrxResponse carPlateTrxResponse = new CarPlateTrxResponse
- {
- code = "200",
- message = "this is from Sinochem_CarPlateRecognizeCamera_HuLianWangJia"
- };
- var httpResponse = SimpleHttpOutgoingMessage.CreatedFrom(httpRequest,
- new OkNegotiatedContentResult<CarPlateTrxResponse>(carPlateTrxResponse, context.Incoming.Message.ApiController));
- context.Outgoing.Write(httpResponse);
-
- var isSendSucceed = this.BroadcastMessageViaFdc?.Invoke("pls start fuelling!");
- }
- private void Handler_OnCurrentFuellingStatusChange(object sender, FdcTransactionDoneEventArg e)
- {
-
- if (e.Transaction.Finished)
- {
-
- var chargeAmount = e.Transaction.Amount;
-
- }
- else
- {
- var runningAmount = e.Transaction.Amount;
-
- }
- }
- }
- }
|