public List <MezzoMarker> MappaFlottaMezziSuMezziMarker(List <MapperMezziFromGeoFleet> flottaMezzi)
        {
            var listaMezziFlotta = new List <MezzoMarker>();
            var codiceSede       = "";
            var codiceTipo       = "";

            foreach (var mezzoFlotta in flottaMezzi)
            {
                var statoMezzo = "";
                if (mezzoFlotta.infoSO115 != null)
                {
                    statoMezzo = mezzoFlotta.infoSO115.stato;
                }
                else
                {
                    statoMezzo = "0";
                }

                if (mezzoFlotta.classiMezzo[2].Length == 2)
                {
                    codiceTipo = mezzoFlotta.classiMezzo[2];
                }
                else if (mezzoFlotta.classiMezzo[0].Length == 2)
                {
                    codiceTipo = mezzoFlotta.classiMezzo[0];
                }
                else if (mezzoFlotta.classiMezzo[1].Length == 2)
                {
                    codiceTipo = mezzoFlotta.classiMezzo[1];
                }

                if (mezzoFlotta.classiMezzo[2].Contains(":"))
                {
                    codiceSede = mezzoFlotta.classiMezzo[2];
                }
                else if (mezzoFlotta.classiMezzo[0].Contains(":"))
                {
                    codiceSede = mezzoFlotta.classiMezzo[0];
                }
                else if (mezzoFlotta.classiMezzo[1].Contains(":"))
                {
                    codiceSede = mezzoFlotta.classiMezzo[1];
                }

                if (statoMezzo == "6" || statoMezzo == "7" || statoMezzo == "0")
                {
                    continue;
                }

                var mezzo = new MezzoMarker()
                {
                    Mezzo         = new Mezzo(mezzoFlotta.codiceMezzo, mezzoFlotta.codiceMezzo, codiceTipo, GetStatoMezzoByCodiceMezzo(statoMezzo), 0, GetSedeDiAppartenenza(codiceSede), CodificaLocalizzazione(mezzoFlotta.Localizzazione)),
                    Coordinate    = CodificaLocalizzazione(mezzoFlotta.Localizzazione),
                    InfoRichiesta = GetInfoRichiestaByCodiceMezzo(mezzoFlotta.codiceMezzo)
                };
                listaMezziFlotta.Add(mezzo);
            }

            return(listaMezziFlotta.Where(x => x.Mezzo.Distaccamento != null).ToList());
        }
Ejemplo n.º 2
0
        /// <summary>
        ///   il metodo restituisce una lista di mezzi in servizio associati ad una determinata sede
        /// </summary>
        /// <param name="codiceSede">il codice sede</param>
        /// <returns>Lista di MezziInServizio</returns>
        public List <MezzoInServizio> Get(string[] CodiciSede)
        {
            var listaMezzoInServizio = new List <MezzoInServizio>();

            var listaCodiciSede = CodiciSede.ToList();

            var codiceSedeIniziali = listaCodiciSede[0];

            var mezzi = _getMezziUtilizzabili.Get(listaCodiciSede.ToHashSet().ToList()).Result;

            var statoMezzi = new List <StatoOperativoMezzo>();

            foreach (var codsede in listaCodiciSede)
            {
                statoMezzi.AddRange(_getStatoMezzi.Get(codsede));
            }

            foreach (var mezzo in mezzi)
            {
                var statoOperativoMezzi = statoMezzi.Find(x => x.CodiceMezzo.Equals(mezzo.Codice));
                mezzo.Stato       = statoOperativoMezzi != null ? statoOperativoMezzi.StatoOperativo : Costanti.MezzoInSede;
                mezzo.IdRichiesta = statoOperativoMezzi?.CodiceRichiesta;
                var mezzoMarker = new MezzoMarker()
                {
                    Mezzo         = mezzo,
                    InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromIdRichiestaMezzo(mezzo.IdRichiesta)
                };
                var mezzoInServizio = new MezzoInServizio()
                {
                    Mezzo = mezzoMarker
                };

                if (mezzo.IdRichiesta != null)
                {
                    var richiesta = _getRichiestaById.GetByCodice(mezzo.IdRichiesta);
                    if (richiesta != null)
                    {
                        foreach (var partenza in richiesta.Partenze)
                        {
                            if (partenza.Partenza.Mezzo.Codice == mezzo.Codice)
                            {
                                mezzoInServizio.Squadre = partenza.Partenza.Squadre;
                            }
                        }
                    }
                }
                else
                {
                    mezzoInServizio.Squadre = null;
                }

                listaMezzoInServizio.Add(mezzoInServizio);
            }

            return(listaMezzoInServizio);
        }
