Files
2021-03-26 17:17:28 +01:00

84 lines
2.5 KiB
C#

using GPW_data;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace GPW_Commesse.Controllers
{
public class TempHistController : ApiController
{
#region Private Methods
/// <summary>
/// Metodo effettivo recupero dati
/// </summary>
/// <param name="id"></param>
/// <param name="numRec"></param>
/// <param name="dtRif"></param>
/// <returns></returns>
private static List<chartJsXY> getDataFilt(int id, int numRec, DateTime dtRif)
{
List<chartJsXY> answ = new List<chartJsXY>();
// cerco su redis...
string histTemp = SteamWare.memLayer.ML.redHash($"Temp:Hist:{id}_{dtRif:yyyyMMdd}_{numRec}");
string rawData = SteamWare.memLayer.ML.getRSV(histTemp);
if (!string.IsNullOrEmpty(rawData))
{
answ = JsonConvert.DeserializeObject<List<chartJsXY>>(rawData);
}
else
{
try
{
var tabDati = DataProxy.DP.taHT.GetData(id, dtRif, numRec);
// ciclo
foreach (var item in tabDati)
{
answ.Add(new chartJsXY() { x = item.tempRil, y = item.freq });
}
// salvo
rawData = JsonConvert.SerializeObject(answ);
SteamWare.memLayer.ML.setRSV(histTemp, rawData, 5);
}
catch
{ }
}
// restituisco
return answ;
}
#endregion Private Methods
#region Public Methods
// GET api/TempHist
public string Get()
{
return "NA";
}
// GET api/TempHist/5
public List<chartJsXY> Get(int id)
{
int numRec = 0;
DateTime dtRif = DateTime.Today;
// restituisco oggetto!
return getDataFilt(id, numRec, dtRif);
}
// GET api/TempHist/5?date=2020-09-01&numRec=10
public List<chartJsXY> Get(int id, string date, int numRec)
{
DateTime dtRif = DateTime.Today;
DateTime.TryParse(date, out dtRif);
// restituisco oggetto!
return getDataFilt(id, numRec, dtRif);
}
#endregion Public Methods
}
}