
Originariamente inviata da
pietro09

bello! un minimo di elaborazione però. Oltre ai dati giornalieri per provincia, forse si vuol vedere anche la variazione rispetto al giorno precedente
Per elaborare ti basta farlo nella funzione dentro alla webapi.
Dovresti raggruppare i dati per codice_provincia (ad esempio), e dopo gli ordini in maniera crescente. Fatto ciò leggi il secondo e lo confronti con il primo e dovresti riuscire ad ottenere la variazione giornaliera.
Ovviamente devi aggiungere il dato nel tuo oggetto restituito.
Ad esempio:
codice:
[HttpGet]
[EnableQuery]
public IQueryable<Provinciale> Get()
{
ReaderContex<Provinciale>.Update(URL, _databasePath, (ctx, lastUpdate, infoList) =>
{
var groupping = infoList.Where(w=>!w.denominazione_provincia.StartsWith("In fase di definizione")).GroupBy(g => g.codice_provincia).ToList();
ctx.Info.RemoveRange(ctx.Info);
for (int i = 0; i < groupping.Count(); i++)
{
var orderGroup = groupping[i].OrderBy(o => o.data).ToList();
for (int j =0;j< orderGroup.Count();j++)
if (j > 0)
{
orderGroup[j].variazioneGiornaliera = Math.Round((((double)orderGroup[j].totale_casi - (double)orderGroup[j-1].totale_casi) / (double)orderGroup[j-1].totale_casi)*100,2);
ctx.Info.Add(orderGroup[j]);
}
}
return true;
});
return _context.Info.OrderByDescending(o=>o.codice_provincia).ThenBy(t=>t.data);
}
e questa è la classe json modificata:
codice:
[Table("Provinciale")]
public class Provinciale : EntityBase
{
public DateTime data { get; set; }
public string stato { get; set; }
public int codice_regione { get; set; }
public string denominazione_regione { get; set; }
public int codice_provincia { get; set; }
public string denominazione_provincia { get; set; }
public string sigla_provincia { get; set; }
public float lat { get; set; }
public float _long { get; set; }
public int totale_casi { get; set; }
public string note_it { get; set; }
public string note_en { get; set; }
public double variazioneGiornaliera { get; set; }
}
EDIT:
ora l'ho buttata giù così per mostrare come fare, ma sto usando il file completo (https://raw.githubusercontent.com/pc...-province.json) e non quello con il solo dato giornaliero (https://raw.githubusercontent.com/pc...ce-latest.json).
per fare una cosa fatta bene dovresti confrontare il file giornaliero con quello globale, e quando arriva il nuovo lo aggiungi.