Files
2021-03-23 08:12:17 +01:00

85 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 TempRilController : 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<chartJsTSerie> getDataFilt(int id, int numRec, DateTime dtRif)
{
List<chartJsTSerie> answ = new List<chartJsTSerie>();
// cerco su redis...
string histTemp = SteamWare.memLayer.ML.redHash($"Temp:Ril:{id}_{dtRif:yyyyMMdd}_{numRec}");
string rawData = SteamWare.memLayer.ML.getRSV(histTemp);
if (!string.IsNullOrEmpty(rawData))
{
answ = JsonConvert.DeserializeObject<List<chartJsTSerie>>(rawData);
}
else
{
try
{
var tabDati = DataProxy.DP.taRT.getByUserPeriod(id, dtRif, numRec);
// ciclo
foreach (var item in tabDati)
{
answ.Add(new chartJsTSerie() { x = item.dtRilievo, y = item.tempRil });
}
// salvo
rawData = JsonConvert.SerializeObject(answ);
SteamWare.memLayer.ML.setRSV(histTemp, rawData, 5);
}
catch
{ }
}
// restituisco
return answ;
}
#endregion Private Methods
#region Public Methods
// GET api/TempRil
public string Get()
{
return "NA";
}
// GET api/TempRil/5
public List<chartJsTSerie> Get(int id)
{
int numRec = 0;
DateTime dtRif = DateTime.Today;
// restituisco oggetto!
return getDataFilt(id, numRec, dtRif);
}
// GET api/TempRil/5?date=2020-09-01&numRec=10
public List<chartJsTSerie> 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
}
}