/// <summary> /// Costruttore della classe /// </summary> /// <param name="numeroMezzi">Il numero dei mezzi costituente il parco</param> /// <param name="codiceUnitaOperativa"> /// L'unità operativa alla quale appartengono i mezzi (l'etichetta viene usata per creare /// il codice di un mezzo) /// </param> public ParcoMezzi(IGetMezziInServizioPerUnitaOperativa getMezziInServizioPerUnitaOperativa, string codiceUnitàOperativa) { var pinNodo = new PinNodo(codiceUnitàOperativa, true); var mezzi = getMezziInServizioPerUnitaOperativa.Get(new[] { pinNodo }); this.mezzi = mezzi.Select(m => new MezzoInSimulazione(m)).ToArray(); }
public List <string> GetGerarchiaSede(string codSedeDiPartenza, string[] CodSediAllertate = null) { var listaSediAlberata = _getAlberaturaUnitaOperative.ListaSediAlberata(); var pin = new PinNodo(codSedeDiPartenza); var pinNodi = new List <PinNodo>(); pinNodi.Add(pin); var UnitaOperativaAnagrafica = listaSediAlberata.GetSottoAlbero(pinNodi); List <string> ListaCodiciSediInteressate = new List <string>(); UnitaOperativa unitaperativa = new UnitaOperativa(codSedeDiPartenza, UnitaOperativaAnagrafica.ToList()[0].Nome) { Figli = UnitaOperativaAnagrafica.ToList()[0].Figli }; foreach (var direzioneRegionale in listaSediAlberata.Figli) { if (direzioneRegionale.Figli.ToList().Contains(unitaperativa)) { ListaCodiciSediInteressate.Add(direzioneRegionale.Codice); ListaCodiciSediInteressate.Add(unitaperativa.Codice); } else { foreach (var comune in direzioneRegionale.Figli) { if (comune.Figli.ToList().Contains(unitaperativa)) { ListaCodiciSediInteressate.Add(direzioneRegionale.Codice); ListaCodiciSediInteressate.Add(comune.Codice); ListaCodiciSediInteressate.Add(unitaperativa.Codice); } } } } if (CodSediAllertate != null) { foreach (var sede in CodSediAllertate) { ListaCodiciSediInteressate.Add(sede); } } return(ListaCodiciSediInteressate); }
private List <PinNodo> GetGerarchia(string[] CodSede) { var listaPin = new List <PinNodo>(); var sediAlberate = _getAlberaturaUnitaOperative.ListaSediAlberata(); foreach (var sede in CodSede) { listaPin.Add(new PinNodo(sede, true)); foreach (var figlio in sediAlberate.GetSottoAlbero(listaPin)) { PinNodo fgl = new PinNodo(figlio.Codice, true); listaPin.Add(fgl); } } return(listaPin); }
public bool Check(List <Role> ruoliDaAggiungere, string codiceFiscaleUtenteDaControllare) { var utente = _getUtenteByCF.Get(codiceFiscaleUtenteDaControllare); if (utente != null) { var listaSediAlberate = _getListaUO.ListaSediAlberata(); List <Role> listaRuoliEsplosaPerRicorsivita = new List <Role>(); foreach (var ruolo in utente.Ruoli) { var listaPin = new List <PinNodo>(); PinNodo pin = new PinNodo(ruolo.CodSede, ruolo.Ricorsivo); listaPin.Add(pin); foreach (var unita in listaSediAlberate.GetSottoAlbero(listaPin)) { Role ruoloEsploso = new Role(ruolo.Descrizione, unita.Codice); listaRuoliEsplosaPerRicorsivita.Add(ruoloEsploso); } } var risultato = listaRuoliEsplosaPerRicorsivita.Where(o => ruoliDaAggiungere.Any(s => o.CodSede.Equals(s.CodSede) && o.Descrizione.Equals(s.Descrizione))).ToList(); if (risultato.Count > 0) { return(false); } else { return(true); } } else { return(true); } }