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("http://10.49.40.25/") .Get(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(1); if (addressBytes?.Length == 2) { var appId = addressBytes[0]; var registerId = addressBytes[1]; var register = cordonelApps[appId][registerId]; register.HistoryId = reader.GetValue(0); register.Value = reader.GetValue(2); } }); } } public class MPSConnection : HttpConnection { public MPSConnection(string baseURL) : base(baseURL) { } } }