Files
NKC/NKC_WF/Controllers/getMUCssController.cs
T
2020-01-21 10:11:58 +01:00

107 lines
3.1 KiB
C#

using AppData;
using SteamWare;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
namespace NKC_WF.Controllers
{
public class getMUCssController : ApiController
{
// GET api/getMUCssController
public HttpResponseMessage Get()
{
string answ = "";
string codPost = "01";
answ = getCssByPost(answ, codPost);
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(answ, Encoding.UTF8, "text/css")
};
}
// GET api/getMUCssController/5
public HttpResponseMessage Get(int id)
{
string answ = "";
string codPost = id.ToString("00");
answ = getCssByPost(answ, codPost);
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(answ, Encoding.UTF8, "text/css")
};
}
/// <summary>
/// Calcola CSS da postsazione
/// </summary>
/// <param name="answ"></param>
/// <param name="codPost"></param>
/// <returns></returns>
private static string getCssByPost(string answ, string codPost)
{
// recupero da REDIS!
string redKey = $"{ComLib.machineUnloadArea(codPost)}:Css";// memLayer.ML.redHash($"MachineUnload:{codPost}:Css");
// se vuoto scrivo versione attuale...
if (!memLayer.ML.redKeyPresent(redKey))
{
memLayer.ML.setRSV(redKey, answ);
}
answ = memLayer.ML.getRSV(redKey);
// RICALCOLO SOLO SE non trovo in REDIS (perché invalidato)
if (answ == "")
// se vuoto lo calcolo... !!!FIXME!!! leggere da DB!!!!
{
string filename = HttpContext.Current.Server.MapPath("~/Content/SheetColor.css");
answ = File.ReadAllText(filename);
// imposto sfondo ... NON usato
answ = answ.Replace("#BLK-BCK", "#Sheet");
// All'inizio --> tutti colorati secondo destinazione (cart, bin, secop)
// eventualmente sec-op è SECONDO css aggiuntivo opzionale x indicare tratteggiato e/o tratteggiato + flashing...
// ...e primi 3 items...
answ = answ.Replace("#BLK-CUT", "#IT00008594, #IT000085AC, #IT000085AD, #IT000085AE");
answ = answ.Replace("#BLK-SEC-OP", "#IT000085AF");
answ = answ.Replace("#BLK-SEL", "#IT000085C2");
answ = answ.Replace("#BLK-BIN", "#IT000085BE");
answ = answ.Replace("#BLK-CART", "#IT000085AB");
//answ = answ.Replace("#BLK-CUT", "#IT000006, #IT000007, #IT000008");
//answ = answ.Replace("#BLK-SEL", "#IT000003");
//answ = answ.Replace("#BLK-BIN", "#IT000001");
//answ = answ.Replace("#BLK-CART", "#IT000002");
// salvo redis!
int cssCacheTTL = memLayer.ML.cdvi("cssCacheTTL");
cssCacheTTL = cssCacheTTL <= 0 ? 60: cssCacheTTL;
memLayer.ML.setRSV(redKey, answ, cssCacheTTL);
}
return answ;
}
// POST api/<controller>
public void Post([FromBody]string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
}