Esempio n. 1
0
        /// <summary>
        ///   metodo della classe
        /// </summary>
        /// <param name="command">il command con i parametri di ingresso</param>
        public void Handle(AddUtenteCommand command)
        {
            var personale     = _personaleByCF.Get(command.CodFiscale).Result;
            var listaPin      = new List <PinNodo>();
            var sediAlberate  = _getAlberaturaUnitaOperative.ListaSediAlberata();
            var distaccamento = _getDistaccamentoByCodiceSede.Get(personale.CodSede).Result;

            foreach (var ruolo in command.Ruoli)
            {
                listaPin.Add(new PinNodo(ruolo.CodSede, ruolo.Ricorsivo));
                foreach (var figli in sediAlberate.GetSottoAlbero(listaPin))
                {
                    if (figli.Codice.Equals(ruolo.CodSede))
                    {
                        ruolo.DescSede = figli.Nome;
                    }
                }
            }
            var utenteVVF = new Utente(command.CodFiscale, personale.Nominativo.Split(".")[0], personale.Nominativo.Split(".")[1])
            {
                Ruoli    = command.Ruoli,
                Username = personale.Nominativo.ToLower(),
                Password = "******",
                Sede     = new Sede($"{distaccamento.CodSede}", distaccamento.DescDistaccamento, distaccamento.Indirizzo, distaccamento.Coordinate, "", "", "", "", "")
            };

            _addUtente.Add(utenteVVF);
        }
Esempio n. 2
0
        private Squadra MapSqaudra(SquadraFake squadraFake, string CodSede)
        {
            Squadra.StatoSquadra Stato;

            switch (squadraFake.Stato)
            {
            case "L": Stato = Squadra.StatoSquadra.InSede; break;

            case "A": Stato = Squadra.StatoSquadra.SulPosto; break;

            case "R": Stato = Squadra.StatoSquadra.InRientro; break;

            default: Stato = Squadra.StatoSquadra.InSede; break;
            }

            var distaccamento = new Distaccamento();

            distaccamento = _getDistaccamentoByCodiceSedeUC.Get(squadraFake.Sede).Result;
            var sedeDistaccamento = new Sede(squadraFake.Sede, distaccamento.DescDistaccamento, distaccamento.Indirizzo, distaccamento.Coordinate, "", "", "", "", "");

            List <string>     ListaCodiciFiscaliComponentiSquadra = new List <string>();
            List <Componente> ComponentiSquadra = new List <Componente>();

            foreach (ComponenteSquadraFake componenteFake in squadraFake.ComponentiSquadra)
            {
                PersonaleVVF pVVf = _getPersonaleByCF.Get(componenteFake.CodiceFiscale).Result;

                Componente componente = new Componente(componenteFake.DescrizioneQualificaLunga,
                                                       pVVf.Nominativo, componenteFake.Tooltip, componenteFake.CapoPartenza, componenteFake.Autista, componenteFake.Rimpiazzo)
                {
                    CodiceFiscale   = pVVf.CodFiscale,
                    OrarioFine      = componenteFake.OrarioFine,
                    OrarioInizio    = componenteFake.OrarioInizio,
                    Telefono        = componenteFake.Telefono,
                    TecnicoGuardia1 = componenteFake.TecnicoGuardia1,
                    TecnicoGuardia2 = componenteFake.TecnicoGuardia2,
                    FunGuardia      = componenteFake.FunGuardia,
                    CapoTurno       = componenteFake.CapoTurno
                };
                ComponentiSquadra.Add(componente);
                ListaCodiciFiscaliComponentiSquadra.Add(pVVf.CodFiscale);
            }

            Squadra s = new Squadra(squadraFake.NomeSquadra, Stato, ComponentiSquadra, sedeDistaccamento);

            s.Id     = squadraFake.CodiceSquadra;
            s.Codice = squadraFake.CodiceSquadra;
            s.ListaCodiciFiscaliComponentiSquadra = ListaCodiciFiscaliComponentiSquadra;
            return(s);
        }
