/// <summary> /// /// </summary> /// <param name="ruolo"></param> /// <returns></returns> public EsitoOperazione InserisciRuolo(OrgRuolo ruolo, bool computeAtipicita) { DocsPaDB.Query_DocsPAWS.Amministrazione dbAmm = new DocsPaDB.Query_DocsPAWS.Amministrazione(); DocsPaVO.amministrazione.EsitoOperazione esito = new DocsPaVO.amministrazione.EsitoOperazione(); //verifica se il codice è univoco sulla corr_globali DocsPaDB.Query_DocsPAWS.AmministrazioneXml obj = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); if (!obj.CheckCountCondition("DPA_CORR_GLOBALI", "UPPER(VAR_CODICE)=UPPER('" + ruolo.Codice + "') AND ID_AMM=" + ruolo.IDAmministrazione)) { esito.Codice = 1; esito.Descrizione = "codice già utilizzato da altro ruolo"; } else { //verifica se il codice è univoco sulla groups if (!obj.CheckCountCondition("GROUPS", "UPPER(GROUP_ID)=UPPER('" + ruolo.Codice + "')")) { esito.Codice = 2; esito.Descrizione = "codice già utilizzato da altro gruppo"; } else { if (!dbAmm.AmmInsNuovoRuolo(ruolo)) { esito.Codice = 3; esito.Descrizione = "si è verificato un errore: inserimento del ruolo"; } //verifica se si vuole disabilitare alla ricezione delle trasmissioni un ruolo di riferimento if (ruolo.DiRiferimento.ToString().Equals("1") && ruolo.DisabledTrasm.ToString().Equals("1")) { esito.Codice = 4; esito.Descrizione = "Impossibile disabilitare alla ricezione delle trasmissioni un ruolo di riferimento"; } } } // Se è richiesto il calcolo dell'atipicità, viene richiamata la procedura if (esito.Codice == 0 && computeAtipicita) { try { using (DocsPaDB.Query_DocsPAWS.Documentale doc = new DocsPaDB.Query_DocsPAWS.Documentale()) doc.CalcolaAtipicitaRuoliSottoposti(ruolo); } catch (Exception e) { esito.Codice = 5; esito.Descrizione = "Errore durante il calcolo di atipicità su documenti e fascicoli dei ruoli sottoposti"; } } obj = null; dbAmm = null; return(esito); }