/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="ruoloSmistamento"></param> /// <param name="descrizione"></param> /// <returns></returns> protected DocsPaWR.datiAggiuntiviSmistamento[] GetDatiAggiuntivi(string id, DocsPaWR.RuoloSmistamento ruoloSmistamento, out string descrizione) { descrizione = string.Empty; DocsPaWR.datiAggiuntiviSmistamento[] datiAggiuntivi = null; if (ruoloSmistamento.ID == id) { datiAggiuntivi = new datiAggiuntiviSmistamento[1] { ruoloSmistamento.datiAggiuntiviSmistamento }; descrizione = ruoloSmistamento.Descrizione; } else { foreach (DocsPaWR.UtenteSmistamento utente in ruoloSmistamento.Utenti) { if (utente.ID == id) { if (utente.FlagCompetenza || utente.FlagConoscenza) { datiAggiuntivi = new datiAggiuntiviSmistamento[1] { utente.datiAggiuntiviSmistamento }; descrizione = utente.Denominazione; break; } } } } return(datiAggiuntivi); }
/// <summary> /// </summary> /// <param name="uoSmistamento"></param> /// <param name="descrizione"></param> /// <param name="id"></param> /// <returns></returns> protected DocsPaWR.datiAggiuntiviSmistamento[] GetDatiAggiuntivi(string id, out string descrizione, params DocsPaWR.UOSmistamento[] uoSmistamento) { descrizione = string.Empty; DocsPaWR.datiAggiuntiviSmistamento[] datiAggiuntivi = null; if (uoSmistamento != null) { foreach (DocsPaWR.UOSmistamento uo in uoSmistamento) { if (uo.ID == id) { descrizione = uo.Descrizione; // L'id fa riferimento ad una UO, le quali non dispongono dei dati aggiuntivi. // In tal caso, si ricercano i dati aggiuntivi di tutti i ruoli di riferimento della stessa. DocsPaWR.RuoloSmistamento[] ruoliRiferimento = uo.Ruoli.Where(e => e.RuoloRiferimento).ToArray(); datiAggiuntivi = new datiAggiuntiviSmistamento[ruoliRiferimento.Length]; for (int i = 0; i < ruoliRiferimento.Length; i++) { datiAggiuntivi[i] = ruoliRiferimento[i].datiAggiuntiviSmistamento; } break; } else { foreach (DocsPaWR.RuoloSmistamento ruolo in uo.Ruoli) { datiAggiuntivi = this.GetDatiAggiuntivi(id, ruolo, out descrizione); if (datiAggiuntivi != null) { break; } } if (datiAggiuntivi == null) { datiAggiuntivi = this.GetDatiAggiuntivi(id, out descrizione, uo.UoInferiori); if (datiAggiuntivi != null) { break; } } if (datiAggiuntivi != null) { break; } } } } return(datiAggiuntivi); }