56 lines
2.2 KiB
C#
56 lines
2.2 KiB
C#
namespace LaaProduction.Console
|
|
{
|
|
using LaaPackages.Features.Cordonel;
|
|
using LaaPackages.HttpClient;
|
|
using LaaPackages.SqlClient;
|
|
|
|
using System;
|
|
|
|
public class Program
|
|
{
|
|
public static void Main(String[] args)
|
|
{
|
|
var pcbidString = "192000024";
|
|
var cordonelApps = HttpConnection
|
|
.CreateHttpConnection<MPSConnection>("http://10.49.40.25/")
|
|
.Get<CordonelAppsDictionary>(x => x.SetPath("/MeterProcessState/api/ConfigurationJson"))
|
|
?.Value ?? new CordonelAppsDictionary();
|
|
SqlConnection
|
|
.CreateSqlConnection("Server=SLASQL01;Database=Auftrag;User Id=sa;Password=sqlserver")
|
|
.CreateCommand($@"
|
|
SELECT x.Id
|
|
, x.Address
|
|
, x.Value
|
|
FROM (SELECT gmh.ID AS Id
|
|
, CONVERT(VARBINARY(MAX), REPLACE(ISNULL(gmh.Address, '00'), '-', ''), 2) AS Address
|
|
, CONVERT(VARBINARY(MAX), REPLACE(REPLACE(ISNULL(gmh.Value, '00'), 'NULL', '00'), '-', ''), 2) AS Value
|
|
, ROW_NUMBER() OVER (PARTITION BY gmh.Address ORDER BY gmh.date DESC) AS Row
|
|
FROM GenesisMeterRegisterHistory AS gmh
|
|
WHERE gmh.PcbId = @{nameof(pcbidString)}) AS x
|
|
WHERE x.Row = 1
|
|
ORDER BY x.Address")
|
|
.SetParameter(nameof(pcbidString), pcbidString)
|
|
.ExecuteReader(reader =>
|
|
{
|
|
var addressBytes = reader.GetValue<Byte[]>(1);
|
|
|
|
if (addressBytes?.Length == 2)
|
|
{
|
|
var appId = addressBytes[0];
|
|
var registerId = addressBytes[1];
|
|
var register = cordonelApps[appId][registerId];
|
|
|
|
register.HistoryId = reader.GetValue<Int32>(0);
|
|
register.Value = reader.GetValue<Byte[]>(2);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public class MPSConnection : HttpConnection
|
|
{
|
|
public MPSConnection(string baseURL) : base(baseURL)
|
|
{
|
|
}
|
|
}
|
|
} |