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; }
///
///
///
///
///
[ParamsJsonSchemas("appCtorParamsJsonSchema")]
public AppSqlServer(AppConfigV1 appConfig, IServiceProvider services) : base(appConfig, services)
{
}
public void Init(IEnumerable processors)
{
base.fdcServerHostApp = processors.OfType().First();
base.HandlePumpStateChangeToDatabase(
() => new SqlConnection(base.appConfig.DatabaseConnStr),
() => new SqlCommand());
}
public Task Start()
{
return Task.FromResult(
base.ReCreatePumpLayoutToDatabase(
() => new SqlConnection(base.appConfig.DatabaseConnStr),
() => new SqlCommand()));
}
public Task Stop()
{
return Task.FromResult(true);
}
}
}