using Applications.FDC;
using Edge.Core.Database;
using Edge.Core.Processor;
using Edge.Core.IndustryStandardInterface.Pump;
using Microsoft.Extensions.Logging;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
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:加油机信息转发代理 MySQLlang-en-us:Pump Info Agent to MySQL",
"lang-zh-cn:用于将加油机的状态和交易数据插入至 MySQL 目标数据库中" +
"lang-en-us:Used for proxing pump state and trx to target MY SQL database",
new[] { "lang-zh-cn:中化lang-en-us:SinoChem" })]
public class AppMySql : AppBase, IAppProcessor
{
public string MetaConfigName { get; set; }
///
///
///
///
///
[ParamsJsonSchemas("appCtorParamsJsonSchema")]
public AppMySql(AppConfigV1 appConfig, IServiceProvider services) : base(appConfig, services)
{
}
public void Init(IEnumerable processors)
{
base.fdcServerHostApp = processors.OfType().First();
base.HandlePumpStateChangeToDatabase(
() => new MySqlConnection(base.appConfig.DatabaseConnStr),
() => new MySqlCommand());
}
protected override string InitTable_jy_info_SqlCommand(string siteLevelNozzleId, string gradeFriendlyName,
double totalizerVol, double totalizerAmt)
{
return "call insert_jy_info_by_jihao('" + siteLevelNozzleId + "','F','" + gradeFriendlyName + "',0,0," + totalizerVol + "," + totalizerAmt + "); ";
}
public Task Start()
{
//using (var posSqlConnection = new MySqlConnection(this.databaseConnStr))
//{
// try
// {
// var createMySqlProcedureCmd = new MySqlCommand();
// //createMySqlProcedureCmd.CommandType = CommandType.StoredProcedure;
// createMySqlProcedureCmd.Connection = posSqlConnection;
// createMySqlProcedureCmd.CommandText = "drop procedure if exists insert_jy_info_by_jihao;" +
// " create procedure insert_jy_info_by_jihao(" +
// "IN input_jihao varchar(10)," +
// "IN input_status varchar(10)," +
// "IN input_youpin varchar(12)," +
// "IN input_qty float," +
// "IN input_amount float," +
// "IN input_fzqty float," +
// "IN input_fzamount float)" +
// " BEGIN IF NOT EXISTS(select* from jy_info where jihao = input_jihao) THEN " +
// " insert into jy_info(jihao, status, youpin, qty, amount, fzqty, fzamount) " +
// " values(input_jihao, input_status, input_youpin, input_qty, input_amount, input_fzqty, input_fzamount);" +
// " END IF;" //+
// //"\n"
// //"end $$; "
// ;
// posSqlConnection.Open();
// createMySqlProcedureCmd.ExecuteNonQuery();
// }
// catch (Exception ex)
// {
// logger.LogError("creating MySql procedure: 'insert_jy_info_by_jihao' failed, exception detail: " + ex);
// return false;
// }
//}
return Task.FromResult(
base.ReCreatePumpLayoutToDatabase(
() => new MySqlConnection(base.appConfig.DatabaseConnStr),
() => new MySqlCommand()));
}
public Task Stop()
{
return Task.FromResult(true);
}
}
}