laatzen/Common/Service/MeterProcessState/Controllers/TempFlangeController.cs
2022-10-19 12:58:08 +02:00

1188 lines
49 KiB
C#

using Service.MeterProcessState.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using Xylem.Common.Service.MeterProcessState.Data;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace Service.MeterProcessState.Controllers
{
[RoutePrefix("api/TempFlange")]
public class TempFlangeController : ApiController
{
[Route("GetLut"),HttpGet]
public async Task<List<CordonelTempLut>> GetLut(Int32 PcbId)
{
try
{
using (AuftragContext ctx = new AuftragContext())
{
var query = from lut in ctx.CordonelTempLut
where lut.PcbId == PcbId && lut.Active
orderby lut.RefTempC ascending
select lut;
return query.ToList(); ;
}
}
catch (Exception ex)
{
throw ex;
}
}
[Route("AddLut"), HttpPost]
public async Task<Boolean> AddLut(Int32 PcbId, Double RefTempC, Double AvgTof)
{
try
{
using (AuftragContext ctx = new AuftragContext())
{
var newItem = ctx.CordonelTempLut.Add(new CordonelTempLut() { PcbId = PcbId, RefTempC = RefTempC, AvgTof = AvgTof, Active = true });
return await ctx.SaveChangesAsync() > 0;
}
}
catch (Exception ex)
{
throw ex;
}
}
//[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
{
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; }
public Int64 Adresse { get; set; }
public Int32? CordonelAssignedPicking_PcbId { get; set; }
public DateTimeOffset? CordonelAssignedPicking_Date { get; set; }
public Int32? MapPcbIdToSerialNumber_SerialNumber { get; set; }
public DateTimeOffset? MapPcbIdToSerialNumber_DateUtc { get; set; }
}
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class Dataset
{
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; }
}
public class Root
{
public List<Single> labels { get; set; }
public List<Dataset> datasets { get; set; }
}
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class GridLines
{
public Boolean drawOnChartArea { get; set; }
}
public class MyArray
{
public String type { get; set; }
public Boolean display { get; set; }
public String position { get; set; }
public String id { get; set; }
public GridLines gridLines { get; set; }
}
private String getSingleMeterColor(Int32 Path = 0, Int32? Repnullbale = 0)
{
Int32 Rep = Repnullbale.HasValue ? Repnullbale.Value : 0;
var index = ((Path * 10) + Rep);
return new String[] {
//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];
}
private String getMeterColor(Int32 Meter, Int32 metercount, Int32 Rep)
{
var maxRep = 400 / metercount;
var index = ((Meter - 1) * maxRep) + Rep;
return new String[] {
"#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];
}
}
}