Esempio n. 3
0
        /// <summary>
        ///   metodo della classe
        /// </summary>
        /// <param name="command">il command con i parametri di ingresso</param>
        public void Handle(AddUtenteCommand command)
        {
            var utenteSO      = _getUtenteByCF.Get(command.CodFiscale);
            var personale     = _personaleByCF.Get(command.CodFiscale).Result;
            var listaPin      = new List <PinNodo>();
            var sediAlberate  = _getAlberaturaUnitaOperative.ListaSediAlberata();
            var distaccamento = _getDistaccamentoByCodiceSede.Get(personale.CodSede).Result;

            foreach (var ruolo in command.Ruoli)
            {
                listaPin.Add(new PinNodo(ruolo.CodSede, ruolo.Ricorsivo));
                foreach (var figli in sediAlberate.GetSottoAlbero(listaPin))
                {
                    if (figli.Codice.Equals(ruolo.CodSede))
                    {
                        ruolo.DescSede = figli.Nome;
                    }
                }
            }

            if (_checkOmonimia.FindUserByUs(personale.Nominativo.Replace(" ", "").ToLower()) != null)
            {
                personale.Nominativo = personale.Nominativo.Replace(" ", "").ToLower() + "1";
            }
            //Test di refresh chain
            var utenteVVF = new Utente(command.CodFiscale, personale.Nominativo.Split(".")[0], personale.Nominativo.Split(".")[1])
            {
                Ruoli    = command.Ruoli,
                Username = personale.Nominativo.Replace(" ", "").ToLower(),
                Password = "******",
                Sede     = new Sede($"{distaccamento.CodSede}", distaccamento.DescDistaccamento, distaccamento.Indirizzo, distaccamento.Coordinate, "", "", "", "", "")
            };

            if (utenteSO != null)
            {
                _addRuoli.Add(command.CodFiscale, command.Ruoli);
            }
            else
            {
                _addUtente.Add(utenteVVF);
            }
        }
Esempio n. 4
0
        public async Task <List <Squadra> > Get(List <string> sedi)
        {
            var pinNodi           = sedi.Select(s => new PinNodo(s, true));
            var ListaCodiciSedi   = new List <string>();
            var listaSediAlberate = _getAlberaturaUnitaOperative.ListaSediAlberata();

            foreach (var figlio in listaSediAlberate.GetSottoAlbero(pinNodi))
            {
                var    codice  = figlio.Codice;
                string codiceE = "";
                codiceE = ListaCodiciSedi.Find(x => x.Equals(codice));
                if (string.IsNullOrEmpty(codiceE))
                {
                    ListaCodiciSedi.Add(codice);
                }
            }

            #region LEGGO DA JSON FAKE

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

            #endregion LEGGO DA JSON FAKE

            //PAGINARE QUI LE SQUADRE
            var listaSquadreJson = JsonConvert.DeserializeObject <List <SquadraFake> >(json);

            var lstcodicifiscali = listaSquadreJson
                                   .SelectMany(c => c.ComponentiSquadra).Select(c => c.CodiceFiscale).Distinct().ToArray();

            var lstVVF = _getPersonaleByCF.Get(lstcodicifiscali, sedi.ToArray()).Result;

            var result = new List <Squadra>();

            Parallel.ForEach(ListaCodiciSedi, CodSede =>
            {
                var listaSquadraBySede = new List <Squadra>();
                if (!_memoryCache.TryGetValue("listaSquadre-" + CodSede, out listaSquadraBySede))
                {
                    #region LEGGO DA API ESTERNA

                    //_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("test");
                    //var response = await _client.GetAsync($"{_configuration.GetSection("DataFakeImplementation").GetSection("UrlAPISquadre").Value}/GetListaSquadreByCodComando?CodComando={CodSede}").ConfigureAwait(false);
                    //response.EnsureSuccessStatusCode();
                    //using HttpContent content = response.Content;

                    //string data = await content.ReadAsStringAsync().ConfigureAwait(false);
                    //List<SquadraFake> ListaSquadreSede = JsonConvert.DeserializeObject<List<SquadraFake>>(data);

                    #endregion LEGGO DA API ESTERNA

                    var ListaSquadreSede = listaSquadreJson.FindAll(x => x.Sede.Equals(CodSede));

                    var listaSquadraBySedeAppo = new List <Squadra>();

                    foreach (var squadraFake in ListaSquadreSede)
                    {
                        Squadra squadra;
                        lock (squadraFake) squadra = MapSqaudra(squadraFake, lstVVF);

                        listaSquadraBySedeAppo.Add(squadra);

                        lock (result) result.Add(squadra);
                    }

                    var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromHours(4));
                    _memoryCache.Set("listaSquadre-" + CodSede, listaSquadraBySedeAppo, cacheEntryOptions);
                }
                else
                {
                    lock (result) { result.AddRange(listaSquadraBySede); }
                }
            });

            return(result);
        }
