Ejemplo n.º 1
0
        public async Task <IActionResult> Post(FiltriComposizionePartenza filtri)
        {
            var    headerValues = Request.Headers["HubConnectionId"];
            string ConId        = headerValues.FirstOrDefault();

            var query = new ComposizioneSquadreQuery()
            {
                Filtro = filtri
            };

            if (ModelState.IsValid)
            {
                try
                {
                    List <ComposizioneSquadre> composizioneSquadre = new List <ComposizioneSquadre>();
                    composizioneSquadre = handler.Handle(query).ComposizioneSquadre;

                    await _NotificationHub.Clients.Client(ConId).SendAsync("NotifyGetComposizioneSquadre", composizioneSquadre);

                    return(Ok());
                }
                catch
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Post(FiltriComposizionePartenza filtri)
        {
            var query = new ComposizioneSquadreQuery()
            {
                Filtro = filtri
            };

            if (ModelState.IsValid)
            {
                try
                {
                    List <ComposizioneSquadre> composizioneSquadre = handler.Handle(query).ComposizioneSquadre;
                    return(Ok());
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains(Costanti.UtenteNonAutorizzato))
                    {
                        return(StatusCode(403, Costanti.UtenteNonAutorizzato));
                    }
                    else if (ex.Message.Contains("404"))
                    {
                        return(StatusCode(404, "Servizio non raggiungibile. Riprovare più tardi"));
                    }
                    else
                    {
                        return(BadRequest());
                    }
                }
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 3
0
        /// <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
            });
        }
Ejemplo n.º 4
0
        public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query)
        {
            var listaSedi = new List <string>
            {
                query.CodiceSede
            };
            var listaSquadre        = _getSquadre.Get(listaSedi).Result;
            var statiOperativi      = _getStatoSquadre.Get(listaSedi);
            var composizioneSquadre = new List <ComposizioneSquadre>();

            foreach (Squadra s in listaSquadre)
            {
                if (statiOperativi.Exists(x => x.IdSquadra.Equals(s.Id)))
                {
                    s.Stato             = MappaStatoSquadraDaStatoMezzo.MappaStato(statiOperativi.Find(x => x.IdSquadra.Equals(s.Id)).StatoSquadra);
                    s.IndiceOrdinamento = -200;
                }
                else
                {
                    s.Stato = Squadra.StatoSquadra.InSede;
                }

                var c = new ComposizioneSquadre
                {
                    Squadra = s,
                    Id      = s.Id
                };
                composizioneSquadre.Add(c);
            }

            return(composizioneSquadre.OrderByDescending(x => x.Squadra.IndiceOrdinamento).ToList());
        }
Ejemplo n.º 5
0
        public ComposizioneSquadreResult GetMarkerFromId(FiltriComposizionePartenza filtri)
        {
            var query = new ComposizioneSquadreQuery()
            {
                Filtro = filtri
            };

            return(handler.Handle(query));
        }
Ejemplo n.º 6
0
        public ComposizioneSquadreResult GetMarkerSquadreFromId(FiltriComposizionePartenza filtro)
        {
            var squadreQuery = new ComposizioneSquadreQuery()
            {
                Filtro = filtro
            };


            return(_squadreHandler.Handle(squadreQuery));
        }
Ejemplo n.º 7
0
        public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query)
        {
            var    filepath = CostantiJson.SquadreComposizione;
            string json;

            using (var r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }
            var composizioneSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(json);

            return(composizioneSquadre.Where(c => c.Squadra.Distaccamento.Codice.Split(".")[0].Equals(query.CodiceSede.Split(".")[0])).ToList());
        }
Ejemplo n.º 8
0
        public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query)
        {
            var    filepath = CostantiJson.SquadreComposizione;
            string json;

            using (var r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }
            var composizioneSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(json);

            return(composizioneSquadre);
        }
Ejemplo n.º 9
0
        public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query)
        {
            List <string> ListaSedi = new List <string>();

            ListaSedi.Add(query.CodiceSede);
            var ListaSquadre = _getSquadre.Get(ListaSedi).Result;

            var composizioneSquadre = new List <ComposizioneSquadre>();

            foreach (Squadra s in ListaSquadre)
            {
                ComposizioneSquadre c = new ComposizioneSquadre();
                c.Squadra = s;
                c.Id      = s.Id;
                composizioneSquadre.Add(c);
            }

            return(composizioneSquadre);
        }
