using Applications.FDC; using Edge.Core.Database; using Edge.Core.Processor; using Edge.Core.IndustryStandardInterface.Pump; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Data; using Microsoft.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using Wayne.FDCPOSLibrary; using Edge.Core.Processor.Dispatcher.Attributes; using System.Threading; namespace Applications.PumpInfoToSinoChemPosSqlServerOrMySql { [MetaPartsDescriptor( "lang-zh-cn:加油机信息转发代理 SqlServerlang-en-us:Pump Info Agent to SqlServer", "lang-zh-cn:用于将加油机的状态和交易数据插入至 SqlServer 目标数据库中" + "lang-en-us:Used for proxing pump state and trx to target SqlServer database", new[] { "lang-zh-cn:中化lang-en-us:SinoChem" })] public class AppSqlServer : AppBase, IAppProcessor { public string MetaConfigName { get; set; } /// <summary> /// /// </summary> /// <param name="appConfig"></param> /// <param name="services"></param> [ParamsJsonSchemas("appCtorParamsJsonSchema")] public AppSqlServer(AppConfigV1 appConfig, IServiceProvider services) : base(appConfig, services) { } public void Init(IEnumerable<IProcessor> processors) { base.fdcServerHostApp = processors.OfType<FdcServerHostApp>().First(); base.HandlePumpStateChangeToDatabase( () => new SqlConnection(base.appConfig.DatabaseConnStr), () => new SqlCommand()); } public Task<bool> Start() { return Task.FromResult( base.ReCreatePumpLayoutToDatabase( () => new SqlConnection(base.appConfig.DatabaseConnStr), () => new SqlCommand())); } public Task<bool> Stop() { return Task.FromResult(true); } } }