Esempio n. 5
0
        private List <Squadra> MapListaSquadreOraInMongoDB(List <ORASquadre> ListaSquadreOracle, List <ORAPersonaleSquadre> ListaPersonaleSquadre, string CodSede)
        {
            List <Squadra>             ListaSquadre = new List <Squadra>();
            List <ORAPersonaleSquadre> ListOraPS    = new List <ORAPersonaleSquadre>();

            foreach (ORASquadre OraS in ListaSquadreOracle)
            {
                List <Distaccamento> distaccamenti = _getListaDistaccamentiByCodiceSede.GetListaDistaccamenti(CodSede);
                var distaccamentoCoordinate        = distaccamenti.Find(x => x.CodDistaccamento.Equals(Decimal.ToInt32(OraS.COD_DISTACCAMENTO)));

                var distaccamento = new Distaccamento();
                distaccamento = _getDistaccamentoByCodiceSedeUC.Get(CodSede + "." + OraS.COD_DISTACCAMENTO.ToString()).Result;
                Sede sedeDistaccamento;
                if (distaccamento != null)
                {
                    sedeDistaccamento = new Sede(CodSede.ToString() + "." + distaccamento.CodDistaccamento.ToString(), distaccamento.DescDistaccamento, distaccamento.Indirizzo, distaccamentoCoordinate.Coordinate, "", "", "", "", "");
                    Squadra.StatoSquadra Stato;

                    switch (OraS.STATO.ToString())
                    {
                    case "L": Stato = Squadra.StatoSquadra.InSede; break;

                    case "A": Stato = Squadra.StatoSquadra.SulPosto; break;

                    case "R": Stato = Squadra.StatoSquadra.InRientro; break;

                    default: Stato = Squadra.StatoSquadra.InSede; break;
                    }

                    Stato = Squadra.StatoSquadra.InSede;

                    List <Componente> ComponentiSquadra = new List <Componente>();
                    List <string>     ListaCodiciFiscaliComponentiSquadra = new List <string>();
                    ListOraPS = ListaPersonaleSquadre.FindAll(x => x.COD_SQUADRA.Equals(OraS.COD_SQUADRA));
                    if (ListOraPS.Count > 0)
                    //if (!istOraPS.Any())
                    {
                        foreach (ORAPersonaleSquadre p in ListOraPS)
                        {
                            PersonaleVVF pVVf = _getPersonaleByCF.Get(p.MATDIP, CodSede).Result;

                            bool capoPartenza = false; bool autista = false;
                            if (p.FLAG_CAPO_SQUADRA.Equals("S"))
                            {
                                capoPartenza = true;
                            }
                            if (p.AUTISTA.Equals("S"))
                            {
                                autista = true;
                            }
                            Componente c = new Componente(p.QUALIFICA_ABBREV, pVVf.Nominativo, pVVf.Nominativo, capoPartenza, autista, false)
                            {
                                CodiceFiscale = pVVf.CodFiscale,
                            };
                            if (p.ORA_INIZIO.HasValue)
                            {
                                c.OrarioInizio = (DateTime)p.ORA_INIZIO;
                            }
                            if (p.ORA_FINE.HasValue)
                            {
                                c.OrarioInizio = (DateTime)p.ORA_FINE;
                            }

                            ComponentiSquadra.Add(c);
                            ListaCodiciFiscaliComponentiSquadra.Add(p.MATDIP);
                        }
                    }
                    Squadra squadra = new Squadra(OraS.SIGLA, Stato, ComponentiSquadra, sedeDistaccamento);
                    squadra.Id = OraS.COD_SQUADRA.ToString();

                    squadra.ListaCodiciFiscaliComponentiSquadra = ListaCodiciFiscaliComponentiSquadra;
                    ListaSquadre.Add(squadra);
                }
                else
                {
                    //Se il distaccamento è vuoto non viene aggiunta la squadra
                }
            }

            return(ListaSquadre);
        }