Merge done
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
using Logic.ProductionToProductMapper.Cordonel;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Service.Core;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
@@ -11,45 +7,42 @@ using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Http;
|
||||
using Logic.ProductionToProductMapper.Cordonel;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Service.Core;
|
||||
using Xylem.Common.Logic.ProductionOrderCore;
|
||||
using Xylem.Common.Logic.ProductionOrderCore.KitronTestResults;
|
||||
using Xylem.Common.Logic.ProductionOrderCore.OrderData;
|
||||
using Xylem.Common.Logic.ProductionOrderCore.Vako;
|
||||
|
||||
namespace Service.MeterProcessState.Controllers
|
||||
namespace Xylem.Common.Service.MeterProcessState.Controllers
|
||||
{
|
||||
[RoutePrefix("api/FinalCheck")]
|
||||
public class FinalCheckController : ApiController
|
||||
{
|
||||
|
||||
|
||||
|
||||
public static class GlobalConfig
|
||||
{
|
||||
public static Lazy<string> connectionString = new Lazy<string>(()
|
||||
=>
|
||||
System.Configuration.ConfigurationManager.ConnectionStrings["default"].ConnectionString
|
||||
public static Lazy<String> ConnectionString = new Lazy<String>(()
|
||||
=> System.Configuration.ConfigurationManager.ConnectionStrings["default"].ConnectionString
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//LocalWebRequest
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get Radio Configuration from database matching the PcbID
|
||||
/// </summary>
|
||||
/// <param name="PcbID">PcbID from Meter</param>
|
||||
/// <param name="pcbID">PcbID from Meter</param>
|
||||
/// <returns></returns>
|
||||
[Route("GetProgrammingParameters"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetProgrammingParameters(string PcbID)
|
||||
public async Task<HttpResponseMessage> GetProgrammingParameters(String pcbID)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var builder = new StringBuilder();
|
||||
var ret = OrderProgrammingParameters.GetProgrammingParameters(PcbID, GlobalConfig.connectionString.Value);
|
||||
var ret = OrderProgrammingParameters.GetProgrammingParameters(pcbID, GlobalConfig.ConnectionString.Value);
|
||||
foreach (var r in ret.Where(r => r.RegisterName == "SENSUSRADIO_EncryptionKey"))
|
||||
{
|
||||
foreach (var t in r.RegisterValue)
|
||||
@@ -77,30 +70,26 @@ namespace Service.MeterProcessState.Controllers
|
||||
/// <param name="PcbID">PcbID from Meter</param>
|
||||
/// <returns></returns>
|
||||
[Route("GetEncryptionKey"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetEncryptionKey(string PcbID)
|
||||
public async Task<HttpResponseMessage> GetEncryptionKey(String PcbID)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var builder = new StringBuilder();
|
||||
var ret = OrderProgrammingParameters.GetProgrammingParameters(PcbID, GlobalConfig.connectionString.Value);
|
||||
var ret = OrderProgrammingParameters.GetProgrammingParameters(PcbID, GlobalConfig.ConnectionString.Value);
|
||||
|
||||
var key = ret.FirstOrDefault(r => r.RegisterName == "SENSUSRADIO_EncryptionKey" && r.Source == ProgrammingSource.Csd);
|
||||
var key = ret.FirstOrDefault(r => r.RegisterName == "SENSUSRADIO_EncryptionKey" && r.Source == ProgrammingSource.Csd) ??
|
||||
ret.FirstOrDefault(r => r.RegisterName == "SENSUSRADIO_EncryptionKey" && r.Source == ProgrammingSource.Vako);
|
||||
|
||||
if (key == null)
|
||||
if (key != null)
|
||||
{
|
||||
key = ret.FirstOrDefault(r => r.RegisterName == "SENSUSRADIO_EncryptionKey" && r.Source == ProgrammingSource.Vako);
|
||||
foreach (var t in key.RegisterValue)
|
||||
{
|
||||
builder.Append(t.ToString("x2"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach (var t in key.RegisterValue)
|
||||
{
|
||||
builder.Append(t.ToString("x2"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, builder.ToString());
|
||||
|
||||
});
|
||||
@@ -117,14 +106,14 @@ namespace Service.MeterProcessState.Controllers
|
||||
/// <param name="PcbID">PcbID from Meter</param>
|
||||
/// <returns></returns>
|
||||
[Route("GetRadioConfiguration"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetRadioConfiguration(string PcbID, bool withPressure)
|
||||
public async Task<HttpResponseMessage> GetRadioConfiguration(String PcbID, Boolean withPressure)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
|
||||
var radio = OrderRadioParameter.GetRadioPramas(PcbID, GlobalConfig.connectionString.Value, withPressure ? "p" : "");
|
||||
var radio = OrderRadioParameter.GetRadioParams(PcbID, GlobalConfig.ConnectionString.Value, withPressure ? "p" : "");
|
||||
if (radio != null)
|
||||
{
|
||||
|
||||
@@ -158,13 +147,13 @@ namespace Service.MeterProcessState.Controllers
|
||||
/// <param name="PcbID">PcbID from Meter</param>
|
||||
/// <returns></returns>
|
||||
[Route("GetConfiguration"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetConfiguration(string PcbID)
|
||||
public async Task<HttpResponseMessage> GetConfiguration(String PcbID)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
|
||||
|
||||
@@ -181,9 +170,9 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
|
||||
//MapData.Rows[0]["Adresse"]
|
||||
var ra = (long)MapData.Rows[0]["Adresse"] - 10000000000;
|
||||
var ra = (Int64)MapData.Rows[0]["Adresse"] - 10000000000;
|
||||
|
||||
var resultDic = new Dictionary<string, object>();
|
||||
var resultDic = new Dictionary<String, Object>();
|
||||
|
||||
resultDic.Add("SENSUSRADIO_RadioAddress", ra);
|
||||
|
||||
@@ -220,13 +209,13 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
|
||||
[Route("GetOrderOverview"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetOrderOverview(int ProductionOrderNumber, int? CheckPcbId = null)
|
||||
public async Task<HttpResponseMessage> GetOrderOverview(Int32 ProductionOrderNumber, Int32? CheckPcbId = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(async () =>
|
||||
{
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
|
||||
|
||||
@@ -281,10 +270,10 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
foreach (DataRow row in MapData.Rows)
|
||||
{
|
||||
ret.Count = (int)row["menge"];
|
||||
ret.AssignedPicking = (int)row["AssignedPicking"];
|
||||
ret.PressureTested = (int)row["PressureTested"];
|
||||
ret.HeliumTested = (int)row["HeliumTested"];
|
||||
ret.Count = (Int32)row["menge"];
|
||||
ret.AssignedPicking = (Int32)row["AssignedPicking"];
|
||||
ret.PressureTested = (Int32)row["PressureTested"];
|
||||
ret.HeliumTested = (Int32)row["HeliumTested"];
|
||||
}
|
||||
if (CheckPcbId.HasValue)
|
||||
{
|
||||
@@ -310,12 +299,12 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
}
|
||||
[Route("GetKitronProductionResults"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetKitronProductionResults(int? SerialNumber = null, string PcbID = "")
|
||||
public async Task<HttpResponseMessage> GetKitronProductionResults(Int32? SerialNumber = null, String PcbID = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
var ret = new Dictionary<string, JObject>();
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
var ret = new Dictionary<String, JObject>();
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await Task.Run(() =>
|
||||
{
|
||||
@@ -378,12 +367,12 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
|
||||
[Route("GetKitronProductionDate"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetKitronProductionDate(int CheckPcbId)
|
||||
public async Task<HttpResponseMessage> GetKitronProductionDate(Int32 CheckPcbId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var ret = new DateTimeOffset();
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await Task.Run(() =>
|
||||
{
|
||||
@@ -435,12 +424,12 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
|
||||
[Route("GetPossibleRadioLengths"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetPossibleRadioLengths(int CheckPcbId)
|
||||
public async Task<HttpResponseMessage> GetPossibleRadioLengths(Int32 CheckPcbId)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
|
||||
var sb = new StringBuilder();
|
||||
@@ -451,8 +440,8 @@ namespace Service.MeterProcessState.Controllers
|
||||
sb.AppendLine(" where [ID_PCB] = @PcbId ");
|
||||
sb.AppendLine(" order by ID_TEST desc ");
|
||||
var dt = dataacces.ExecuteQuery(sb.ToString());
|
||||
int? frq = null;
|
||||
var listLength = new List<string>();
|
||||
Int32? frq = null;
|
||||
var listLength = new List<String>();
|
||||
foreach (var item in dt.Select())
|
||||
{
|
||||
try
|
||||
@@ -491,7 +480,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
|
||||
|
||||
var sbRet = new List<string>();
|
||||
var sbRet = new List<String>();
|
||||
|
||||
foreach (var item in listLength)
|
||||
{
|
||||
@@ -529,7 +518,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
|
||||
[Route("GetOrderDetails"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetOrderDetails(int ProductionOrderNumber, int? CheckPcbId = null)
|
||||
public async Task<HttpResponseMessage> GetOrderDetails(Int32 ProductionOrderNumber, Int32? CheckPcbId = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -542,14 +531,14 @@ namespace Service.MeterProcessState.Controllers
|
||||
return Request.CreateResponse(HttpStatusCode.ExpectationFailed, ex);
|
||||
}
|
||||
}
|
||||
private PickingCompareItem GetPickingItem(int ProductionOrderNumber, int? CheckPcbId)
|
||||
private PickingCompareItem GetPickingItem(Int32 ProductionOrderNumber, Int32? CheckPcbId)
|
||||
{
|
||||
var ignorProductionDate = new DateTime();
|
||||
return GetPickingItem(ProductionOrderNumber, CheckPcbId, out ignorProductionDate);
|
||||
}
|
||||
private PickingCompareItem GetPickingItem(int ProductionOrderNumber, int? CheckPcbId, out DateTime dateTime)
|
||||
private PickingCompareItem GetPickingItem(Int32 ProductionOrderNumber, Int32? CheckPcbId, out DateTime dateTime)
|
||||
{
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
var lastProdDate = new DateTime();
|
||||
List<ProgrammingParameters> programming = new List<ProgrammingParameters>();
|
||||
@@ -586,8 +575,8 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
foreach (DataRow row in checkAppsData.Rows)
|
||||
{
|
||||
uint AppID = uint.MaxValue;
|
||||
uint Version = uint.MaxValue;
|
||||
UInt32 AppID = uint.MaxValue;
|
||||
UInt32 Version = uint.MaxValue;
|
||||
if (uint.TryParse(row["CordonelCurrentFw_AppID"].ToString(), out AppID) && uint.TryParse(row["CordonelCurrentFw_Version"].ToString(), out Version))
|
||||
{
|
||||
checkAppsIdVersion.Add(AppID, Version);
|
||||
@@ -624,7 +613,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
if (dt.Rows.Count == 1)
|
||||
{
|
||||
//invert is a skip not a do value
|
||||
SkipRadioCheck = (bool)dt.Rows[0]["SkipRadioParameters"];
|
||||
SkipRadioCheck = (Boolean)dt.Rows[0]["SkipRadioParameters"];
|
||||
}
|
||||
|
||||
|
||||
@@ -778,7 +767,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
private static bool findMatchingTestResult(ref DateTime lastProdDate, string LengthString, string dnString, RadioTest radioTestResult)
|
||||
private static Boolean findMatchingTestResult(ref DateTime lastProdDate, String LengthString, String dnString, RadioTest radioTestResult)
|
||||
{
|
||||
var TestStepLoopCalibratesOk = radioTestResult.TestStepLoopCalibrate.Values.Where(w => w != null && w.ResultCalibration != null && w.LengthCode != null && w.ResultCalibration.ToLower() == "ok" && w.LengthCode.StartsWith($"DN{dnString}")).ToList();
|
||||
|
||||
@@ -917,7 +906,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
//}
|
||||
[Route("SetMetersizeProgrammingData"), HttpPost]
|
||||
public async Task<HttpResponseMessage> SetMetersizeProgrammingData(MeterSize ParameterMeterSize, [FromBody] string listOfDnParamsRaw)
|
||||
public async Task<HttpResponseMessage> SetMetersizeProgrammingData(MeterSize ParameterMeterSize, [FromBody] String listOfDnParamsRaw)
|
||||
{
|
||||
|
||||
try
|
||||
@@ -926,7 +915,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
|
||||
|
||||
var listOfDnParams = JsonConvert.DeserializeObject<Dictionary<string, UInt32>>(listOfDnParamsRaw);
|
||||
var listOfDnParams = JsonConvert.DeserializeObject<Dictionary<String, UInt32>>(listOfDnParamsRaw);
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendLine($" delete [Auftrag].[dbo].[CordonelMeterSizesParameter] where [Dn_InternalId] = { ParameterMeterSize.GetHashCode()} ");
|
||||
foreach (var item in listOfDnParams)
|
||||
@@ -935,7 +924,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
sb.AppendLine($" select {ParameterMeterSize.GetHashCode()}, '{item.Key}', {item.Value};");
|
||||
}
|
||||
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await Task.Run(() => { return dataacces.ExecuteQuery(sb.ToString()) != null; }));
|
||||
@@ -953,7 +942,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
[Route("GetMetersizeProgrammingData"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetMetersizeProgrammingData(MeterSize MeterSize)
|
||||
{
|
||||
var programming = new Dictionary<string, UInt32>();
|
||||
var programming = new Dictionary<String, UInt32>();
|
||||
var sb = new StringBuilder();
|
||||
try
|
||||
{
|
||||
@@ -964,7 +953,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
sb.AppendLine($" inner join [Auftrag].[dbo].[CordonelMeterSizesParameter] para on size.Dn_InternalId = para.[Dn_InternalId] ");
|
||||
sb.AppendLine($" where size.[Dn_InternalId] = {MeterSize.GetHashCode()} ");
|
||||
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
var MapData = dataacces.ExecuteQuery(sb.ToString());
|
||||
|
||||
@@ -992,12 +981,12 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
|
||||
[Route("GetVakoPogramming"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetVakoPogramming(int ProductionOrderNumber)
|
||||
public async Task<HttpResponseMessage> GetVakoPogramming(Int32 ProductionOrderNumber)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
List<ProgrammingParameters> programming = new List<ProgrammingParameters>();
|
||||
GetVakoProgramming(ProductionOrderNumber, dataacces, programming);
|
||||
@@ -1011,7 +1000,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
}
|
||||
|
||||
[Route("GetSingleVakoKey"), HttpGet]
|
||||
public async Task<HttpResponseMessage> GetSingleVakoKey(int ProductionOrderNumber, string KeyName)
|
||||
public async Task<HttpResponseMessage> GetSingleVakoKey(Int32 ProductionOrderNumber, String KeyName)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1019,8 +1008,8 @@ namespace Service.MeterProcessState.Controllers
|
||||
{
|
||||
|
||||
|
||||
var rawVako = VakoDbAdapter.GetRawVako(GlobalConfig.connectionString.Value, ProductionOrderNumber);
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.connectionString.Value, rawVako.Type);
|
||||
var rawVako = VakoDbAdapter.GetRawVako(GlobalConfig.ConnectionString.Value, ProductionOrderNumber);
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.ConnectionString.Value, rawVako.Type);
|
||||
var vakoData = VakoParser.Parse(rawVako, rawMapping);
|
||||
var hitList = vakoData.KeyValues.FindAll(g => g.Name == KeyName);
|
||||
if (hitList.Count != 1)
|
||||
@@ -1048,17 +1037,17 @@ namespace Service.MeterProcessState.Controllers
|
||||
{
|
||||
var ret = new List<VakoNew>();
|
||||
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.connectionString.Value, "GNS");
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.ConnectionString.Value, "GNS");
|
||||
var grpd = rawMapping.GroupBy(g => g.Name);
|
||||
foreach (var item in grpd)
|
||||
{
|
||||
var l = item.ToList();
|
||||
var digits = new List<long> { };
|
||||
for (int i = 1; i <= l.First().Laenge; i++)
|
||||
var digits = new List<Int64> { };
|
||||
for (Int32 i = 1; i <= l.First().Laenge; i++)
|
||||
{
|
||||
digits.Add(l.First().Stelle + i);
|
||||
}
|
||||
var d = new Dictionary<string, string>();
|
||||
var d = new Dictionary<String, String>();
|
||||
foreach (var lvalues in l)
|
||||
{
|
||||
try
|
||||
@@ -1087,19 +1076,19 @@ namespace Service.MeterProcessState.Controllers
|
||||
public partial class VakoNew
|
||||
{
|
||||
|
||||
public string Name { get; set; }
|
||||
public String Name { get; set; }
|
||||
|
||||
|
||||
public long[] Digits { get; set; }
|
||||
public Int64[] Digits { get; set; }
|
||||
|
||||
|
||||
public Dictionary<string, string> Values { get; set; }
|
||||
public Dictionary<String, String> Values { get; set; }
|
||||
}
|
||||
|
||||
private static void GetVakoProgramming(int ProductionOrderNumber, SqlDataAccess dataacces, List<ProgrammingParameters> programming)
|
||||
private static void GetVakoProgramming(Int32 ProductionOrderNumber, SqlDataAccess dataacces, List<ProgrammingParameters> programming)
|
||||
{
|
||||
var rawVako = VakoDbAdapter.GetRawVako(GlobalConfig.connectionString.Value, ProductionOrderNumber);
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.connectionString.Value, rawVako.Type);
|
||||
var rawVako = VakoDbAdapter.GetRawVako(GlobalConfig.ConnectionString.Value, ProductionOrderNumber);
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(GlobalConfig.ConnectionString.Value, rawVako.Type);
|
||||
var vakoData = VakoParser.Parse(rawVako, rawMapping);
|
||||
|
||||
|
||||
@@ -1123,18 +1112,18 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
foreach (DataRow row in MapData.Rows)
|
||||
{
|
||||
programming.Add(new ProgrammingParameters(row["RegisterName"].ToString(), (byte[])row["RegisterValue"]));
|
||||
programming.Add(new ProgrammingParameters(row["RegisterName"].ToString(), (Byte[])row["RegisterValue"]));
|
||||
}
|
||||
}
|
||||
|
||||
[Route("GetLastState")]
|
||||
public async Task<HttpResponseMessage> GetLastState(string PcbId)
|
||||
public async Task<HttpResponseMessage> GetLastState(String PcbId)
|
||||
{
|
||||
try
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await Task.Run(() =>
|
||||
{
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||
using (var dataacces = new SqlDataAccess(GlobalConfig.ConnectionString.Value))
|
||||
{
|
||||
var dt = dataacces.ExecuteQuery($"select top 1 [ProcessState_State] from dbo.MeterProcessState where ProcessState_PcbId like '{PcbId}' order by ProcessState_DateUtc desc ");
|
||||
foreach (var item in dt.Select())
|
||||
|
||||
Reference in New Issue
Block a user