Ejemplo n.º 3
0
        public List <MezzoInServizio> Get(string[] codiceSede)
        {
            var    filepath         = CostantiJson.Mezzo;
            var    getRichiestaById = new GetRichiestaById();
            string json;

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

            var codiceSedeIniziali = codiceSede[0];

            var mezzi = JsonConvert.DeserializeObject <List <Mezzo> >(json).FindAll(x => x.Stato != Costanti.MezzoFuoriServizio);

            var listaMezzoInServizio = new List <MezzoInServizio>();

            foreach (var mezzo in mezzi.FindAll(x => x.Distaccamento.Codice
                                                .StartsWith(codiceSedeIniziali)))
            {
                var mezzoMarker = new MezzoMarker()
                {
                    Mezzo         = mezzo,
                    InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromIdRichiestaMezzo(mezzo.IdRichiesta)
                };
                var mezzoInServizio = new MezzoInServizio {
                    Mezzo = mezzoMarker
                };
                if (mezzoInServizio.Mezzo.Mezzo.IdRichiesta != null)
                {
                    var richiesta = getRichiestaById.GetByCodice(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);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///   il metodo restituisce una lista di mezzi in servizio associati ad una determinata sede
        /// </summary>
        /// <param name="codiceSede">il codice sede</param>
        /// <returns>Lista di MezziInServizio</returns>
        public List <MezzoInServizio> Get(string[] CodiciSede)
        {
            var mezzi      = _getMezziUtilizzabili.Get(CodiciSede.ToList());
            var statoMezzi = _getStatoMezzi.Get(CodiciSede);

            var listaMezzoInServizio = mezzi.Result.Select(mezzo =>
            {
                var statoOperativoMezzi = statoMezzi.Find(x => x.CodiceMezzo.Equals(mezzo.Codice));
                mezzo.Stato             = statoOperativoMezzi != null ? statoOperativoMezzi.StatoOperativo : Costanti.MezzoInSede;
                mezzo.IdRichiesta       = statoOperativoMezzi?.CodiceRichiesta;
                var mezzoMarker         = new MezzoMarker()
                {
                    Mezzo         = mezzo,
                    InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromCodiceRichiestaMezzo(mezzo.IdRichiesta)
                };
                var mezzoInServizio = new MezzoInServizio()
                {
                    Mezzo = mezzoMarker
                };

                if (mezzo.IdRichiesta != null)
                {
                    var richiesta = _getRichiestaById.GetByCodice(mezzo.IdRichiesta);
                    if (richiesta != null)
                    {
                        foreach (var partenza in richiesta.Partenze)
                        {
                            if (partenza.Partenza.Mezzo.Codice == mezzo.Codice)
                            {
                                mezzoInServizio.Squadre = partenza.Partenza.Squadre;
                            }
                        }
                    }
                }
                else
                {
                    mezzoInServizio.Squadre = null;
                }

                return(mezzoInServizio);
            });

            return(listaMezzoInServizio
                   .OrderBy(c => c.Mezzo.Mezzo.Stato == Costanti.MezzoInSede)
                   .ToList());
        }
Ejemplo n.º 5
0
        /// <summary>
        ///   il metodo la classe recupera le informazioni dei mezzi e la loro posizione georeferenziata.
        /// </summary>
        /// <param name="filtroAreaMappa">un area mappa</param>
        /// <returns>Lista di MezziMarker</returns>
        public List <MezzoMarker> GetListaMezziMarker(AreaMappa filtroAreaMappa)
        {
            var listaMezziFilter = new List <MezzoMarker>();

            var filepath = CostantiJson.Mezzo;

            string json;

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

            var listaMezzi       = JsonConvert.DeserializeObject <List <Mezzo> >(json);
            var listaMezziMarker = new List <MezzoMarker>();

            foreach (var mezzo in listaMezzi)
            {
                var mezzoMarker = new MezzoMarker()
                {
                    Mezzo         = mezzo,
                    InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromIdRichiestaMezzo(mezzo.IdRichiesta)
                };

                listaMezziMarker.Add(mezzoMarker);
            }

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

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

            var listaMezziFiltrataPerStato       = new List <MezzoMarker>();
            var listaMezziFitrataPerStatoEGenere = new List <MezzoMarker>();
            var listaMezziFiltrataPerGenere      = new List <MezzoMarker>();

            if (filtroAreaMappa.FiltroMezzi.Stato.Any())
            {
                foreach (var stato in filtroAreaMappa.FiltroMezzi.Stato)
                {
                    listaMezziFiltrataPerStato.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Stato.Equals(stato)));
                }

                if (!filtroAreaMappa.FiltroMezzi.Tipologia.Any())
                {
                    return(listaMezziFiltrataPerStato);
                }
            }
            if (filtroAreaMappa.FiltroMezzi.Tipologia.Any())
            {
                foreach (var genere in filtroAreaMappa.FiltroMezzi.Tipologia)
                {
                    listaMezziFiltrataPerGenere.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Genere.Equals(genere)));
                }
                if (!filtroAreaMappa.FiltroMezzi.Stato.Any())
                {
                    return(listaMezziFiltrataPerGenere);
                }
            }

            if (filtroAreaMappa.FiltroMezzi.Tipologia.Any() && filtroAreaMappa.FiltroMezzi.Stato.Any())
            {
                return(listaMezziFitrataPerStatoEGenere = listaMezziFiltrataPerStato.FindAll(x => listaMezziFiltrataPerGenere.Contains(x)));
            }

            return(listaMezziFilter);
        }
