public List <ComposizioneMezzi> Get(ComposizioneMezziQuery query) { var listaMezzi = new List <Mezzo>(); var filepath = CostantiJson.Mezzo; string json; using (var r = new StreamReader(filepath)) { json = r.ReadToEnd(); } //listaMezzi = JsonConvert.DeserializeObject<List<Mezzo>>(json); var composizioneMezzi = JsonConvert.DeserializeObject <List <ComposizioneMezzi> >(json); string[] generiMezzi; string[] statiMezzi; string codiceDistaccamento; //foreach (var composizione in composizioneMezzi) //{ // composizione.IndiceOrdinamento = _ordinamentoMezzi.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.CoordinateFake, composizione.Mezzo.IdRichiesta); // composizione.Id = composizione.Mezzo.Codice; // if (composizione.IstanteScadenzaSelezione < DateTime.Now) // { // composizione.IstanteScadenzaSelezione = null; // } //} var composizioneMezziPrenotati = GetComposizioneMezziPrenotati(composizioneMezzi, query.CodiceSede); return(composizioneMezziPrenotati.Where(c => c.Mezzo.Distaccamento.Codice.Equals(query.CodiceSede)).OrderByDescending(x => x.IndiceOrdinamento).ToList()); }
public async Task <IActionResult> Post(FiltriComposizionePartenza filtri) { var codiceSede = Request.Headers["codicesede"]; var headerValues = Request.Headers["HubConnectionId"]; string ConId = headerValues.FirstOrDefault(); var query = new ComposizioneMezziQuery() { Filtro = filtri, CodiceSede = codiceSede }; if (ModelState.IsValid) { try { List <ComposizioneMezzi> composizioneMezzi = handler.Handle(query).ComposizioneMezzi; return(Ok()); } catch { return(BadRequest()); } } else { return(BadRequest()); } }
public List <ComposizioneMezzi> Get(ComposizioneMezziQuery query) { List <string> ListaSedi = new List <string>(); ListaSedi.Add(query.CodiceSede); List <Mezzo> ListaMezzi = _getMezziUtilizzabili.Get(ListaSedi).Result; var composizioneMezzi = GeneraListaComposizioneMezzi(ListaMezzi); string[] generiMezzi; string[] statiMezzi; string codiceDistaccamento; foreach (var composizione in composizioneMezzi) { composizione.IndiceOrdinamento = _ordinamentoMezzi.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.IdRichiesta); composizione.Id = composizione.Mezzo.Codice; if (composizione.IstanteScadenzaSelezione < DateTime.Now) { composizione.IstanteScadenzaSelezione = null; } } var composizioneMezziPrenotati = GetComposizioneMezziPrenotati(composizioneMezzi, query.CodiceSede); return(composizioneMezziPrenotati.OrderByDescending(x => x.IndiceOrdinamento).ToList()); }
/// <summary> /// Query che estrae i valori dei Box presenti in Home Page /// </summary> /// <param name="query">Filtri utilizzati per l'estrazione</param> /// <returns>Elenco dei mezzi disponibili</returns> public ComposizionePartenzaAvanzataResult Handle(ComposizionePartenzaAvanzataQuery query) { Log.Debug("Inizio elaborazione Composizione partenza avanzata Handler"); var composizioneMezziquery = new ComposizioneMezziQuery { Filtro = query.Filtro, CodiceSede = query.CodiceSede }; var composizioneSquadreQuery = new ComposizioneSquadreQuery { Filtro = query.Filtro, CodiceSede = query.CodiceSede }; var composizioneAvanzata = new Classi.Composizione.ComposizionePartenzaAvanzata() { ComposizioneMezzi = this._composizioneMezzihandler.Handle(composizioneMezziquery).ComposizioneMezzi, ComposizioneSquadre = this._composizioneSquadrehandler.Handle(composizioneSquadreQuery).ComposizioneSquadre, }; Log.Debug("Fine elaborazione Composizione partenza avanzata Handler"); return(new ComposizionePartenzaAvanzataResult() { ComposizionePartenzaAvanzata = composizioneAvanzata }); }
public async Task <IActionResult> Post(FiltriComposizionePartenza filtri) { var headerValues = Request.Headers["HubConnectionId"]; string ConId = headerValues.FirstOrDefault(); var query = new ComposizioneMezziQuery() { Filtro = filtri }; if (ModelState.IsValid) { try { List <ComposizioneMezzi> composizioneMezzi = new List <ComposizioneMezzi>(); composizioneMezzi = handler.Handle(query).ComposizioneMezzi; await _NotificationHub.Clients.Client(ConId).SendAsync("NotifyGetComposizioneMezzi", composizioneMezzi); return(Ok()); } catch { return(BadRequest()); } } else { return(BadRequest()); } }
public ComposizioneMezziResult GetMarkerFromId(FiltriComposizionePartenza filtro) { var query = new ComposizioneMezziQuery() { Filtro = filtro }; return(handler.Handle(query)); }
public List <ComposizioneMezzi> Get(ComposizioneMezziQuery query) { List <string> ListaSedi = new List <string>(); ListaSedi.Add(query.CodiceSede); List <Mezzo> ListaMezzi = _getMezziUtilizzabili.Get(ListaSedi).Result; var composizioneMezzi = GeneraListaComposizioneMezzi(ListaMezzi); var ListaSquadre = _getSquadre.Get(ListaSedi).Result; string[] generiMezzi; string[] statiMezzi; string codiceDistaccamento; foreach (var composizione in composizioneMezzi) { composizione.IndiceOrdinamento = _ordinamentoMezzi.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.CoordinateFake, composizione.Mezzo.IdRichiesta); composizione.Id = composizione.Mezzo.Codice; if (composizione.IstanteScadenzaSelezione < DateTime.Now) { composizione.IstanteScadenzaSelezione = null; } } var composizioneMezziPrenotati = GetComposizioneMezziPrenotati(composizioneMezzi, query.CodiceSede); //Per i mezzi con coordinate Fake nella property i Km e la TempoPercorrenza vengono impostati i valori medi della collection decimal totaleKM = 0; decimal totaleTempoPercorrenza = 0; foreach (var composizione in composizioneMezziPrenotati) { totaleKM = totaleKM + Convert.ToDecimal(composizione.Km.Replace(".", ",")); totaleTempoPercorrenza = totaleTempoPercorrenza + Convert.ToDecimal(composizione.TempoPercorrenza.Replace(".", ",")); } string mediaDistanza = Math.Round((totaleKM / composizioneMezzi.Count), 2).ToString(CultureInfo.InvariantCulture); string mediaTempoPercorrenza = Math.Round((totaleTempoPercorrenza / composizioneMezzi.Count), 2).ToString(CultureInfo.InvariantCulture); foreach (var composizione in composizioneMezziPrenotati) { if (composizione.Mezzo.CoordinateFake) { composizione.Km = mediaDistanza; composizione.TempoPercorrenza = mediaTempoPercorrenza; composizione.IndiceOrdinamento = _ordinamentoMezzi.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.CoordinateFake, composizione.Mezzo.IdRichiesta); composizione.Km = null; composizione.TempoPercorrenza = null; } } return(composizioneMezziPrenotati.OrderByDescending(x => x.IndiceOrdinamento).ToList()); }
public async Task <IActionResult> Post(FiltriComposizionePartenza filtri) { var codiceSede = Request.Headers["codicesede"]; var headerValues = Request.Headers["HubConnectionId"]; string ConId = headerValues.FirstOrDefault(); var query = new ComposizioneMezziQuery() { Filtro = filtri, CodiceSede = codiceSede }; if (ModelState.IsValid) { try { List <ComposizioneMezzi> composizioneMezzi = handler.Handle(query).ComposizioneMezzi; return(Ok()); } catch (Exception ex) { if (ex.Message.Contains(Costanti.UtenteNonAutorizzato)) { return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato })); } else if (ex.Message.Contains("404")) { return(StatusCode(404, new { message = "Servizio non raggiungibile. Riprovare più tardi" })); } else { return(BadRequest(new { message = ex.Message })); } } } else { return(BadRequest()); } }
/// <summary> /// Query che estrae i valori dei Box presenti in Home Page /// </summary> /// <param name="query">Filtri utilizzati per l'estrazione</param> /// <returns>Elenco dei mezzi disponibili</returns> public ComposizionePartenzaAvanzataResult Handle(ComposizionePartenzaAvanzataQuery query) { var composizioneMezziquery = new ComposizioneMezziQuery { Filtro = query.Filtro, CodiceSede = query.CodiceSede }; var composizioneSquadreQuery = new ComposizioneSquadreQuery { Filtro = query.Filtro }; var composizioneAvanzata = new Classi.Composizione.ComposizionePartenzaAvanzata() { ComposizioneMezzi = this._composizioneMezzihandler.Handle(composizioneMezziquery).ComposizioneMezzi, ComposizioneSquadre = this._composizioneSquadrehandler.Handle(composizioneSquadreQuery).ComposizioneSquadre, }; return(new ComposizionePartenzaAvanzataResult() { ComposizionePartenzaAvanzata = composizioneAvanzata }); }
public List <ComposizioneMezzi> Get(ComposizioneMezziQuery query) { MapFromFlottaToMezziMarker mapper = new MapFromFlottaToMezziMarker(); List <MezzoMarker> ListaMezzi = new List <MezzoMarker>(); var filepath = CostantiJson.FlottaMezzi; string json; using (var r = new StreamReader(filepath)) { json = r.ReadToEnd(); } List <MapperMezziFromGeoFleet> FlottaMezzi = JsonConvert.DeserializeObject <List <MapperMezziFromGeoFleet> >(json); ListaMezzi = mapper.MappaFlottaMezziSuMezziMarker(FlottaMezzi).Where(x => x.Mezzo.Distaccamento.Codice == query.CodiceSede).ToList(); List <ComposizioneMezzi> composizioneMezzi = GeneraListaComposizioneMezzi(ListaMezzi); string[] generiMezzi; string[] statiMezzi; string codiceDistaccamento; if ((query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) || (query.Filtro.CodiceMezzo?.Length > 0 && !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 (query.Filtro.CodiceSquadra?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceSquadra[0])) { var path = CostantiJson.SquadreComposizione; string jsonSquadre; using (var r = new StreamReader(path)) { jsonSquadre = r.ReadToEnd(); } var composizioneSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(jsonSquadre); var squadra = composizioneSquadre.Find(x => query.Filtro.CodiceSquadra.Any(x.Squadra.Id.Equals)); if (squadra != null) { codiceDistaccamento = squadra.Squadra.Distaccamento.Codice; composizioneMezzi = composizioneMezzi.Where(x => (x.Mezzo.Distaccamento.Codice == codiceDistaccamento)).ToList(); } } var pathFiltri = CostantiJson.Filtri; string jsonFiltri; using (var r = new StreamReader(pathFiltri)) { jsonFiltri = r.ReadToEnd(); } var filtri = JsonConvert.DeserializeObject <API.Models.Classi.Filtri.Filtri>(jsonFiltri); if (query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) { composizioneMezzi = composizioneMezzi.Where(x => query.Filtro.CodiceDistaccamento.Any(x.Mezzo.Distaccamento.Codice.Equals)).ToList(); } 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(); composizioneMezzi = composizioneMezzi.Where(x => statiMezzi.Any(x.Mezzo.Stato.Equals)).ToList(); } 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(); composizioneMezzi = composizioneMezzi.Where(x => generiMezzi.Any(x.Mezzo.Genere.Equals)).ToList(); } if (!string.IsNullOrEmpty(query.Filtro.CodiceMezzo)) { composizioneMezzi = composizioneMezzi.Where(x => x.Mezzo.Codice == query.Filtro.CodiceMezzo).ToList(); } var ordinamento = new OrdinamentoMezzi(); foreach (var composizione in composizioneMezzi) { composizione.IndiceOrdinamento = ordinamento.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.IdRichiesta); composizione.IdRichiesta = composizione.Mezzo.IdRichiesta; composizione.Id = composizione.Mezzo.Codice; if (composizione.IstanteScadenzaSelezione < DateTime.Now) { composizione.IstanteScadenzaSelezione = null; } } return(composizioneMezzi.OrderByDescending(x => x.IndiceOrdinamento).ToList()); } else { var ordinamento = new OrdinamentoMezzi(); foreach (var composizione in composizioneMezzi) { composizione.IndiceOrdinamento = ordinamento.GetIndiceOrdinamento(query.Filtro.IdRichiesta, composizione, composizione.Mezzo.IdRichiesta); composizione.IdRichiesta = composizione.Mezzo.IdRichiesta; composizione.Id = composizione.Mezzo.Codice; if (composizione.IstanteScadenzaSelezione < DateTime.Now) { composizione.IstanteScadenzaSelezione = null; } } return(composizioneMezzi.OrderByDescending(x => x.IndiceOrdinamento).ToList()); } }