Ejemplo n.º 10
0
        public BoxPersonale Get(string[] codiciSede)
        {
            var personale        = new BoxPersonale();
            var numeroComponenti = 0;
            var listaFunzionari  = new List <Componente>();

            var listaSquadreComposizione = new List <ComposizioneSquadre>();

            foreach (var Codsede in codiciSede)
            {
                ComposizioneSquadreQuery query = new ComposizioneSquadreQuery();
                query.CodiceSede = Codsede;

                listaSquadreComposizione.AddRange(_getComposizioneSquadre.Get(query));
            }

            personale.SquadreAssegnate =
                listaSquadreComposizione.Count(x => x.Squadra.Stato == Squadra.StatoSquadra.InViaggio) +
                listaSquadreComposizione.Count(x => x.Squadra.Stato == Squadra.StatoSquadra.InUscita) +
                listaSquadreComposizione.Count(x => x.Squadra.Stato == Squadra.StatoSquadra.SulPosto) +
                listaSquadreComposizione.Count(x => x.Squadra.Stato == Squadra.StatoSquadra.InRientro);
            personale.SquadreServizio =
                listaSquadreComposizione.Count;

            foreach (var partenza in listaSquadreComposizione)
            {
                numeroComponenti += partenza.Squadra.Componenti.Count;
                foreach (var componente in partenza.Squadra.Componenti)
                {
                    if (componente.TecnicoGuardia1 || componente.TecnicoGuardia2 || componente.CapoTurno ||
                        componente.FunGuardia)
                    {
                        listaFunzionari.Add(componente);
                    }
                }
            }

            personale.PersonaleTotale = numeroComponenti;
            personale.Funzionari      = listaFunzionari;

            return(personale);
        }
        /// <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
            });
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Post(FiltriComposizionePartenza filtri)
        {
            var query = new ComposizioneSquadreQuery()
            {
                Filtro = filtri
            };

            if (ModelState.IsValid)
            {
                try
                {
                    List <ComposizioneSquadre> composizioneSquadre = handler.Handle(query).ComposizioneSquadre;
                    return(Ok());
                }
                catch
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 13
0
        public List <ComposizioneSquadre> Get(ComposizioneSquadreQuery query)
        {
            //TODO PARTE CHIAMATA DB

            //TODO DA MODIFICARE CON LA CONNESSIONE AL DB PER IL REPERIMENTO DEI DATI DEFINITIVI
            //DATI FAKE - ORA LI LEGGO DA FILE
            string filepath = CostantiJson.SquadreComposizione;
            string json;

            using (StreamReader r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }
            List <ComposizioneMezzi> composizioneMezzi = new List <ComposizioneMezzi>();
            ComposizioneMezzi        mezzo             = new ComposizioneMezzi();
            var codiceDistaccamento = "";
            List <ComposizioneSquadre> composizioneSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(json);

            string[] generiMezzi = new string[50];
            string[] statiMezzi  = new string[50];
            API.Models.Classi.Filtri.Filtri filtri = new API.Models.Classi.Filtri.Filtri();
            string pathFiltri = CostantiJson.Filtri;
            string jsonFiltri;

            using (StreamReader r = new StreamReader(pathFiltri))
            {
                jsonFiltri = r.ReadToEnd();
            }
            filtri = JsonConvert.DeserializeObject <API.Models.Classi.Filtri.Filtri>(jsonFiltri);
            if ((query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0])) ||
                (!string.IsNullOrEmpty(query.Filtro.CodiceMezzo) && !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 (!string.IsNullOrEmpty(query.Filtro.CodiceMezzo) && !string.IsNullOrEmpty(query.Filtro.CodiceMezzo))
                {
                    string path = CostantiJson.MezziComposizione;
                    string jsonMezzi;
                    using (StreamReader r = new StreamReader(path))
                    {
                        jsonMezzi = r.ReadToEnd();
                    }
                    composizioneMezzi = JsonConvert.DeserializeObject <List <ComposizioneMezzi> >(jsonMezzi);
                    mezzo             = composizioneMezzi.Find(x => x.Mezzo.Codice == query.Filtro.CodiceMezzo);
                    if (mezzo != null)
                    {
                        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();

                            if (!statiMezzi.Any(mezzo.Mezzo.Stato.Equals))
                            {
                                mezzo = null;
                                composizioneSquadre = null;
                            }
                        }
                        if (query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0]))
                        {
                            if (!query.Filtro.CodiceDistaccamento.Any(mezzo.Mezzo.Distaccamento.Codice.Equals))
                            {
                                mezzo = null;
                                composizioneSquadre = null;
                            }
                        }
                        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();
                            if (!generiMezzi.Any(mezzo.Mezzo.Genere.Equals))
                            {
                                mezzo = null;
                                composizioneSquadre = null;
                            }
                        }
                        codiceDistaccamento = mezzo.Mezzo.Distaccamento.Codice;

                        if (mezzo.Mezzo.IdRichiesta != null)
                        {
                            GetRichiestaById    getRichiesta = new GetRichiestaById();
                            RichiestaAssistenza richiesta    = getRichiesta.Get(mezzo.Mezzo.IdRichiesta);
                            var ListaSquadre = richiesta.Partenze.Where(x => x.Partenza.Mezzo.Codice.Equals(mezzo.Id)).Select(x => x.Partenza.Squadre);
                            composizioneSquadre = composizioneSquadre.Where(x => ListaSquadre.Any(x.Squadra.Equals)).ToList();
                        }
                        else
                        {
                            composizioneSquadre = composizioneSquadre.Where(x => x.Squadra.Distaccamento.Codice == codiceDistaccamento).ToList();
                        }
                    }
                }
                if (query.Filtro.CodiceDistaccamento?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceDistaccamento[0]))
                {
                    composizioneSquadre = composizioneSquadre.Where(x => (query.Filtro.CodiceDistaccamento.Any(x.Squadra.Distaccamento.Codice.Equals))).ToList();
                }
                if (query.Filtro.CodiceSquadra?.Length > 0 && !string.IsNullOrEmpty(query.Filtro.CodiceSquadra[0]))
                {
                    composizioneSquadre = composizioneSquadre.Where(x => (query.Filtro.CodiceSquadra.Any(x.Squadra.Id.Equals))).ToList();
                }

                return(composizioneSquadre);
            }
            else
            {
                return(composizioneSquadre);
            }
        }