Ejemplo n.º 6
0
        /// <summary>
        ///   il metodo la classe recupera le informazioni dei mezzi e la loro posizione georeferenziata.
        /// </summary>
        /// <param name="filtroAreaMappa">un area mappa</param>
        /// <returns>Lista di MezziMarker</returns>
        public List <MezzoMarker> GetListaMezziMarker(AreaMappa filtroAreaMappa)
        {
            var listaMezziFilter = new List <MezzoMarker>();

            var listaMezzi = _getMezziUtilizzabili.Get(filtroAreaMappa.CodiceSede).Result;

            var listaMezziMarker = new List <MezzoMarker>();

            foreach (var mezzo in listaMezzi)
            {
                var mezzoMarker = new MezzoMarker()
                {
                    Mezzo         = mezzo,
                    InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromIdRichiestaMezzo(mezzo.IdRichiesta)
                };
                listaMezziMarker.Add(mezzoMarker);
            }

            if (filtroAreaMappa.BottomLeft == null)
            {
                return(listaMezziMarker);
            }

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

            var listaMezziMarkerRaggruppata = new List <MezzoMarker>();

            var listaMezziFiltrataPerStato       = new List <MezzoMarker>();
            var listaMezziFitrataPerStatoEGenere = new List <MezzoMarker>();
            var listaMezziFiltrataPerGenere      = new List <MezzoMarker>();

            if (filtroAreaMappa.FiltroMezzi.Stato.Any())
            {
                foreach (var stato in filtroAreaMappa.FiltroMezzi.Stato)
                {
                    listaMezziFiltrataPerStato.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Stato.Equals(stato)));
                }

                if (!filtroAreaMappa.FiltroMezzi.Tipologia.Any())
                {
                    listaMezziFilter = listaMezziFiltrataPerStato;
                }
            }
            if (filtroAreaMappa.FiltroMezzi.Tipologia.Any())
            {
                foreach (var genere in filtroAreaMappa.FiltroMezzi.Tipologia)
                {
                    listaMezziFiltrataPerGenere.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Genere.Equals(genere)));
                }
                if (!filtroAreaMappa.FiltroMezzi.Stato.Any())
                {
                    listaMezziFilter = listaMezziFiltrataPerGenere;
                }
            }

            if (filtroAreaMappa.FiltroMezzi.Tipologia.Any() && filtroAreaMappa.FiltroMezzi.Stato.Any())
            {
                listaMezziFilter = listaMezziFiltrataPerStato.FindAll(x => listaMezziFiltrataPerGenere.Contains(x));
            }

            return(listaMezziFilter);
            //return GroupListaMezziMarker.Group(listaMezziFilter); //TODO da integrare con la clusterizzazione.
        }