AppSqlServer.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Applications.FDC;
  2. using Edge.Core.Database;
  3. using Edge.Core.Processor;
  4. using Edge.Core.IndustryStandardInterface.Pump;
  5. using Microsoft.Extensions.Logging;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using Microsoft.Data.SqlClient;
  10. using System.Linq;
  11. using System.Threading.Tasks;
  12. using Wayne.FDCPOSLibrary;
  13. using Edge.Core.Processor.Dispatcher.Attributes;
  14. using System.Threading;
  15. namespace Applications.PumpInfoToSinoChemPosSqlServerOrMySql
  16. {
  17. [MetaPartsDescriptor(
  18. "lang-zh-cn:加油机信息转发代理 SqlServerlang-en-us:Pump Info Agent to SqlServer",
  19. "lang-zh-cn:用于将加油机的状态和交易数据插入至 SqlServer 目标数据库中" +
  20. "lang-en-us:Used for proxing pump state and trx to target SqlServer database",
  21. new[] { "lang-zh-cn:中化lang-en-us:SinoChem" })]
  22. public class AppSqlServer : AppBase, IAppProcessor
  23. {
  24. public string MetaConfigName { get; set; }
  25. /// <summary>
  26. ///
  27. /// </summary>
  28. /// <param name="appConfig"></param>
  29. /// <param name="services"></param>
  30. [ParamsJsonSchemas("appCtorParamsJsonSchema")]
  31. public AppSqlServer(AppConfigV1 appConfig, IServiceProvider services) : base(appConfig, services)
  32. {
  33. }
  34. public void Init(IEnumerable<IProcessor> processors)
  35. {
  36. base.fdcServerHostApp = processors.OfType<FdcServerHostApp>().First();
  37. base.HandlePumpStateChangeToDatabase(
  38. () => new SqlConnection(base.appConfig.DatabaseConnStr),
  39. () => new SqlCommand());
  40. }
  41. public Task<bool> Start()
  42. {
  43. return Task.FromResult(
  44. base.ReCreatePumpLayoutToDatabase(
  45. () => new SqlConnection(base.appConfig.DatabaseConnStr),
  46. () => new SqlCommand()));
  47. }
  48. public Task<bool> Stop()
  49. {
  50. return Task.FromResult(true);
  51. }
  52. }
  53. }