private static InfoRichiesta GetInfoRichiestaByCodiceMezzo(string codiceMezzo) { var getRichiesta = new GetRichiestaById(); var filepath = CostantiJson.MezziComposizione; string json; using (StreamReader r = new StreamReader(filepath)) { json = r.ReadToEnd(); } var mezziComposizione = JsonConvert.DeserializeObject <List <MezzoMarker> >(json); var mezzoComp = mezziComposizione.Find(x => x.Mezzo.Codice.Equals(codiceMezzo)); if (mezzoComp == null) { return(null); } var richiesta = getRichiesta.Get(mezzoComp.Mezzo.IdRichiesta); if (richiesta == null) { return(null); } return(new InfoRichiesta() { CodiceRichiesta = richiesta.CodiceRichiesta, Indirizzo = richiesta.Localita.Indirizzo }); }
public decimal GetIndiceOrdinamento(string IdRichiesta, ComposizioneMezzi composizione, string IdRichiestaOrigine = null) { int ValoreIntOriginePerSganciamento = 0; decimal ValoreAdeguatezzaMezzo; decimal IndiceOrdinamento = 0; GetRichiestaById getRichiesta = new GetRichiestaById(); RichiestaAssistenza richiestaDestinazione = getRichiesta.Get(IdRichiesta); RichiestaAssistenza richiestaOrigine = new RichiestaAssistenza(); if (IdRichiestaOrigine != null) { richiestaOrigine = getRichiesta.Get(IdRichiestaOrigine); ValoreIntOriginePerSganciamento = GeneraValoreSganciamento(richiestaOrigine.Tipologie); } ValoreAdeguatezzaMezzo = GeneraValoreAdeguatezzaMezzo(richiestaDestinazione.Tipologie, composizione.Mezzo.Genere); IndiceOrdinamento = 100 / (1 + (Convert.ToDecimal(composizione.TempoPercorrenza.Replace(".", ",")) / 5400)) + ValoreIntOriginePerSganciamento + ValoreAdeguatezzaMezzo; return(IndiceOrdinamento); }
public List <MezzoInServizio> Get(string codiceSede) { var mapper = new MapFromFlottaToMezziMarker(); var filepath = CostantiJson.FlottaMezzi; var getRichiestaById = new GetRichiestaById(); string json; using (var r = new StreamReader(filepath)) { json = r.ReadToEnd(); } var codiceSedePulito = codiceSede.Substring(0, 2); var flottaMezzi = JsonConvert.DeserializeObject <List <MapperMezziFromGeoFleet> >(json); var listaMezziMarker = mapper.MappaFlottaMezziSuMezziMarker(flottaMezzi).FindAll(x => x.Mezzo.Distaccamento.Codice.StartsWith(codiceSedePulito)); var listaMezzoInServizio = new List <MezzoInServizio>(); foreach (var mezzoMarkerIn in listaMezziMarker) { var mezzoInServizio = new MezzoInServizio { Mezzo = mezzoMarkerIn }; if (mezzoInServizio.Mezzo.Mezzo.IdRichiesta != null) { var richiesta = getRichiestaById.Get(mezzoInServizio.Mezzo.Mezzo.IdRichiesta); foreach (var partenza in richiesta.Partenze) { if (partenza.Partenza.Mezzo.Codice == mezzoInServizio.Mezzo.Mezzo.Codice) { mezzoInServizio.Squadre = partenza.Partenza.Squadre; } } } else { mezzoInServizio.Squadre = null; } listaMezzoInServizio.Add(mezzoInServizio); } return(listaMezzoInServizio); }
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); } }