2022-09-23 11:52:57 +00:00
using Service.MeterProcessState.Data ;
2021-10-01 09:09:20 +00:00
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Net ;
using System.Net.Http ;
using System.Text ;
using System.Threading.Tasks ;
using System.Web.Http ;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace Service.MeterProcessState.Controllers
{
[System.Web.Http.Route("api/[controller] ")]
public class ValuesController : ApiController
{
[Route("GetCalibrationResult")]
[System.Web.Http.HttpGet]
2022-10-19 10:58:08 +00:00
public async Task < String > GetCalibrationResult ( Int32 SerialNumber )
2021-10-01 09:09:20 +00:00
{
using ( AuftragContext ctx = new AuftragContext ( ) )
{
try
{
var sb = new StringBuilder ( ) ;
// SELECT
//[MapPcbIdToSerialNumber_SerialNumber]
// ,[ID]
// ,[PcbId]
// ,[CalFactor1]
// ,[CalFactor2]
// ,[CalFactor3]
// ,[ZeroOffset1]
// ,[ZeroOffset2]
// ,[ZeroOffset3]
// ,[FirstHitUpdatePeriod]
// ,[FirstHitShift]
// ,[FirstHitPercent1]
// ,[FirstHitPercent2]
// ,[FirstHitPercent3]
// ,[ToFTempOffset1]
// ,[ToFTempOffset2]
// ,[ToFTempOffset3]
// ,[MeterSize]
// ,[date]
// FROM [dbo].[MapPcbIdToSerialNumber]
// inner join [Auftrag].[dbo].[CordonelMeterCalibrationResults] on [MapPcbIdToSerialNumber_PcbId] = [PcbId]
// where [MapPcbIdToSerialNumber_SerialNumber] = 20729192
var query = from map in ctx . MapPcbIdToSerialNumber
join calibrationResult in ctx . CordonelMeterCalibrationResults on map . MapPcbIdToSerialNumber_PcbId equals calibrationResult . PcbId
where map . MapPcbIdToSerialNumber_SerialNumber = = SerialNumber
orderby calibrationResult . Date descending
select new
{
SerialNumber = map . MapPcbIdToSerialNumber_SerialNumber ,
PcbId = map . MapPcbIdToSerialNumber_PcbId ,
CalibrationId = calibrationResult . Id ,
CalFactor1 = calibrationResult . CalFactor1 ,
CalFactor2 = calibrationResult . CalFactor2 ,
CalFactor3 = calibrationResult . CalFactor3 ,
ZeroOffset1 = calibrationResult . ZeroOffset1 ,
ZeroOffset2 = calibrationResult . ZeroOffset2 ,
ZeroOffset3 = calibrationResult . ZeroOffset3 ,
FirstHitUpdatePeriod = calibrationResult . FirstHitUpdatePeriod ,
FirstHitShift = calibrationResult . FirstHitShift ,
FirstHitPercent1 = calibrationResult . FirstHitPercent1 ,
FirstHitPercent2 = calibrationResult . FirstHitPercent2 ,
FirstHitPercent3 = calibrationResult . FirstHitPercent3 ,
ToFTempOffset1 = calibrationResult . ToFtempOffset1 ,
ToFTempOffset2 = calibrationResult . ToFtempOffset2 ,
ToFTempOffset3 = calibrationResult . ToFtempOffset3 ,
MeterSize = calibrationResult . MeterSize ,
Date = calibrationResult . Date
////ID PcbId CalibrationResultsID LogKey LogText
} ;
var resl = query . ToList ( ) ;
foreach ( var calibration in resl )
{
sb . AppendLine ( "<details>" ) ;
sb . AppendLine ( $"<summary>Calibration Run #{calibration.CalibrationId} at {calibration.Date} <svg class=\" control - icon control - icon - expand \ " width=\"24\" height=\"24\" role=\"presentation\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#expand-more\" /></svg> <svg class=\"control-icon control-icon-close\" width=\"24\" height=\"24\" role=\"presentation\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#close\" /></svg></summary>" ) ;
sb . AppendLine ( $"<p>SerialNumber: {calibration.SerialNumber}</p>" ) ;
sb . AppendLine ( $"<p>PcbId: { calibration.PcbId}</p>" ) ;
sb . AppendLine ( $"<p>CalibrationId: { calibration.CalibrationId}</p>" ) ;
sb . AppendLine ( $"<p>CalFactor1: { calibration.CalFactor1}</p>" ) ;
sb . AppendLine ( $"<p>CalFactor2: { calibration.CalFactor2}</p>" ) ;
sb . AppendLine ( $"<p>CalFactor3: { calibration.CalFactor3}</p>" ) ;
sb . AppendLine ( $"<p>ZeroOffset1: { calibration.ZeroOffset1}</p>" ) ;
sb . AppendLine ( $"<p>ZeroOffset2: { calibration.ZeroOffset2}</p>" ) ;
sb . AppendLine ( $"<p>ZeroOffset3: { calibration.ZeroOffset3}</p>" ) ;
sb . AppendLine ( $"<p>FirstHitUpdatePeriod: { calibration.FirstHitUpdatePeriod}</p>" ) ;
sb . AppendLine ( $"<p>FirstHitShift: { calibration.FirstHitShift}</p>" ) ;
sb . AppendLine ( $"<p>FirstHitPercent1: { calibration.FirstHitPercent1}</p>" ) ;
sb . AppendLine ( $"<p>FirstHitPercent2: { calibration.FirstHitPercent2}</p>" ) ;
sb . AppendLine ( $"<p>FirstHitPercent3: { calibration.FirstHitPercent3}</p>" ) ;
sb . AppendLine ( $"<p>ToFTempOffset1: { calibration.ToFTempOffset1}</p>" ) ;
sb . AppendLine ( $"<p>ToFTempOffset2: { calibration.ToFTempOffset2}</p>" ) ;
sb . AppendLine ( $"<p>ToFTempOffset3: { calibration.ToFTempOffset3}</p>" ) ;
sb . AppendLine ( $"<p>MeterSize: { calibration.MeterSize}</p>" ) ;
sb . AppendLine ( $"<p>Date: { calibration.Date}</p>" ) ;
var logQuery = from log in ctx . CordonelMeterCalibrationLog
where log . CalibrationResultsID = = calibration . CalibrationId & & log . PcbId . ToString ( ) = = calibration . PcbId
orderby log . ID descending
select new
{
Key = log . LogKey ,
Text = log . LogText
} ;
var resultLog = logQuery . ToList ( ) ;
sb . AppendLine ( "<details>" ) ;
sb . AppendLine ( $"<summary>Logs Run #{calibration.CalibrationId} <svg class=\" control - icon control - icon - expand \ " width=\"24\" height=\"24\" role=\"presentation\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#expand-more\" /></svg> <svg class=\"control-icon control-icon-close\" width=\"24\" height=\"24\" role=\"presentation\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#close\" /></svg></summary>" ) ;
foreach ( var item in resultLog )
{
sb . AppendLine ( $"<p>{item.Key}: {item.Text}</p>" ) ;
}
sb . AppendLine ( "</details>" ) ;
sb . AppendLine ( "</details>" ) ;
}
return sb . ToString ( ) ;
}
catch ( Exception ex )
{
throw ;
}
}
throw new Exception ( ) ;
}
//[Route("GetErrorCurve")]
//[HttpGet]
//public async Task<IHttpActionResult> Get(int SerialNumber, int lastXRounds = 1, int? testbench = null, bool LoadDisplay = true, bool LoadPath1 = false, bool LoadPath2 = false, bool LoadPath3 = false) // todo add date , testbench and more filters
//{
// bool showPaths = true;
// if (!testbench.HasValue)
// {
// testbench = 0;
// }
// using (var ctx = new AuftragContext())
// {
// try
// {
// var query = from aps in ctx.AuftragPositionSerienNr
// join pg in ctx.Pruefgang on aps.Pruefgangnr equals pg.PruefgangNr
// join pf in ctx.Prueffehler on new { pg = aps.Pruefgangnr, aps.SerienNr } equals new { pg = pf.PruefgangNr, pf.SerienNr }
// join pfc1 in ctx.PrueffehlerGenesisPfade on new { pf.PruefgangNr, pf.SerienNr, Pfad = (short)1 } equals new { pfc1.PruefgangNr, pfc1.SerienNr, pfc1.Pfad }
// join pfc2 in ctx.PrueffehlerGenesisPfade on new { pf.PruefgangNr, pf.SerienNr, Pfad = (short)2 } equals new { pfc2.PruefgangNr, pfc2.SerienNr, pfc2.Pfad }
// join pfc3 in ctx.PrueffehlerGenesisPfade on new { pf.PruefgangNr, pf.SerienNr, Pfad = (short)3 } equals new { pfc3.PruefgangNr, pfc3.SerienNr, pfc3.Pfad }
// where aps.SerienNr == SerialNumber
// && (testbench.Value == 0 || pg.PruefstationNr == testbench.Value)
// orderby pg.PruefgangNr descending
// select new List<ErrorCurve>() {
// //Display
// new ErrorCurve() { SerialNumber = $"{SerialNumber}", TestNr = pg.PruefgangNr,
// Flows = new List<float?>() { pg.Pp1Soll,pg.Pp2Soll,pg.Pp3Soll,pg.Pp4Soll,pg.Pp5Soll,pg.Pp6Soll,pg.Pp7Soll,pg.Pp8Soll,pg.Pp9Soll,pg.Pp10Soll },
// Deviations = new List<double?>() { pf.Pp1Fehler,pf.Pp2Fehler,pf.Pp3Fehler,pf.Pp4Fehler,pf.Pp5Fehler,pf.Pp6Fehler,pf.Pp7Fehler,pf.Pp8Fehler,pf.Pp9Fehler,pf.Pp10Fehler }
// },
// //Path1
// new ErrorCurve() { SerialNumber = $"{SerialNumber}_Path1", TestNr = pg.PruefgangNr,
// Flows = new List<float?>() { pg.Pp1Soll,pg.Pp2Soll,pg.Pp3Soll,pg.Pp4Soll,pg.Pp5Soll,pg.Pp6Soll,pg.Pp7Soll,pg.Pp8Soll,pg.Pp9Soll,pg.Pp10Soll },
// Deviations = new List<double?>() { pfc1.Pp1Fehler,pfc1.Pp2Fehler,pfc1.Pp3Fehler,pfc1.Pp4Fehler,pfc1.Pp5Fehler,pfc1.Pp6Fehler,pfc1.Pp7Fehler,pfc1.Pp8Fehler,pfc1.Pp9Fehler,pfc1.Pp10Fehler }
// },
// //Path2
// new ErrorCurve() { SerialNumber = $"{SerialNumber}_Path2", TestNr = pg.PruefgangNr,
// Flows = new List<float?>() { pg.Pp1Soll,pg.Pp2Soll,pg.Pp3Soll,pg.Pp4Soll,pg.Pp5Soll,pg.Pp6Soll,pg.Pp7Soll,pg.Pp8Soll,pg.Pp9Soll,pg.Pp10Soll },
// Deviations = new List<double?>() { pfc2.Pp1Fehler,pfc2.Pp2Fehler,pfc2.Pp3Fehler,pfc2.Pp4Fehler,pfc2.Pp5Fehler,pfc2.Pp6Fehler,pfc2.Pp7Fehler,pfc2.Pp8Fehler,pfc2.Pp9Fehler,pfc2.Pp10Fehler }
// },
// //Path3
// new ErrorCurve() { SerialNumber = $"{SerialNumber}_Path3", TestNr = pg.PruefgangNr,
// Flows = new List<float?>() { pg.Pp1Soll,pg.Pp2Soll,pg.Pp3Soll,pg.Pp4Soll,pg.Pp5Soll,pg.Pp6Soll,pg.Pp7Soll,pg.Pp8Soll,pg.Pp9Soll,pg.Pp10Soll },
// Deviations = new List<double?>() { pfc3.Pp1Fehler,pfc3.Pp2Fehler,pfc3.Pp3Fehler,pfc3.Pp4Fehler,pfc3.Pp5Fehler,pfc3.Pp6Fehler,pfc3.Pp7Fehler,pfc3.Pp8Fehler,pfc3.Pp9Fehler,pfc3.Pp10Fehler }
// }
// };
// var listOfResults = new List<List<ErrorCurve>>();
// var listOfFlows = new List<float?>();
// var c = 0;
// var ds = new List<Dataset>();
// var MyArray = new List<MyArray>();
// var listOfCurve = query.Take(lastXRounds).ToList();
// var listOfAllFlows = new List<float>();
// var listOfAllFlowsNullable = new List<float?>();
// listOfCurve.Select(f => f.First().Flows).Distinct().ToList().ForEach(a => listOfAllFlowsNullable.AddRange(a));
// listOfAllFlows = listOfAllFlowsNullable.Where(f => f.HasValue).Select(f => f.Value).Distinct().OrderByDescending(a => a).ToList();
// var sb = new StringBuilder();
// sb.AppendLine($"<button onclick=\"exportTableToCSV('MeterDataCenterExport_{SerialNumber}.csv')\">Export To CSV</button>");
// sb.AppendLine("<table class=\"table\" style=\"font-size:12px; \"> ".Trim());
// sb.AppendLine("<thead> ".Trim());
// sb.AppendLine(" <tr> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" SerialNumber ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" TestNr ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// foreach (var flow in listOfAllFlows)
// {
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine($" Deviation for {flow } m³/ h ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// }
// sb.AppendLine(" </tr> ".Trim());
// sb.AppendLine("</thead> ".Trim());
// sb.AppendLine("<tbody> ".Trim());
// foreach (var ecs in listOfCurve)
// {
// var p = 0;
// foreach (var ec in ecs)
// {
// //ec.HexColor = getSingleMeterColor(p, c);
// if ((!LoadDisplay && p == 0)
// || (!LoadPath1 && p == 1)
// || (!LoadPath2 && p == 2)
// || (!LoadPath3 && p == 3))
// {
// p = p + 1;
// //skip this path
// break;
// }
// var mappedFlows = new List<double?>();
// listOfAllFlows.ForEach(a => mappedFlows.Add(null));
// bool hasReservFlow = false;
// foreach (var f in ec.Flows)
// {
// if (f != null)
// {
// var indexOfFlowAndDiviation = ec.Flows.IndexOf(f);
// var currentDeviation = ec.Deviations[indexOfFlowAndDiviation];
// if (p != 0)
// {
// // mappedFlows.ForEach(changeError => changeError = changeError < -180 ? changeError + 200 : changeError);
// if (currentDeviation <= -180)
// {
// currentDeviation = (currentDeviation + 200) * -1;
// hasReservFlow = true;
// }
// }
// mappedFlows[indexOfFlowAndDiviation] = currentDeviation;
// }
// }
// var AxisID = $"y-axis-1";
// ds.Add(new Dataset()
// {
// label = ec.GetIdent(),
// borderColor = getSingleMeterColor(p, c),
// backgroundColor = getSingleMeterColor(p, c),
// fill = false,
// data = mappedFlows.ToList(),
// yAxisID = AxisID,
// borderDash = hasReservFlow ? new int[] { 12, 3, 3 } : new int[] { },
// spanGaps = true
// });
// if (ds.Count == 1)
// {
// MyArray.Add(new MyArray() { type = "linear", display = ds.Count == 1, position = "left", id = AxisID, gridLines = new GridLines() { drawOnChartArea = ds.Count == 1 } });
// }
// sb.AppendLine(" <tr> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine($" {ec.SerialNumber}".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine($" {ec.GetIdent()} ".Trim());
// sb.AppendLine(" </td> ".Trim());
// foreach (var dev in mappedFlows)
// {
// sb.AppendLine(" <td>".Trim());
// sb.AppendLine(" <a>".Trim());
// if (dev.HasValue)
// {
// sb.AppendLine($" {dev.Value } % ".Trim());
// }
// else
// {
// sb.AppendLine($" not tested ".Trim());
// }
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// }
// sb.AppendLine(" </tr> ".Trim());
// p = p + 1;
// }
// listOfFlows.AddRange(ecs.First().Flows);
// listOfResults.Add(ecs);
// c = c + 1;
// }
// sb.AppendLine("</tbody> ".Trim());
// sb.AppendLine("</table> ".Trim());
// var date = listOfFlows.Where(f => f.HasValue).Select(f => f.Value).Distinct().OrderByDescending(a => a).ToList();
// var r = new Root()
// {
// labels = date,
// datasets = ds
// };
// return new JsonResult(new { raw = r, axes = MyArray, table = sb.ToString() });
// }
// catch (Exception ex)
// {
// throw;
// }
// }
// throw new Exception();
//}
//[Route("GetErrorCurveMulti")]
//[HttpGet]
//public async Task<IHttpActionResult> GetMulti(string SerialNumbers, int lastXRounds = 1, int? testbench = null) // todo add date , testbench and more filters
//{
// bool showPaths = true;
// if (!testbench.HasValue)
// {
// testbench = 0;
// }
// using (var ctx = new AuftragContext())
// {
// try
// {
// List<int> allSrns = new List<int>();
// List<ErrorCurve> listOfCurve = new List<ErrorCurve>();
// var meterCount = SerialNumbers.Split(',').Count();
// foreach (var srn in SerialNumbers.Split(','))
// {
// int tmp = 0;
// if (int.TryParse(srn, out tmp))
// {
// allSrns.Add(tmp);
// var query = from aps in ctx.AuftragPositionSerienNr
// join pg in ctx.Pruefgang on aps.Pruefgangnr equals pg.PruefgangNr
// join pf in ctx.Prueffehler on new { pg = aps.Pruefgangnr, aps.SerienNr } equals new { pg = pf.PruefgangNr, pf.SerienNr }
// where aps.SerienNr == tmp
// && (testbench.Value == 0 || pg.PruefstationNr == testbench.Value)
// orderby pg.PruefgangNr descending
// select new ErrorCurve()
// {
// SerialNumber = $"{tmp}",
// TestNr = pg.PruefgangNr,
// Flows = new List<float?>() { pg.Pp1Soll, pg.Pp2Soll, pg.Pp3Soll, pg.Pp4Soll, pg.Pp5Soll, pg.Pp6Soll, pg.Pp7Soll, pg.Pp8Soll, pg.Pp9Soll, pg.Pp10Soll },
// Deviations = new List<double?>() { pf.Pp1Fehler, pf.Pp2Fehler, pf.Pp3Fehler, pf.Pp4Fehler, pf.Pp5Fehler, pf.Pp6Fehler, pf.Pp7Fehler, pf.Pp8Fehler, pf.Pp9Fehler, pf.Pp10Fehler }
// };
// listOfCurve.AddRange(query.Take(lastXRounds).ToList());
// }
// }
// var listOfResults = new List<ErrorCurve>();
// var listOfFlows = new List<float?>();
// var c = 0;
// var ds = new List<Dataset>();
// var MyArray = new List<MyArray>();
// var listOfAllFlows = new List<float>();
// var listOfAllFlowsNullable = new List<float?>();
// listOfCurve.Select(f => f.Flows).Distinct().ToList().ForEach(a => listOfAllFlowsNullable.AddRange(a));
// listOfAllFlows = listOfAllFlowsNullable.Where(f => f.HasValue).Select(f => f.Value).Distinct().OrderByDescending(a => a).ToList();
// var sb = new StringBuilder();
// sb.AppendLine("<button onclick=\"exportTableToCSV('MeterDataCenterExport.csv')\">Export To CSV</button>");
// sb.AppendLine("<table class=\"table\" style=\"font-size:12px; \"> ".Trim());
// sb.AppendLine("<thead> ".Trim());
// sb.AppendLine(" <tr> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" SerialNumber ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" TestNr ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// foreach (var flow in listOfAllFlows)
// {
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine($" Deviation for {flow } m³/ h ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// }
// sb.AppendLine(" </tr> ".Trim());
// sb.AppendLine("</thead> ".Trim());
// sb.AppendLine("<tbody> ".Trim());
// var lastStr = "";
// int meterC = 0;
// var repCount = 0;
// foreach (var ec in listOfCurve)
// {
// var p = 0;
// var mappedFlows = new List<double?>();
// listOfAllFlows.ForEach(a => mappedFlows.Add(null));
// bool hasReservFlow = false;
// foreach (var f in ec.Flows)
// {
// if (f != null)
// {
// var indexOfFlowAndDiviation = ec.Flows.IndexOf(f);
// var currentDeviation = ec.Deviations[indexOfFlowAndDiviation];
// mappedFlows[indexOfFlowAndDiviation] = currentDeviation;
// }
// }
// var AxisID = $"y-axis-1";
// if (lastStr != ec.SerialNumber)
// {
// meterC = meterC + 1;
// lastStr = ec.SerialNumber;
// repCount = 0;
// }
// else
// {
// repCount = repCount + 1;
// }
// ds.Add(new Dataset()
// {
// label = ec.GetIdent(),
// borderColor = getMeterColor(meterC, meterCount, repCount),
// backgroundColor = getMeterColor(meterC, meterCount, repCount),
// fill = false,
// data = mappedFlows.ToList(),
// yAxisID = AxisID,
// borderDash = hasReservFlow ? new int[] { 12, 3, 3 } : new int[] { },
// spanGaps = true
// });
// if (ds.Count == 1)
// {
// MyArray.Add(new MyArray() { type = "linear", display = ds.Count == 1, position = "left", id = AxisID, gridLines = new GridLines() { drawOnChartArea = ds.Count == 1 } });
// }
// sb.AppendLine(" <tr> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine($" {ec.SerialNumber}".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine($" {ec.TestNr.ToString()} ".Trim());
// sb.AppendLine(" </td> ".Trim());
// foreach (var dev in mappedFlows)
// {
// sb.AppendLine(" <td>".Trim());
// sb.AppendLine(" <a>".Trim());
// if (dev.HasValue)
// {
// sb.AppendLine($" {dev.Value } % ".Trim());
// }
// else
// {
// sb.AppendLine($" not tested ".Trim());
// }
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// }
// sb.AppendLine(" </tr> ".Trim());
// listOfFlows.AddRange(ec.Flows);
// listOfResults.Add(ec);
// c = c + 1;
// }
// sb.AppendLine("</tbody> ".Trim());
// sb.AppendLine("</table> ".Trim());
// var date = listOfFlows.Where(f => f.HasValue).Select(f => f.Value).Distinct().OrderByDescending(a => a).ToList();
// var r = new Root()
// {
// labels = date,
// datasets = ds
// };
// return new JsonResult(new { raw = r, axes = MyArray, table = sb.ToString() });
// }
// catch (Exception ex)
// {
// throw;
// }
// }
// throw new Exception();
//}
//[Route("GetOrderDetails")]
//[HttpGet]
//public async Task<ActionResult> GetOrderDetails(int OrderNr)
//{
// var sb = new StringBuilder();
// sb.AppendLine("<table class=\"table\"> ".Trim());
// sb.AppendLine("<thead> ".Trim());
// sb.AppendLine(" <tr> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" SerialNumber ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" Frequenz ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" Adresse ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" PcbId ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" Picked ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(" Married ".Trim());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" </tr> ".Trim());
// sb.AppendLine("</thead> ".Trim());
// sb.AppendLine("<tbody> ".Trim());
// var client = new RestClient($"http://sla12iis01/MeterProcessState/api/Order/GetCordonelOrderDetails?OrderNr={OrderNr}");
// var request = new RestRequest(Method.GET);
// ServicePointManager.Expect100Continue = false;
// request.AddHeader("Accept", "application/json");
// var r = await client.ExecuteGetAsync(request);
// if (r.StatusCode == HttpStatusCode.OK)
// {
// foreach (var item in JsonConvert.DeserializeObject<List<OrderDetailsData>>(r.Content))
// {
// sb.AppendLine(" <tr>");
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.SerienNr.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.Frequenz.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.Adresse.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.CordonelAssignedPicking_PcbId.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.CordonelAssignedPicking_Date.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine(item.MapPcbIdToSerialNumber_DateUtc.ToString());
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" <td> ".Trim());
// sb.AppendLine(" <a> ".Trim());
// sb.AppendLine($" <a href=\"/Meter/Detail?SerialNr={item.SerienNr.ToString()}\">Chart</a>");
// sb.AppendLine(" </a> ".Trim());
// sb.AppendLine(" </td> ".Trim());
// sb.AppendLine(" </tr> ".Trim());
// sb.AppendLine("</thead> ".Trim());
// sb.AppendLine("<tbody> ".Trim());
// }
// }
// sb.AppendLine("</tbody> ".Trim());
// sb.AppendLine("</table> ".Trim());
// return new JsonResult(new { table = sb.ToString() });
//}
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class OrderDetailsData
{
2022-10-19 10:58:08 +00:00
public Int32 AuftragNr { get ; set ; }
public Int32 PositionNr { get ; set ; }
public Int32 FertigungsauftragNr { get ; set ; }
public Int32 SerienNr { get ; set ; }
public Int32 Frequenz { get ; set ; }
2021-10-01 09:09:20 +00:00
public Int64 Adresse { get ; set ; }
2022-10-19 10:58:08 +00:00
public Int32 ? CordonelAssignedPicking_PcbId { get ; set ; }
2021-10-01 09:09:20 +00:00
public DateTimeOffset ? CordonelAssignedPicking_Date { get ; set ; }
2022-10-19 10:58:08 +00:00
public Int32 ? MapPcbIdToSerialNumber_SerialNumber { get ; set ; }
2021-10-01 09:09:20 +00:00
public DateTimeOffset ? MapPcbIdToSerialNumber_DateUtc { get ; set ; }
}
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class Dataset
{
2022-10-19 10:58:08 +00:00
public Int32 [ ] borderDash ;
public String label { get ; set ; }
public String borderColor { get ; set ; }
public String backgroundColor { get ; set ; }
public Boolean fill { get ; set ; }
public List < Double ? > data { get ; set ; }
public String yAxisID { get ; set ; }
public Boolean spanGaps { get ; set ; }
2021-10-01 09:09:20 +00:00
}
public class Root
{
2022-10-19 10:58:08 +00:00
public List < Single > labels { get ; set ; }
2021-10-01 09:09:20 +00:00
public List < Dataset > datasets { get ; set ; }
}
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class GridLines
{
2022-10-19 10:58:08 +00:00
public Boolean drawOnChartArea { get ; set ; }
2021-10-01 09:09:20 +00:00
}
public class MyArray
{
2022-10-19 10:58:08 +00:00
public String type { get ; set ; }
public Boolean display { get ; set ; }
public String position { get ; set ; }
public String id { get ; set ; }
2021-10-01 09:09:20 +00:00
public GridLines gridLines { get ; set ; }
}
2022-10-19 10:58:08 +00:00
private String getSingleMeterColor ( Int32 Path = 0 , Int32 ? Repnullbale = 0 )
2021-10-01 09:09:20 +00:00
{
2022-10-19 10:58:08 +00:00
Int32 Rep = Repnullbale . HasValue ? Repnullbale . Value : 0 ;
2021-10-01 09:09:20 +00:00
var index = ( ( Path * 10 ) + Rep ) ;
2022-10-19 10:58:08 +00:00
return new String [ ] {
2021-10-01 09:09:20 +00:00
//Display offset 0
"#BFD200" ,
"#007F5F" ,
"#FFFF3F" ,
"#2B9348" ,
"#EEEF20" ,
"#55A630" ,
"#DDDF00" ,
"#80B918" ,
"#AACC00" ,
"#D4D700" ,
//PATH 1 OFFSET 10
"#6930C3" ,
"#7400B8" ,
"#5E60CE" ,
"#80FFDB" ,
"#5390D9" ,
"#72EFDD" ,
"#4EA8DE" ,
"#64DFDF" ,
"#48BFE3" ,
"#56CFE1" ,
//PATH 2 OFFSET 20
"#994D74" ,
"#34091E" ,
"#F3DBEA" ,
"#430C27" ,
"#ECC5DD" ,
"#CC9AB5" ,
"#55062D" ,
"#660033" ,
"#802754" ,
"#B37495" ,
//PATH 3 OFFSET 30
"#FF8500" ,
"#FF4800" ,
"#FFB600" ,
"#FF5400" ,
"#FFAA00" ,
"#FF6000" ,
"#FF9E00" ,
"#FF6D00" ,
"#FF9100" ,
"#FF7900"
} [ index ] ;
}
2022-10-19 10:58:08 +00:00
private String getMeterColor ( Int32 Meter , Int32 metercount , Int32 Rep )
2021-10-01 09:09:20 +00:00
{
var maxRep = 400 / metercount ;
var index = ( ( Meter - 1 ) * maxRep ) + Rep ;
2022-10-19 10:58:08 +00:00
return new String [ ] {
2021-10-01 09:09:20 +00:00
"#B0171F" ,
"#FFAEB9" ,
"#8B8386" ,
"#DC143C" ,
"#FFB6C1" ,
"#CD8C95" ,
"#D02090" ,
"#EE799F" ,
"#FFB5C5" ,
"#CD3278" ,
"#EEA2AD" ,
"#8B008B" ,
"#CDC1C5" ,
"#AB82FF" ,
"#EE7AE9" ,
"#CD919E" ,
"#3D59AB" ,
"#FFC0CB" ,
"#8B0A50" ,
"#1874CD" ,
"#E066FF" ,
"#DB7093" ,
"#8B5F65" ,
"#009ACD" ,
"#CD6090" ,
"#FF69B4" ,
"#C71585" ,
"#EEA9B8" ,
"#8B668B" ,
"#5D478B" ,
"#CD6889" ,
"#008080" ,
"#FF82AB" ,
"#43CD80" ,
"#EE3A8C" ,
"#436EEE" ,
"#8B636C" ,
"#228B22" ,
"#8A2BE2" ,
"#CD00CD" ,
"#C0FF3E" ,
"#EED2EE" ,
"#4682B4" ,
"#872657" ,
"#BDB76B" ,
"#FF3E96" ,
"#CD2990" ,
"#8B4789" ,
"#FFF8DC" ,
"#0000FF" ,
"#ADD8E6" ,
"#8B2252" ,
"#F5DEB3" ,
"#9370DB" ,
"#8B8378" ,
"#EEE0E5" ,
"#8B475D" ,
"#EE1289" ,
"#CD853F" ,
"#C6E2FF" ,
"#9932CC" ,
"#FF6103" ,
"#EE6AA7" ,
"#03A89E" ,
"#CD7054" ,
"#FF83FA" ,
"#B452CD" ,
"#FF34B3" ,
"#191970" ,
"#BC8F8F" ,
"#7EC0EE" ,
"#FF00FF" ,
"#BDFCC9" ,
"#8B7B8B" ,
"#836FFF" ,
"#00CD00" ,
"#00E5EE" ,
"#CD1076" ,
"#1C86EE" ,
"#8B3A62" ,
"#698B22" ,
"#DA70D6" ,
"#FF6EB4" ,
"#8470FF" ,
"#79CDCD" ,
"#CDC673" ,
"#EEAEEE" ,
"#CD69C9" ,
"#CAE1FF" ,
"#7D26CD" ,
"#00B2EE" ,
"#BA55D3" ,
"#8B8878" ,
"#B23AEE" ,
"#FF1493" ,
"#00EE76" ,
"#CDBA96" ,
"#DDA0DD" ,
"#27408B" ,
"#98FB98" ,
"#87CEFA" ,
"#EEC591" ,
"#8B1C62" ,
"#00008B" ,
"#FFDAB9" ,
"#EE30A7" ,
"#CAFF70" ,
"#008B8B" ,
"#FF8247" ,
"#6959CD" ,
"#68228B" ,
"#800080" ,
"#B0E0E6" ,
"#8968CD" ,
"#5CACEE" ,
"#CD96CD" ,
"#FFFF00" ,
"#EE6A50" ,
"#D15FEE" ,
"#4EEE94" ,
"#CDB5CD" ,
"#CD9B9B" ,
"#8B814C" ,
"#6C7B8B" ,
"#9B30FF" ,
"#AEEEEE" ,
"#B2DFEE" ,
"#32CD32" ,
"#9400D3" ,
"#FFA500" ,
"#A2B5CD" ,
"#D8BFD8" ,
"#4876FF" ,
"#F8F8FF" ,
"#FFBBFF" ,
"#9C661F" ,
"#76EEC6" ,
"#6B8E23" ,
"#87CEEB" ,
"#9F79EE" ,
"#B4CDCD" ,
"#EE00EE" ,
"#EE7600" ,
"#483D8B" ,
"#4B0082" ,
"#808000" ,
"#838B83" ,
"#A4D3EE" ,
"#0000EE" ,
"#FF7F24" ,
"#EE82EE" ,
"#5F9EA0" ,
"#808A87" ,
"#8B7500" ,
"#BF3EFF" ,
"#CD3700" ,
"#778899" ,
"#6A5ACD" ,
"#7CFC00" ,
"#CDB7B5" ,
"#FDF5E6" ,
"#8EE5EE" ,
"#4169E1" ,
"#F0FFF0" ,
"#CD3333" ,
"#00EEEE" ,
"#3A5FCD" ,
"#7A378B" ,
"#B9D3EE" ,
"#CDC0B0" ,
"#33A1C9" ,
"#9A32CD" ,
"#E6E6FA" ,
"#607B8B" ,
"#551A8B" ,
"#EEE9BF" ,
"#008000" ,
"#EE9A49" ,
"#668B8B" ,
"#3CB371" ,
"#B0C4DE" ,
"#FF7D40" ,
"#7A67EE" ,
"#8B6914" ,
"#912CEE" ,
"#104E8B" ,
"#838B8B" ,
"#EEEEE0" ,
"#6CA6CD" ,
"#63B8FF" ,
"#EE8262" ,
"#7CCD7C" ,
"#458B74" ,
"#53868B" ,
"#FFDEAD" ,
"#F0E68C" ,
"#708090" ,
"#8B8989" ,
"#CDB79E" ,
"#20B2AA" ,
"#7B68EE" ,
"#473C8B" ,
"#36648B" ,
"#6E8B3D" ,
"#CD2626" ,
"#000080" ,
"#C1FFC1" ,
"#00688B" ,
"#FFC125" ,
"#00C5CD" ,
"#97FFFF" ,
"#BFEFFF" ,
"#BCD2EE" ,
"#8B8B00" ,
"#00C957" ,
"#FFE4B5" ,
"#0000CD" ,
"#EE9572" ,
"#76EE00" ,
"#87CEFF" ,
"#68838B" ,
"#F5FFFA" ,
"#528B8B" ,
"#C1CDCD" ,
"#EE5C42" ,
"#EEC900" ,
"#8B7355" ,
"#D1EEEE" ,
"#00EE00" ,
"#EEEED1" ,
"#6E7B8B" ,
"#1E90FF" ,
"#6495ED" ,
"#EE6363" ,
"#CDAF95" ,
"#B0E2FF" ,
"#8B5A00" ,
"#9BCD9B" ,
"#00CD66" ,
"#00F5FF" ,
"#8B8970" ,
"#48D1CC" ,
"#BBFFFF" ,
"#9ACD32" ,
"#CD6839" ,
"#40E0D0" ,
"#9FB6CD" ,
"#FFEFDB" ,
"#8B3E2F" ,
"#FFB90F" ,
"#458B00" ,
"#00BFFF" ,
"#FF8000" ,
"#EEE685" ,
"#9AFF9A" ,
"#8DB6CD" ,
"#98F5FF" ,
"#4F94CD" ,
"#2E8B57" ,
"#F08080" ,
"#8DEEEE" ,
"#7FFFD4" ,
"#3D9140" ,
"#CDB38B" ,
"#8B4513" ,
"#8B8B7A" ,
"#CDC8B1" ,
"#BCEE68" ,
"#4A708B" ,
"#E9967A" ,
"#E3A869" ,
"#00FF00" ,
"#008B00" ,
"#00CED1" ,
"#C1CDC1" ,
"#00FF7F" ,
"#96CDCD" ,
"#EED8AE" ,
"#EEDC82" ,
"#7AC5CD" ,
"#EEE9E9" ,
"#9AC0CD" ,
"#8B8682" ,
"#EEEE00" ,
"#B3EE3A" ,
"#FFD39B" ,
"#FF3030" ,
"#CD950C" ,
"#FFFFF0" ,
"#308014" ,
"#8B5742" ,
"#00868B" ,
"#698B69" ,
"#E3CF57" ,
"#66CDAA" ,
"#00CDCD" ,
"#FAF0E6" ,
"#2F4F4F" ,
"#8B3626" ,
"#FCE6C9" ,
"#FFF68F" ,
"#7A8B8B" ,
"#8B864E" ,
"#8B8B83" ,
"#EE9A00" ,
"#A0522D" ,
"#ADFF2F" ,
"#CD5555" ,
"#FF8C00" ,
"#8FBC8F" ,
"#00FFFF" ,
"#54FF9F" ,
"#EEE8CD" ,
"#DAA520" ,
"#FF7256" ,
"#00FA9A" ,
"#FF9912" ,
"#FFFACD" ,
"#C76114" ,
"#00C78C" ,
"#FAFAD2" ,
"#FFE7BA" ,
"#EEB4B4" ,
"#8B7E66" ,
"#7FFF00" ,
"#CD6600" ,
"#548B54" ,
"#FF4500" ,
"#008B45" ,
"#CD9B1D" ,
"#B4EEB4" ,
"#CDBE70" ,
"#DEB887" ,
"#CDAA7D" ,
"#EE7621" ,
"#FFEBCD" ,
"#556B2F" ,
"#8B5A2B" ,
"#8B6508" ,
"#90EE90" ,
"#FF4040" ,
"#8B2500" ,
"#EECBAD" ,
"#66CD00" ,
"#EED5B7" ,
"#006400" ,
"#CDC9A5" ,
"#8A360F" ,
"#8B7D7B" ,
"#EE7942" ,
"#D2B48C" ,
"#808069" ,
"#A2CD5A" ,
"#CDCDB4" ,
"#8B2323" ,
"#8B4C39" ,
"#CD5B45" ,
"#B8860B" ,
"#FF7F00" ,
"#CDCDC1" ,
"#CDAD00" ,
"#FFA07A" ,
"#FFC1C1" ,
"#8B6969" ,
"#CDCD00" ,
"#FFEC8B" ,
"#D2691E" ,
"#EECFA1" ,
"#FF6347" ,
"#EEE8AA" ,
"#EE4000" ,
"#EEAD0E" ,
"#FFD700" ,
"#8B7D6B" ,
"#FF6A6A" ,
"#EEDFCC" ,
"#EEB422" ,
"#CDC5BF" ,
"#8B795E" ,
"#CD8500" ,
"#FFA54F" ,
"#EE3B3B" ,
"#FFEFD5" ,
"#CD8162" ,
"#ED9121" ,
"#FAEBD7" ,
"#292421" ,
"#FFE4C4" ,
"#CD4F39" ,
"#F4A460" ,
"#8B4500" ,
"#FF8C69" ,
"#8B3A3A" ,
"#8B7765" ,
"#FF7F50" ,
"#CDC9C9" ,
"#CD661D" ,
"#8B4726" ,
"#FA8072" ,
"#EE2C2C" ,
"#5E2612" ,
"#8A3324" ,
"#A52A2A" ,
"#CD5C5C" ,
"#B22222"
}
[index] ;
}
}
}