Files
NKC/NKC_WF/Controllers/BatchStatsController.cs
2021-10-05 15:33:38 +02:00

140 lines
4.2 KiB
C#

using AppData;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace NKC_WF.Controllers
{
public class BatchStatsController : ApiController
{
#region Protected Fields
protected string dateFormat = "yyyyMMdd";
/// <summary>
/// oggetto static/singleton per fare chiamate sul datalayer
/// </summary>
protected DataLayer DLMan = new DataLayer();
#endregion Protected Fields
#region Private Methods
/// <summary>
/// Metodo effettivo recupero dati
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
private List<chartJsTVal> getDataFilt(int id)
{
List<chartJsTVal> answ = new List<chartJsTVal>();
var tabDati = DLMan.taBStats.getLast(id);
// ciclo
foreach (var item in tabDati.OrderBy(x => x.Takt))
{
// prendo valore default = NumParts
answ.Add(new chartJsTVal() { x = item.Takt, y = item.NumParts });
}
// restituisco
return answ;
}
/// <summary>
/// Metodo effettivo recupero dati
/// </summary>
/// <param name="id"></param>
/// <param name="maxHour"></param>
/// <returns></returns>
private List<chartJsTVal> getDataFilt(int id, string PlotType)
{
List<chartJsTVal> answ = new List<chartJsTVal>();
var tabDati = DLMan.taBStats.getLast(id);
DateTime startTime = DateTime.Now.AddYears(1);
// ciclo
foreach (var item in tabDati.OrderBy(x => x.Takt))
{
//// converto in data il valore takt... primi 8 char
//DateTime dataRif = DateTime.Today;
//DateTime.TryParseExact(item.Takt.Substring(0, 8), dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dataRif);
decimal value = 0;
switch (PlotType)
{
case "Yeld":
value = item.AvgYeld * 100;
break;
case "NumMat":
value = item.NumMat;
break;
case "NumSheets":
value = item.NumSheets;
break;
case "NumModel":
value = item.NumModel;
break;
case "NumKit":
value = item.NumKit;
break;
case "NumPainted":
value = item.NumPainted;
break;
case "NumParts":
default:
value = item.NumParts;
break;
}
answ.Add(new chartJsTVal() { x = item.Takt, y = value });
}
// restituisco
return answ;
}
#endregion Private Methods
#region Public Methods
// GET api/TempRil
public string Get()
{
return "NA";
}
/// <summary>
/// Recupero dati x ultimi batch stats
/// GET api/BatchStats/5
/// </summary>
/// <param name="id">NUmLast</param>
/// <returns></returns>
public List<chartJsTVal> Get(int id)
{
DateTime dtRif = DateTime.Today;
// restituisco oggetto!
return getDataFilt(id);
}
/// <summary>
/// Recupero dati x statistiche ultimi batch
/// GET api/BatchStats/50
/// </summary>
/// <param name="id">Num record da recuperare DESC</param>
/// <param name="PlotType">Tipo di grafico</param>
/// <returns></returns>
public List<chartJsTVal> Get(int id, string PlotType)
{
List<chartJsTVal> answ = new List<chartJsTVal>();
answ = getDataFilt(id, PlotType);
// restituisco oggetto!
return answ;
}
#endregion Public Methods
}
}