using Microsoft.Extensions.Configuration; using MP.MONO.Core; using MP.MONO.Core.DTO; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MP.MONO.Data.Controllers { public class MpDbController : IDisposable { private static IConfiguration _configuration; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); public MpDbController(IConfiguration configuration) { _configuration = configuration; } public void Dispose() { // Clear database context //Log.Info("Dispose di GWMSController"); } public ProductionDTO MachineGetProd() { // !!!FIXME TODO... è fake... Random rand = new Random(); int stdCycle = 5; ProductionDTO currMachDto = new ProductionDTO() { Order = "ODL Test", ItemCode = "ART.0000123", ProgName = "P000012", CurrQty = DateTime.Now.Minute + rand.Next(1, 40), OrderQty = 100, CycleTimeMin = rand.NextDouble() * stdCycle, Message = "...simulated data..." }; Task.Delay(400).Wait(); return currMachDto; } public List MachineGetDisplay() { List answ = new List(); // !!!FIXME TODO... è fake... Random rand = new Random(); int stdCycle = 5; #if false var currVal = rand.NextDouble(); DisplayDataDTO displ01 = new DisplayDataDTO() { Order = 0, Title = "OEE", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("P1"), Type = "OEE-75-90" }; answ.Add(displ01); currVal = rand.NextDouble(); DisplayDataDTO displ02 = new DisplayDataDTO() { Order = 0, Title = "Avail", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("P1"), Type = "AVAIL-50-80" }; answ.Add(displ02); currVal = rand.NextDouble(); DisplayDataDTO displ03 = new DisplayDataDTO() { Order = 0, Title = "Order fulfill", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("P1"), Type = "ORDER" }; answ.Add(displ03); double minTCiclo = stdCycle * rand.NextDouble(); TimeSpan durTCycle = TimeSpan.FromMinutes(minTCiclo); DisplayDataDTO displ04 = new DisplayDataDTO() { Order = 0, Title = "Cycle time", ValueNum = 0, IsNumeric = false, Value = $"{durTCycle.Hours:00}:{durTCycle.Minutes:00}:{durTCycle.Seconds:00}", Type = "TCycle" }; answ.Add(displ04); #endif double currVal = 0; currVal = rand.Next(10, 120) * 100; DisplayDataDTO displ01 = new DisplayDataDTO() { Order = 0, Title = "SPEED", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("N0"), Type = "SPEED-5000-10000" }; answ.Add(displ01); currVal = rand.Next(10, 100) * 100; DisplayDataDTO displ02 = new DisplayDataDTO() { Order = 0, Title = "FEED", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("N0"), Type = "FEED-3000-5000" }; answ.Add(displ02); currVal = rand.NextDouble() * 1.2; DisplayDataDTO displ03 = new DisplayDataDTO() { Order = 0, Title = "SPINDLE LOAD", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("P0"), Type = "ORDER" }; answ.Add(displ03); currVal = rand.NextDouble() *5000; DisplayDataDTO displ04 = new DisplayDataDTO() { Order = 0, Title = "X POS", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("N1"), Type = "POS" }; answ.Add(displ04); currVal = rand.NextDouble() * 10000; DisplayDataDTO displ05 = new DisplayDataDTO() { Order = 0, Title = "Y POS", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("N1"), Type = "POS" }; answ.Add(displ05); currVal = rand.NextDouble() * -3000; DisplayDataDTO displ06 = new DisplayDataDTO() { Order = 0, Title = "Z POS", ValueNum = currVal, IsNumeric = true, Value = currVal.ToString("N1"), Type = "POS" }; answ.Add(displ06); Task.Delay(200).Wait(); return answ; } } }