using Service.Core; using System; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace Xylem.Common.Service.MeterProcessState.Controllers { [RoutePrefix("api/TestBench")] public class TestBenchController : ApiController { public static class GlobalConfig { public static Lazy connectionString = new Lazy(() => System.Configuration.ConfigurationManager.ConnectionStrings["default"].ConnectionString ); } /// /// SetMeterLogPathInfo /// /// PcbID from Meter /// /// [Route("SetMeterLogPathInfo"), HttpGet] public async Task SetMeterLogPathInfo(int SerialNumber, int? TestRunId =null, int? CalibrationRunId = null, string BasePath = "", string MainLogName = "", string LEDName = "" ) { try { return await Task.Run(() => { using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value)) { StringBuilder sb = new StringBuilder(); var TestRunIdStr = TestRunId.HasValue ? TestRunId.Value.ToString() : "null"; var CalibrationRunIdStr = CalibrationRunId.HasValue ? CalibrationRunId.Value.ToString() : "null"; sb.AppendLine($" Insert into [Auftrag].[dbo].[CordonelLogFiles] "); sb.AppendLine($" select "); sb.AppendLine($"{SerialNumber} , "); sb.AppendLine($"{TestRunIdStr} , "); sb.AppendLine($"{CalibrationRunIdStr} , "); sb.AppendLine($"'{BasePath}' , "); sb.AppendLine($"'{MainLogName}' , "); sb.AppendLine($"'{LEDName}' "); var MapData = dataacces.ExecuteQuery(sb.ToString()); return Request.CreateResponse(HttpStatusCode.OK,""); } }); } catch (Exception ex) { return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } } /// /// Get SerialNumber from PcbID /// /// PcbID from Meter /// [Route("GetMeterInfoForTestBench"), HttpGet] public async Task GetMeterInfoForTestBench(string PcbID) { try { return await Task.Run(() => { using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value)) { StringBuilder sb = new StringBuilder(); sb.AppendLine($" SELECT distinct [MapPcbIdToSerialNumber_SerialNumber], mapOrder.CordonelAssignedPicking_FertigungsAuftragsNr ,KundeneigeneSerienNr as CustomerSerialNr "); sb.AppendLine($" , meter.[Adresse] , Nennweite as Dn "); sb.AppendLine($" , (SELECT TOP(1) Dn_InternalId FROM CordonelMeterSizes where Dn_VakoID = substring(Identnr.VakoCode, 4, 2)) as NewNennweiteID "); sb.AppendLine($" , (select top 1 ID from[Auftrag].[dbo].[CordonelMeterCalibrationResults] where PcbId = '{PcbID}' order by date desc) as CalibrationRunID "); sb.AppendLine($" , (select top 1 StatusFertigung from Auftrag.dbo.AuftragPositionSerienNr a where a.SerienNr = [MapPcbIdToSerialNumber_SerialNumber] order by AnlageDatum desc) as LastProcessState "); sb.AppendLine($" FROM Auftrag.dbo.Cordonel_AssignedPicking mapOrder "); sb.AppendLine($" left outer join [Auftrag].[dbo].[MapPcbIdToSerialNumber] map on mapOrder.CordonelAssignedPicking_PcbId = map.MapPcbIdToSerialNumber_PcbId and MapPcbIdToSerialNumber_Deleted = 0 "); sb.AppendLine($" left outer join Auftrag.dbo.AuftragPositionSerienNr mapSrn on map.[MapPcbIdToSerialNumber_SerialNumber] = mapSrn.SerienNr and mapSrn.Pruefgangnr = 0 "); sb.AppendLine($" left outer join Auftrag.dbo.AuftragPosition_gesamt auftraginfo on auftraginfo.AuftragNr = mapSrn.AuftragNr and auftraginfo.PositionNr = mapSrn.PositionNr "); sb.AppendLine($" left outer join [Auftrag].[dbo].[Genesis_Meter] meter on meter.Seriennummer = MapPcbIdToSerialNumber_SerialNumber "); sb.AppendLine($" left outer join Identnr on auftraginfo.Identnr = Identnr.IdentNr "); sb.AppendLine($" where mapOrder.CordonelAssignedPicking_IsDeleted = 0 and mapOrder.CordonelAssignedPicking_PcbId = '{PcbID}'"); var MapData = dataacces.ExecuteQuery(sb.ToString()); if (MapData.Rows.Count != 1) { return Request.CreateResponse(HttpStatusCode.OK, new String[] { string.Empty, string.Empty, string.Empty }); //return Request.CreateResponse(HttpStatusCode.InternalServerError, "Can not find unique serial number for your request"); } var ret = new String[] { MapData.Rows[0]["MapPcbIdToSerialNumber_SerialNumber"].ToString(), MapData.Rows[0]["CordonelAssignedPicking_FertigungsAuftragsNr"].ToString(), MapData.Rows[0]["Adresse"].ToString(), MapData.Rows[0]["CustomerSerialNr"].ToString(), MapData.Rows[0]["CalibrationRunID"].ToString(), MapData.Rows[0]["LastProcessState"].ToString(), MapData.Rows[0]["Dn"].ToString() , MapData.Rows[0]["NewNennweiteID"].ToString() }; return Request.CreateResponse(HttpStatusCode.OK, ret); } }); } catch (Exception ex) { return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } } } }