Exemplo n.º 1
0
        public List <MezzoMarker> GetListaMezziMarker(AreaMappa filtroAreaMappa)
        {
            var mapper           = new MapFromFlottaToMezziMarker();
            var listaMezziFilter = new List <MezzoMarker>();

            string filepath = CostantiJson.FlottaMezzi;
            string json;

            using (StreamReader r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }

            try
            {
                var flottaMezzi = JsonConvert.DeserializeObject <List <MapperMezziFromGeoFleet> >(json);
                var listaMezzi  = mapper.MappaFlottaMezziSuMezziMarker(flottaMezzi);

                if (filtroAreaMappa == null)
                {
                    return(listaMezzi);
                }

                listaMezziFilter.AddRange(listaMezzi.Where(mezzo => (mezzo.Coordinate.Latitudine >= filtroAreaMappa.BottomLeft.Latitudine) && (mezzo.Coordinate.Latitudine <= filtroAreaMappa.TopRight.Latitudine) && ((mezzo.Coordinate.Longitudine >= filtroAreaMappa.BottomLeft.Longitudine) && (mezzo.Coordinate.Longitudine <= filtroAreaMappa.TopRight.Longitudine))));

                return(listaMezziFilter);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
            }
        }