/// <summary> /// Aggiornamento visibilità di più ruoli su un titolario /// </summary> /// <param name="nodoTitolario"></param> /// <param name="ruoliTitolario"></param> /// <returns></returns> public DocsPaVO.amministrazione.EsitoOperazione[] SetAclNodoTitolario(OrgNodoTitolario nodoTitolario, OrgRuoloTitolario[] ruoliTitolario) { List <EsitoOperazione> retValue = new List <EsitoOperazione>(); using (DocsPaDB.Query_DocsPAWS.Amministrazione amm = new DocsPaDB.Query_DocsPAWS.Amministrazione()) { foreach (OrgRuoloTitolario ruolo in ruoliTitolario) { bool containsAssociazione = (amm.ContainsAssociazioneRuoloTitolario(nodoTitolario.ID, ruolo.ID)); if (ruolo.Associato && containsAssociazione) { // L'associazione tra ruolo e nodo titolario già esiste retValue.Add( new EsitoOperazione { Codice = Convert.ToInt32(ruolo.ID), Descrizione = string.Format("Ruolo '{0}' in titolario '{1}':{2}Visibilità già presente", ruolo.Codice, nodoTitolario.Codice, Environment.NewLine) }); } else if (!ruolo.Associato && !containsAssociazione) { // L'associazione tra ruolo e nodo titolario è già stata rimossa retValue.Add( new EsitoOperazione { Codice = Convert.ToInt32(ruolo.ID), Descrizione = string.Format("Ruolo '{0}' in titolario '{1}':{2}Visibilità già rimossa", ruolo.Codice, nodoTitolario.Codice, Environment.NewLine) }); } // Aggiornamento della visibilità di ciascun ruolo nel nodo di titolario else if (!amm.UpdateRuoloTitolario(nodoTitolario.ID, ruolo.ID, ruolo.Associato)) { // Impostazione della visibilità per il ruolo non è andata a buon fine, // nell'attributo Codice dell'oggetto "EsitoOperazione" viene impostato // l'id del ruolo per cui si è verificato l'errore retValue.Add( new EsitoOperazione { Codice = Convert.ToInt32(ruolo.ID), Descrizione = string.Format("Ruolo '{0}' in titolario '{1}':{2}Aggiornamento visibilità non andato a buon fine", ruolo.Codice, nodoTitolario.Codice, Environment.NewLine) }); } else { // Impostazione della visibilità per il ruolo completata con successo string operazione = string.Empty; if (ruolo.Associato) { operazione = "impostata"; } else { operazione = "rimossa"; } retValue.Add( new EsitoOperazione { Codice = 0, Descrizione = string.Format("Ruolo '{0}' in titolario '{1}':{2}Visibilità {3} correttamente", ruolo.Codice, nodoTitolario.Codice, Environment.NewLine, operazione) }); } } } return(retValue.ToArray()); }