public API.Models.Classi.Filtri.Filtri Get() { string filepath = CostantiJson.Filtri; string json; using (StreamReader r = new StreamReader(filepath)) { json = r.ReadToEnd(); } API.Models.Classi.Filtri.Filtri filtri = JsonConvert.DeserializeObject <API.Models.Classi.Filtri.Filtri>(json); return(filtri); }
public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query) { //TODO PARTE CHIAMATA DB //TODO DA MODIFICARE CON LA CONNESSIONE AL DB PER IL REPERIMENTO DEI DATI DEFINITIVI //DATI FAKE - ORA LI LEGGO DA FILE string filepath = CostantiJson.SquadreComposizione; string json; using (StreamReader r = new StreamReader(filepath)) { json = r.ReadToEnd(); } List <ComposizioneMezzi> composizioneMezzi = new List <ComposizioneMezzi>(); ComposizioneMezzi mezzo = new ComposizioneMezzi(); var codiceDistaccamento = ""; List <ComposizioneSquadre> composizioneSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(json); string[] generiMezzi = new string[50]; string[] statiMezzi = new string[50]; API.Models.Classi.Filtri.Filtri filtri = new API.Models.Classi.Filtri.Filtri(); string pathFiltri = CostantiJson.Filtri; string jsonFiltri; using (StreamReader r = new StreamReader(pathFiltri)) { jsonFiltri = r.ReadToEnd(); } filtri = JsonConvert.DeserializeObject <API.Models.Classi.Filtri.Filtri>(jsonFiltri); if ((query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) || (!string.IsNullOrEmpty(query.Filtro.CodiceMezzo) && !string.IsNullOrEmpty(query.Filtro.CodiceMezzo)) || ((query.Filtro.CodiceSquadra?.Length > 0) && !string.IsNullOrEmpty(query.Filtro.CodiceSquadra[0])) || (query.Filtro.CodiceStatoMezzo?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceStatoMezzo[0])) || (query.Filtro.CodiceTipoMezzo?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceTipoMezzo[0]))) { if (!string.IsNullOrEmpty(query.Filtro.CodiceMezzo) && !string.IsNullOrEmpty(query.Filtro.CodiceMezzo)) { string path = CostantiJson.MezziComposizione; string jsonMezzi; using (StreamReader r = new StreamReader(path)) { jsonMezzi = r.ReadToEnd(); } composizioneMezzi = JsonConvert.DeserializeObject <List <ComposizioneMezzi> >(jsonMezzi); mezzo = composizioneMezzi.Find(x => x.Mezzo.Codice == query.Filtro.CodiceMezzo); if (mezzo != null) { if (query.Filtro.CodiceStatoMezzo?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceStatoMezzo[0])) { statiMezzi = filtri.Stati.Where(x => query.Filtro.CodiceStatoMezzo.Any(x.Id.Equals)).Select(x => x.Descrizione).ToArray(); if (!statiMezzi.Any(mezzo.Mezzo.Stato.Equals)) { mezzo = null; composizioneSquadre = null; } } if (query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) { if (!query.Filtro.CodiceDistaccamento.Any(mezzo.Mezzo.Distaccamento.Codice.Equals)) { mezzo = null; composizioneSquadre = null; } } if (query.Filtro.CodiceTipoMezzo?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceTipoMezzo[0])) { generiMezzi = filtri.GeneriMezzi.Where(x => query.Filtro.CodiceTipoMezzo.Any(x.Id.Equals)).Select(x => x.Descrizione).ToArray(); if (!generiMezzi.Any(mezzo.Mezzo.Genere.Equals)) { mezzo = null; composizioneSquadre = null; } } codiceDistaccamento = mezzo.Mezzo.Distaccamento.Codice; if (mezzo.Mezzo.IdRichiesta != null) { GetRichiestaById getRichiesta = new GetRichiestaById(); RichiestaAssistenza richiesta = getRichiesta.Get(mezzo.Mezzo.IdRichiesta); var ListaSquadre = richiesta.Partenze.Where(x => x.Partenza.Mezzo.Codice.Equals(mezzo.Id)).Select(x => x.Partenza.Squadre); composizioneSquadre = composizioneSquadre.Where(x => ListaSquadre.Any(x.Squadra.Equals)).ToList(); } else { composizioneSquadre = composizioneSquadre.Where(x => x.Squadra.Distaccamento.Codice == codiceDistaccamento).ToList(); } } } if (query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) { composizioneSquadre = composizioneSquadre.Where(x => (query.Filtro.CodiceDistaccamento.Any(x.Squadra.Distaccamento.Codice.Equals))).ToList(); } if (query.Filtro.CodiceSquadra?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceSquadra[0])) { composizioneSquadre = composizioneSquadre.Where(x => (query.Filtro.CodiceSquadra.Any(x.Squadra.Id.Equals))).ToList(); } return(composizioneSquadre); } else { return(composizioneSquadre); } }