2022-09-23 11:52:57 +00:00
using System ;
2021-10-01 09:09:20 +00:00
using System.Net ;
using System.Net.Http ;
using System.Text ;
using System.Threading.Tasks ;
using System.Web.Http ;
2022-09-23 11:52:57 +00:00
using Xylem.Common.Logic.ServiceCore ;
2021-10-01 09:09:20 +00:00
namespace Xylem.Common.Service.MeterProcessState.Controllers
{
[RoutePrefix("api/TestBench")]
public class TestBenchController : ApiController
{
public static class GlobalConfig
{
2022-10-19 10:58:08 +00:00
public static Lazy < String > connectionString = new Lazy < String > ( ( )
2021-10-01 09:09:20 +00:00
= >
System . Configuration . ConfigurationManager . ConnectionStrings [ "default" ] . ConnectionString
) ;
}
2022-04-06 08:42:16 +00:00
/// <summary>
/// SetMeterLogPathInfo
/// </summary>
/// <param name="SerialNumber">PcbID from Meter</param>
///
/// <returns></returns>
[Route("SetMeterLogPathInfo"), HttpGet]
2023-08-23 12:45:24 +00:00
public async Task < HttpResponseMessage > SetMeterLogPathInfo ( Int32 SerialNumber , Int32 ? TestRunId = null , Int32 ? CalibrationRunId = null , String BasePath = "" , String MainLogName = "" , String LEDName = "" )
2022-04-06 08:42:16 +00:00
{
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 ( ) ) ;
2023-08-23 12:45:24 +00:00
return Request . CreateResponse ( HttpStatusCode . OK , "" ) ;
2022-04-06 08:42:16 +00:00
}
} ) ;
}
catch ( Exception ex )
{
return Request . CreateResponse ( HttpStatusCode . InternalServerError , ex ) ;
}
}
2021-10-01 09:09:20 +00:00
/// <summary>
/// Get SerialNumber from PcbID
/// </summary>
/// <param name="PcbID">PcbID from Meter</param>
/// <returns></returns>
[Route("GetMeterInfoForTestBench"), HttpGet]
2022-10-19 10:58:08 +00:00
public async Task < HttpResponseMessage > GetMeterInfoForTestBench ( String PcbID )
2021-10-01 09:09:20 +00:00
{
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 " ) ;
2022-06-21 10:54:26 +00:00
sb . AppendLine ( $" , (SELECT TOP(1) Dn_InternalId FROM CordonelMeterSizes where Dn_VakoID = substring(Identnr.VakoCode, 4, 2)) as NewNennweiteID " ) ;
2023-08-23 12:45:24 +00:00
2021-10-01 09:09:20 +00:00
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 " ) ;
2023-08-23 12:45:24 +00:00
sb . AppendLine ( $" , lut.FileCrc as LutCrc " ) ;
2021-10-01 09:09:20 +00:00
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 " ) ;
2023-08-23 12:45:24 +00:00
sb . AppendLine ( $" left outer join [Auftrag].[dbo].[Cordonel_Lut] lut on lut.MeterSize = (SELECT TOP(1) Dn_InternalId FROM CordonelMeterSizes where Dn_VakoID = substring(Identnr.VakoCode, 4, 2)) and lut.CurrentVersionForProd = 1 " ) ;
2021-10-01 09:09:20 +00:00
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");
}
2023-08-23 12:45:24 +00:00
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 ( ) , MapData . Rows [ 0 ] [ "LutCrc" ] . ToString ( ) } ;
2021-10-01 09:09:20 +00:00
return Request . CreateResponse ( HttpStatusCode . OK , ret ) ;
}
} ) ;
}
catch ( Exception ex )
{
return Request . CreateResponse ( HttpStatusCode . InternalServerError , ex ) ;
}
}
}
}