Example #1
0
        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());
        }
Example #2
0
        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());
        }