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.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 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()); }