1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using Edge.Core.IndustryStandardInterface.Pump;
- using Microsoft.Data.SqlClient;
- using Microsoft.Extensions.Logging;
- using System;
- using System.Collections.Generic;
- using System.Data;
- namespace EagleStar_Pump
- {
- internal class SqlClientHelper
- {
- public static List<FdcTransaction> ReadTransactionData(PumpGroupConfiguration appConfig, ILogger logger, ref int fid)
- {
- string queryString = "select top 1 FID, FFuelTradeID, FFipID, FNozzleID, FPrice, FDueAmount, FDueVolume, FTotalAmount" +
- $", FTotalVolume, FTradeTime from TFuelTradeRecord where FNozzleID>0 and FID>{fid}";
- var dataList = new List<FdcTransaction>();
- try
- {
- using (var connection = new SqlConnection(appConfig.DatabaseConnectionString))
- {
- if (connection.State != ConnectionState.Open)
- connection.Open();
- using (var command = new SqlCommand(queryString, connection))
- {
- using (var reader = command.ExecuteReader())
- {
- while (reader.Read())
- {
- var nz = new LogicalNozzle(int.Parse(reader["FFipID"].ToString()), 0, byte.Parse(reader["FNozzleID"].ToString()), null);
- var trx = new FdcTransaction()
- {
- SequenceNumberGeneratedOnPhysicalPump = int.Parse(reader["FFuelTradeID"].ToString()),
- Nozzle = nz,
- Price = (int)(decimal.Parse(reader["FPrice"].ToString()) * (decimal)Math.Pow(10, appConfig.PriceDecimalDigits)),
- Amount = (int)(decimal.Parse(reader["FDueAmount"].ToString()) * (decimal)Math.Pow(10, appConfig.AmountDecimalDigits)),
- Volumn = (int)(decimal.Parse(reader["FDueVolume"].ToString()) * (decimal)Math.Pow(10, appConfig.VolumeDecimalDigits)),
- AmountTotalizer = (int)(decimal.Parse(reader["FTotalAmount"].ToString()) * (decimal)Math.Pow(10, appConfig.AmountDecimalDigits)),
- VolumeTotalizer = (int)(decimal.Parse(reader["FTotalVolume"].ToString()) * (decimal)Math.Pow(10, appConfig.VolumeTotalizerDecimalDigits)),
- SaleEndTime = DateTime.Parse(reader["FTradeTime"].ToString()),
- Finished = true
- };
- dataList.Add(trx);
- int flag = int.Parse(reader["FID"].ToString());
- if (flag > fid)
- fid = flag;
- logger.LogTrace($"FID {fid}, SequenceNumber {trx.SequenceNumberGeneratedOnPhysicalPump}, PumpId {trx.Nozzle.PumpId}, LogicalId {trx.Nozzle.LogicalId}" +
- $", Price {trx.Price}, Amount {trx.Amount}, Volumn {trx.Volumn}, AmountTotalizer {trx.AmountTotalizer}, VolumeTotalizer {trx.VolumeTotalizer}" +
- $", SaleEndTime {trx.SaleEndTime}");
- }
- }
- }
- }
- }
- catch (Exception ex)
- {
- logger.LogError($"ReadTransactionData error, exception detail: {ex}");
- }
- return dataList;
- }
- }
- }
|