/// <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); }
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); }
/// <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); } }
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); }
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); }