public void GetRuoliRiferimentoEsterni(out DataSet dataSet, DocsPaVO.addressbook.QueryCorrispondenteAutorizzato qc, DocsPaVO.utente.UnitaOrganizzativa uo) { DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO3"); string idUO = uo.systemId; string strWhere = ""; //condizione sulle autorizzazioni (registro, nodo di titolario) //condizione sulla gerarchia //elisa e sabri System.Collections.ArrayList ListaUO = new System.Collections.ArrayList(); if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); ListaUO = gerarchia.getParentUO(qc.ruolo); ListaUO.Add(qc.ruolo.uo.systemId); } else if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); ListaUO = gerarchia.getChildrenUO(qc.ruolo); ListaUO.Add(qc.ruolo.uo.systemId); } else if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString()) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); ListaUO = gerarchia.getPariUO(qc.ruolo); ListaUO.Add(qc.ruolo.uo.systemId); } else { // DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); ListaUO = null; // ListaUO.Add(qc.ruolo.uo.systemId); } // strWhere = getQueryAut(qc.tipoOggetto,qc.idRegistro,qc.idNodoTitolario,qc.ruolo,null,qc.ragione.tipoDestinatario.ToString()); strWhere = getQueryAut(qc.tipoOggetto, null, qc.idNodoTitolario, qc.ruolo, ListaUO, qc.ragione.tipoDestinatario.ToString()); strWhere += " AND A.CHA_TIPO_URP='R' AND A.ID_UO=" + idUO + " AND A.CHA_TIPO_IE = 'I'"; if (qc.queryCorrispondente != null && qc.queryCorrispondente.fineValidita) { strWhere += " AND A.DTA_FINE IS NULL"; } q.setParam("param1", strWhere); string sql = q.getSQL(); logger.Debug(sql); this.ExecuteQuery(out dataSet, "RUOLI_RIF_EST", sql); }
public void filtra_trasmissioni(DocsPaVO.rubrica.ParametriRicercaRubrica qr, ref ArrayList ers) { ArrayList a = new ArrayList(); ArrayList ruoli_autorizzati = new ArrayList(); DocsPaVO.trasmissione.TipoOggetto tipo_oggetto; tipo_oggetto = (qr.ObjectType.StartsWith("F:")) ? DocsPaVO.trasmissione.TipoOggetto.FASCICOLO : DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; string id_nodo_titolario = (tipo_oggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) ? qr.ObjectType.Substring(2) : null; DocsPaVO.utente.Ruolo r = BusinessLogic.Utenti.UserManager.getRuolo(qr.caller.IdRuolo); DocsPaDB.Utils.Gerarchia g = new DocsPaDB.Utils.Gerarchia(); switch (qr.calltype) { case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_MODELLI_TRASM_ALL: case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_TRASM_ALL: ruoli_autorizzati = g.getRuoliAut(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_MODELLI_TRASM_SUP: case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_TRASM_SUP: ruoli_autorizzati = g.getGerarchiaSup(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_MODELLI_TRASM_INF: case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_TRASM_INF: ruoli_autorizzati = g.getGerarchiaInf(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_MODELLI_TRASM_PARILIVELLO: case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_TRASM_PARILIVELLO: ruoli_autorizzati = g.getGerarchiaPariLiv(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.rubrica.ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_INT_DEST: DocsPaVO.trasmissione.RagioneTrasmissione rTo = BusinessLogic.Trasmissioni.RagioniManager.GetRagione("TO", _user.idAmministrazione); DocsPaVO.trasmissione.TipoGerarchia gTo = rTo.tipoDestinatario; switch (gTo) { case DocsPaVO.trasmissione.TipoGerarchia.INFERIORE: ruoli_autorizzati = g.getGerarchiaInf(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO: ruoli_autorizzati = g.getGerarchiaPariLiv(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE: ruoli_autorizzati = g.getGerarchiaSup(r, qr.caller.IdRegistro, id_nodo_titolario, tipo_oggetto); break; case DocsPaVO.trasmissione.TipoGerarchia.TUTTI: ruoli_autorizzati = g.getRuoliAut(r, qr.caller.IdRegistro, null, tipo_oggetto); break; } break; default: return; } string[] c_ruoli_aut = new string[ruoli_autorizzati.Count]; for (int i = 0; i < ruoli_autorizzati.Count; i++) { c_ruoli_aut[i] = ((DocsPaVO.utente.Ruolo)ruoli_autorizzati[i]).codiceRubrica; } Array.Sort(c_ruoli_aut); foreach (DocsPaVO.rubrica.ElementoRubrica er in ers) { try { switch (er.tipo) { case "U": if (uo_is_autorizzata((er.interno ? "I" : "E") + @"\" + er.codice, r, c_ruoli_aut) || (qr.ObjectType == "G")) { a.Add(er); } break; case "R": if (ruolo_is_autorizzato(er.codice, c_ruoli_aut) || (qr.ObjectType == "G")) { a.Add(er); } break; case "P": if (utente_is_autorizzato((er.interno ? "I" : "E") + @"\" + er.codice, c_ruoli_aut) || (qr.ObjectType == "G")) { a.Add(er); } break; case "L": case "F": //if (utente_is_autorizzato ((er.interno ? "I" : "E") + @"\" + er.codice, c_ruoli_aut) || (qr.ObjectType == "G")) a.Add(er); break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } ers = a; }
public string GeneratePrintByRanges(string anno, string counterId, string numRepStart, string numRepEnd, string idRegistro, string dataStampa, bool ultimastampa) { string retVal = ""; logger.Info("START"); DocsPaDB.Query_DocsPAWS.Conservazione dbCons = new DocsPaDB.Query_DocsPAWS.Conservazione(); // uguale al metodo precedente tranne che per questo pezzo. //DocsPaVO.areaConservazione.StampaRegistro stReg = dbCons.getInfoStampaReperiorio(idDoc); DocsPaVO.areaConservazione.StampaRegistro stReg = new DocsPaVO.areaConservazione.StampaRegistro(); stReg.anno = anno; stReg.idRepertorio = counterId; stReg.numProtoStart = numRepStart; if (!string.IsNullOrEmpty(numRepEnd)) { stReg.numProtoEnd = numRepEnd; } stReg.idRegistro = idRegistro; stReg.dtaStampaTruncString = dataStampa; DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager manager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); List <RegistroRepertorioPrint> reg1 = manager.GetRegistersToPrintByCounter(stReg.idRepertorio); foreach (RegistroRepertorioPrint print in reg1) { if (print.RegistryId == stReg.idRegistro || print.RFId == stReg.idRegistro) { logger.DebugFormat("Stampa del repertorio {0} della tipologia {5}, per l'anno {1}, su registro {2} o RF {3}, responsabile {4}", print.CounterDescription, stReg.anno, print.RegistryId, print.RFId, print.PrinterUser.userId, print.TipologyDescription); InfoUtente userInfo = new InfoUtente() { idAmministrazione = print.PrinterUser.idAmministrazione, idCorrGlobali = print.PrinterUser.systemId, idGruppo = print.PrinterRole.idGruppo, idPeople = print.PrinterUser.idPeople, userId = print.PrinterUser.userId }; //RepertorioPrintRange rpr = manager.GetRepertoriPrintRangesByYear(counterId, print.RegistryId, print.RFId, year); // Generazione filtri per la stampa List <FiltroRicerca> filters = null; string minX = stReg.numProtoStart; if (!ultimastampa) { string maxX = stReg.numProtoEnd; logger.DebugFormat("Limite inferiore {0}, superiore {1}", minX, maxX); filters = new List <FiltroRicerca>() { new FiltroRicerca() { argomento = "idCounter", valore = stReg.idRepertorio }, new FiltroRicerca() { argomento = "idRegistry", valore = print.RegistryId }, new FiltroRicerca() { argomento = "idRf", valore = print.RFId }, new FiltroRicerca() { argomento = "year", valore = stReg.anno }, new FiltroRicerca() { argomento = "lastPrintedNumber", valore = minX }, new FiltroRicerca() { argomento = "lastNumberToPrint", valore = maxX }, new FiltroRicerca() { argomento = "RECUPERO_evitaMod", valore = "true" } }; } else { logger.DebugFormat("Limite inferiore {0}", minX); filters = new List <FiltroRicerca>() { new FiltroRicerca() { argomento = "idCounter", valore = stReg.idRepertorio }, new FiltroRicerca() { argomento = "idRegistry", valore = print.RegistryId }, new FiltroRicerca() { argomento = "idRf", valore = print.RFId }, new FiltroRicerca() { argomento = "year", valore = stReg.anno }, new FiltroRicerca() { argomento = "lastPrintedNumber", valore = minX } }; } // Creazione della stampa FileDocumento fileDocument = BusinessLogic.Reporting.ReportGeneratorCommand.GetReport( new DocsPaVO.Report.PrintReportRequest() { UserInfo = userInfo, SearchFilters = filters, ReportType = DocsPaVO.Report.ReportTypeEnum.PDF, ReportKey = "StampaRegistriRepertori", ContextName = "StampaRegistriRepertori", AdditionalInformation = String.Format(" Stampa del repertorio per l'anno {0} dal n. {1} al n. {2} - stampa di recupero del giorno {3}. La presente stampa riporta tutte le registrazioni giornaliere di repertorio nell'intervallo indicato. Si è resa necessaria in quanto problematiche tecniche del sistema avevano inizialmente impedito la corretta stampa.", stReg.anno, minX, numRepEnd, dataStampa) }).Document; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { if (userInfo != null && string.IsNullOrEmpty(userInfo.dst)) { userInfo.dst = BusinessLogic.Utenti.UserManager.getSuperUserAuthenticationToken(); } // Reperimento del nome della tipologia string tipologia = manager.GetNomeTipologia(stReg.idRepertorio); // Creazione della scheda documento SchedaDocumento document = InitializeDocument(userInfo, print.RegistryId, print.RFId, stReg.anno, minX, numRepEnd, tipologia); document.oggetto.descrizione += " - RECUPERO"; Ruolo[] roles = new Ruolo[] { }; // Salvataggio del documento String docNumber = this.SaveDocument(userInfo, print.PrinterRole, document, fileDocument, out roles); if (String.IsNullOrEmpty(docNumber)) { throw new Exception("Errore durante la creazione della stampa"); } retVal = docNumber; // Aggiornamento del registro delle stampe e del prossimo numero da stampare if (!manager.UpdatePrinterManager(stReg.idRepertorio, minX, numRepEnd, docNumber, print.RegistryId, print.RFId, stReg.anno)) { throw new Exception("Errore durante l'aggiornamento dell'anagrafica delle stampe effettuate"); } int rights = 0; // Assegnazione della visibilità della stampa al responsabile di repertorio (se impostato) if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToResponsable(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, out rights)) { throw new Exception("Errore assegnazione visiblità a ruolo responsabile"); } // Se ci sono ruoli superiori, viene assegnata la visibilità foreach (Ruolo r in roles) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } //assegnazione visibilità nel caso di repertori di tipologia/RF if ((string.IsNullOrEmpty(print.RFId) && string.IsNullOrEmpty(print.RegistryId)) || (!string.IsNullOrEmpty(print.RFId))) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); object[] supRolePrinter = gerarchia.getGerarchiaSup(print.PrinterRole, ((DocsPaVO.utente.Registro)print.PrinterRole.registri[0]).systemId, null, DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO).ToArray(); foreach (Ruolo r in supRolePrinter) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } } // Completamento transazione transactionContext.Complete(); } if (!string.IsNullOrEmpty(retVal)) { DocsPaDB.Query_DocsPAWS.Report dbreport = new DocsPaDB.Query_DocsPAWS.Report(); dbreport.UpdStampaExp(retVal, stReg.dtaStampaTruncString); } } } return(retVal); }
/// <summary> /// /// </summary> /// <param name="counterId"></param> /// <param name="registryId"></param> /// <param name="rfId"></param> /// <param name="userInfo"></param> /// <param name="role"></param> /// <param name="year"></param> /// <param name="lastPrintedNumber"></param> /// <param name="lastNumberToPrint"></param> public void GeneratePrint(String counterId, String registryId, String rfId, InfoUtente userInfo, Ruolo role, String year, String lastPrintedNumber, String lastNumberToPrint) { RegistriRepertorioPrintManager manager = new RegistriRepertorioPrintManager(); // Generazione filtri per la stampa List <FiltroRicerca> filters = new List <FiltroRicerca>() { new FiltroRicerca() { argomento = "idCounter", valore = counterId }, new FiltroRicerca() { argomento = "idRegistry", valore = registryId }, new FiltroRicerca() { argomento = "idRf", valore = rfId }, new FiltroRicerca() { argomento = "year", valore = year }, new FiltroRicerca() { argomento = "lastPrintedNumber", valore = lastPrintedNumber }, new FiltroRicerca() { argomento = "lastNumberToPrint", valore = lastNumberToPrint } }; // Creazione della stampa FileDocumento fileDocument = BusinessLogic.Reporting.ReportGeneratorCommand.GetReport( new DocsPaVO.Report.PrintReportRequest() { UserInfo = userInfo, SearchFilters = filters, ReportType = DocsPaVO.Report.ReportTypeEnum.PDF, ReportKey = "StampaRegistriRepertori", ContextName = "StampaRegistriRepertori", AdditionalInformation = String.Format("Stampa del repertorio per l'anno {0} dal n. {1} al n. {2}", year, Convert.ToInt32(lastPrintedNumber), lastNumberToPrint) }).Document; // Apertura di un contesto transazionale using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { if (userInfo != null && string.IsNullOrEmpty(userInfo.dst)) { userInfo.dst = BusinessLogic.Utenti.UserManager.getSuperUserAuthenticationToken(); } // Reperimento del nome della tipologia string tipologia = manager.GetNomeTipologia(counterId); // Creazione della scheda documento SchedaDocumento document = InitializeDocument(userInfo, registryId, rfId, year, lastPrintedNumber, lastNumberToPrint, tipologia); Ruolo[] roles = new Ruolo[] { }; // Salvataggio del documento String docNumber = this.SaveDocument(userInfo, role, document, fileDocument, out roles); if (String.IsNullOrEmpty(docNumber)) { throw new Exception("Errore durante la creazione della stampa"); } // Aggiornamento del registro delle stampe e del prossimo numero da stampare if (!manager.UpdatePrinterManager(counterId, lastPrintedNumber, lastNumberToPrint, docNumber, registryId, rfId, year)) { throw new Exception("Errore durante l'aggiornamento dell'anagrafica delle stampe effettuate"); } int rights = 0; // Assegnazione della visibilità della stampa al responsabile di repertorio (se impostato) if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToResponsable(userInfo, docNumber, counterId, rfId, registryId, out rights)) { throw new Exception("Errore assegnazione visiblità a ruolo responsabile"); } // Se ci sono ruoli superiori, viene assegnata la visibilità foreach (Ruolo r in roles) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, counterId, rfId, registryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } //assegnazione visibilità nel caso di repertori di tipologia/RF if ((string.IsNullOrEmpty(rfId) && string.IsNullOrEmpty(registryId)) || (!string.IsNullOrEmpty(rfId))) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); object[] supRolePrinter = gerarchia.getGerarchiaSup(role, ((DocsPaVO.utente.Registro)role.registri[0]).systemId, null, DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO).ToArray(); foreach (Ruolo r in supRolePrinter) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, counterId, rfId, registryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } } // Invio in conservazione Conservazione.ConservazioneManager cons = new Conservazione.ConservazioneManager(); if (cons.GetStatoAttivazione(userInfo.idAmministrazione) && this.IsStampaRepDaConservare(counterId)) { this.InviaInConservazione(docNumber, userInfo.idAmministrazione); } // Completamento transazione transactionContext.Complete(); } }
public void GeneratePrintByYear(string counterId, string year) { logger.Info("START"); DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager manager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); List <RegistroRepertorioPrint> reg1 = manager.GetRegistersToPrintByCounter(counterId); foreach (RegistroRepertorioPrint print in reg1) { logger.DebugFormat("Stampa del repertorio {0} della tipologia {5}, per l'anno {1}, su registro {2} o RF {3}, responsabile {4}", print.CounterDescription, year, print.RegistryId, print.RFId, print.PrinterUser.userId, print.TipologyDescription); InfoUtente userInfo = new InfoUtente() { idAmministrazione = print.PrinterUser.idAmministrazione, idCorrGlobali = print.PrinterUser.systemId, idGruppo = print.PrinterRole.idGruppo, idPeople = print.PrinterUser.idPeople, userId = print.PrinterUser.userId }; RepertorioPrintRange rpr = manager.GetRepertoriPrintRangesByYear(counterId, print.RegistryId, print.RFId, year); // Generazione filtri per la stampa if (rpr != null && rpr.LastNumber != null && rpr.LastNumber != 0 && (rpr.LastNumber - rpr.FirstNumber) > 0) { string minX = rpr.FirstNumber.ToString(); string maxX = rpr.LastNumber.ToString(); logger.DebugFormat("Limite inferiore {0}, superiore {1}", minX, maxX); List <FiltroRicerca> filters = new List <FiltroRicerca>() { new FiltroRicerca() { argomento = "idCounter", valore = counterId }, new FiltroRicerca() { argomento = "idRegistry", valore = print.RegistryId }, new FiltroRicerca() { argomento = "idRf", valore = print.RFId }, new FiltroRicerca() { argomento = "year", valore = year }, new FiltroRicerca() { argomento = "lastPrintedNumber", valore = minX }, new FiltroRicerca() { argomento = "lastNumberToPrint", valore = maxX } }; // Creazione della stampa FileDocumento fileDocument = BusinessLogic.Reporting.ReportGeneratorCommand.GetReport( new DocsPaVO.Report.PrintReportRequest() { UserInfo = userInfo, SearchFilters = filters, ReportType = DocsPaVO.Report.ReportTypeEnum.PDF, ReportKey = "StampaRegistriRepertori", ContextName = "StampaRegistriRepertori", AdditionalInformation = String.Format(" Stampa del repertorio per l'anno {0} dal n. {1} al n. {2}. La presente stampa riporta tutte le registrazioni giornaliere di repertorio nell'intervallo indicato. Si è resa necessaria in quanto problematiche tecniche del sistema avevano inizialmente impedito la regolare stampa.", year, minX, maxX) }).Document; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { if (userInfo != null && string.IsNullOrEmpty(userInfo.dst)) { userInfo.dst = BusinessLogic.Utenti.UserManager.getSuperUserAuthenticationToken(); } // Reperimento del nome della tipologia string tipologia = manager.GetNomeTipologia(counterId); // Creazione della scheda documento SchedaDocumento document = InitializeDocument(userInfo, print.RegistryId, print.RFId, year, minX, maxX, tipologia); document.oggetto.descrizione += " - RECUPERO"; Ruolo[] roles = new Ruolo[] { }; // Salvataggio del documento String docNumber = this.SaveDocument(userInfo, print.PrinterRole, document, fileDocument, out roles); if (String.IsNullOrEmpty(docNumber)) { throw new Exception("Errore durante la creazione della stampa"); } // Aggiornamento del registro delle stampe e del prossimo numero da stampare if (!manager.UpdatePrinterManager(counterId, minX, maxX, docNumber, print.RegistryId, print.RFId, year)) { throw new Exception("Errore durante l'aggiornamento dell'anagrafica delle stampe effettuate"); } int rights = 0; // Assegnazione della visibilità della stampa al responsabile di repertorio (se impostato) if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToResponsable(userInfo, docNumber, counterId, print.RFId, print.RegistryId, out rights)) { throw new Exception("Errore assegnazione visiblità a ruolo responsabile"); } // Se ci sono ruoli superiori, viene assegnata la visibilità foreach (Ruolo r in roles) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, counterId, print.RFId, print.RegistryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } //assegnazione visibilità nel caso di repertori di tipologia/RF if ((string.IsNullOrEmpty(print.RFId) && string.IsNullOrEmpty(print.RegistryId)) || (!string.IsNullOrEmpty(print.RFId))) { DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia(); object[] supRolePrinter = gerarchia.getGerarchiaSup(print.PrinterRole, ((DocsPaVO.utente.Registro)print.PrinterRole.registri[0]).systemId, null, DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO).ToArray(); foreach (Ruolo r in supRolePrinter) { if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, counterId, print.RFId, print.RegistryId, r.idGruppo, rights)) { throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice)); } } } // Completamento transazione transactionContext.Complete(); } } } }