/// <summary> /// </summary> /// <param name="db"></param> /// <param name="idProject"></param> /// <param name="debug"></param> /// <returns></returns> internal static ArrayList getVisibilita(/*DocsPaWS.Utils.Database db,*/ string idProject, bool cercaRimossi, string rootFolder) { System.Collections.ArrayList listaDiritti = new System.Collections.ArrayList(); //query distinte per i ruoli e per gli utenti //1-->inserimento ruoli DataSet dataSet;//= new DataSet(); DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); fascicoli.GetVisibilita(out dataSet, idProject); fascicoli.Dispose(); foreach (DataRow ruoloRow in dataSet.Tables["DIRITTI_RUOLI"].Rows) { DocsPaVO.fascicolazione.DirittoOggetto dirittoOggetto = new DocsPaVO.fascicolazione.DirittoOggetto(); DocsPaVO.utente.Ruolo ruolo = new DocsPaVO.utente.Ruolo(); DocsPaVO.addressbook.QueryCorrispondente qco = new DocsPaVO.addressbook.QueryCorrispondente(); qco.codiceRubrica = ruoloRow["VAR_COD_RUBRICA"].ToString(); qco.getChildren = false; if (ruoloRow["ID_REGISTRO"] != null && !ruoloRow["ID_REGISTRO"].ToString().Equals("")) { System.Collections.ArrayList reg = new System.Collections.ArrayList(); reg.Add(ruoloRow["ID_REGISTRO"].ToString()); qco.idRegistri = reg; } if (ruoloRow["ID_AMM"] != null && !ruoloRow["ID_AMM"].ToString().Equals("")) { qco.idAmministrazione = ruoloRow["ID_AMM"].ToString(); } qco.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; ruolo = (DocsPaVO.utente.Ruolo)BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco)[0]; dirittoOggetto.idObj = idProject; dirittoOggetto.soggetto = ruolo; dirittoOggetto.tipoDiritto = getDirittoFasc(ruoloRow["CHA_TIPO_DIRITTO"].ToString()); dirittoOggetto.accessRights = Convert.ToInt32(ruoloRow["ACCESSRIGHTS"]); dirittoOggetto.deleted = false; dirittoOggetto.personorgroup = ruoloRow["PERSONORGROUP"].ToString(); dirittoOggetto.rootFolder = rootFolder; listaDiritti.Add(dirittoOggetto); } //2-->Inserimento utenti DocsPaDB.Query_DocsPAWS.Fascicoli fascicoliUtenti = new DocsPaDB.Query_DocsPAWS.Fascicoli(); DataSet dataSet1; fascicoliUtenti.GetVisibilita1(out dataSet1, idProject); fascicoliUtenti.Dispose(); DocsPaVO.addressbook.QueryCorrispondente qco1 = new DocsPaVO.addressbook.QueryCorrispondente(); System.Collections.ArrayList utentiInt = new ArrayList(); DocsPaVO.utente.Corrispondente soggettoPropr = null; string delegante = ""; if (dataSet1.Tables["DIRITTI_UTENTI"].Rows.Count > 1) { foreach (DataRow utenteRow in dataSet1.Tables["DIRITTI_UTENTI"].Rows) { DocsPaVO.fascicolazione.TipoDiritto tipoDiritto = getDirittoFasc(utenteRow["CHA_TIPO_DIRITTO"].ToString()); if (tipoDiritto.Equals(DocsPaVO.fascicolazione.TipoDiritto.TIPO_PROPRIETARIO)) { qco1.codiceRubrica = utenteRow["VAR_COD_RUBRICA"].ToString(); qco1.getChildren = false; if (utenteRow["ID_REGISTRO"] != null && !utenteRow["ID_REGISTRO"].ToString().Equals("")) { System.Collections.ArrayList reg = new System.Collections.ArrayList(); reg.Add(utenteRow["ID_REGISTRO"].ToString()); qco1.idRegistri = reg; } if (utenteRow["ID_AMM"] != null && !utenteRow["ID_AMM"].ToString().Equals("")) { qco1.idAmministrazione = utenteRow["ID_AMM"].ToString(); } qco1.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; //gadamo 16.12.2008 qco1.fineValidita = false; // voglio recuperare anche i disabilitati ( non mette "DTA_FINE IS NULL" nella query nel metodo Utenti.ListaCorrispondentiInt(qco) ) utentiInt = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco1); //DocsPaVO.utente.Utente utProprietario = new DocsPaVO.utente.Utente(); //utentiInt = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco1); if (utentiInt != null && utentiInt.Count > 0) { soggettoPropr = (DocsPaVO.utente.Utente)utentiInt[0]; //soggettoPropr = utProprietario; } } } } else { DataRow row = (DataRow)(dataSet1.Tables["DIRITTI_UTENTI"].Rows[0]); delegante = row["VAR_COGNOME"].ToString() + " " + row["VAR_NOME"].ToString(); } foreach (DataRow utenteRow in dataSet1.Tables["DIRITTI_UTENTI"].Rows) { DocsPaVO.fascicolazione.DirittoOggetto dirittoOggetto = new DocsPaVO.fascicolazione.DirittoOggetto(); DocsPaVO.utente.Utente utente = new DocsPaVO.utente.Utente(); DocsPaVO.addressbook.QueryCorrispondente qco = new DocsPaVO.addressbook.QueryCorrispondente(); qco.codiceRubrica = utenteRow["VAR_COD_RUBRICA"].ToString(); qco.getChildren = false; if (utenteRow["ID_REGISTRO"] != null && !utenteRow["ID_REGISTRO"].ToString().Equals("")) { System.Collections.ArrayList reg = new System.Collections.ArrayList(); reg.Add(utenteRow["ID_REGISTRO"].ToString()); qco.idRegistri = reg; } if (utenteRow["ID_AMM"] != null && !utenteRow["ID_AMM"].ToString().Equals("")) { qco.idAmministrazione = utenteRow["ID_AMM"].ToString(); } qco.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; ArrayList utenti = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco); utente = (DocsPaVO.utente.Utente)BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco)[0]; dirittoOggetto.idObj = idProject; dirittoOggetto.tipoDiritto = getDirittoFasc(utenteRow["CHA_TIPO_DIRITTO"].ToString()); //dirittoOggetto.soggetto=utente; if (dirittoOggetto.tipoDiritto.Equals(DocsPaVO.fascicolazione.TipoDiritto.TIPO_DELEGATO)) { dirittoOggetto.soggetto = utente; if (soggettoPropr != null) { dirittoOggetto.soggetto.descrizione = utente.descrizione + " sostituto di " + soggettoPropr.descrizione; } else { dirittoOggetto.soggetto.descrizione = utente.descrizione + " sostituto di " + delegante; } } else { dirittoOggetto.soggetto = utente; } dirittoOggetto.accessRights = Convert.ToInt32(utenteRow["ACCESSRIGHTS"]); dirittoOggetto.deleted = false; dirittoOggetto.personorgroup = utenteRow["PERSONORGROUP"].ToString(); dirittoOggetto.rootFolder = rootFolder; listaDiritti.Add(dirittoOggetto); logger.Debug("Utente inserito"); } ; //3-4 --> inserimento ruoli e utenti rimossi if (cercaRimossi) { //3-->gestione ruoli diritti rimossi DataSet dsRuoliRimossi;//= new DataSet(); DocsPaDB.Query_DocsPAWS.Fascicoli fascRuoliRimossi = new DocsPaDB.Query_DocsPAWS.Fascicoli(); fascRuoliRimossi.GetVisibilita_rimossi(out dsRuoliRimossi, idProject); fascRuoliRimossi.Dispose(); foreach (DataRow ruoloRow in dsRuoliRimossi.Tables["DIRITTI_RUOLI_RIMOSSI"].Rows) { DocsPaVO.fascicolazione.DirittoOggetto dirittoOggetto = new DocsPaVO.fascicolazione.DirittoOggetto(); DocsPaVO.utente.Ruolo ruolo = new DocsPaVO.utente.Ruolo(); DocsPaVO.addressbook.QueryCorrispondente qco = new DocsPaVO.addressbook.QueryCorrispondente(); qco.codiceRubrica = ruoloRow["VAR_COD_RUBRICA"].ToString(); qco.getChildren = false; if (ruoloRow["ID_REGISTRO"] != null && !ruoloRow["ID_REGISTRO"].ToString().Equals("")) { System.Collections.ArrayList reg = new System.Collections.ArrayList(); reg.Add(ruoloRow["ID_REGISTRO"].ToString()); qco.idRegistri = reg; } if (ruoloRow["ID_AMM"] != null && !ruoloRow["ID_AMM"].ToString().Equals("")) { qco.idAmministrazione = ruoloRow["ID_AMM"].ToString(); } qco.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; ruolo = (DocsPaVO.utente.Ruolo)BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco)[0]; dirittoOggetto.idObj = idProject; dirittoOggetto.soggetto = ruolo; dirittoOggetto.tipoDiritto = getDirittoFasc(ruoloRow["CHA_TIPO_DIRITTO"].ToString()); dirittoOggetto.accessRights = Convert.ToInt32(ruoloRow["ACCESSRIGHTS"]); dirittoOggetto.deleted = true; dirittoOggetto.note = ruoloRow["NOTE"].ToString(); dirittoOggetto.personorgroup = ruoloRow["PERSONORGROUP"].ToString(); dirittoOggetto.rootFolder = rootFolder; listaDiritti.Add(dirittoOggetto); } //4-->gestione utenti diritti rimossi DocsPaDB.Query_DocsPAWS.Fascicoli fascUtentiRimossi = new DocsPaDB.Query_DocsPAWS.Fascicoli(); DataSet dsUtentiRimossi; fascUtentiRimossi.GetVisibilita_UtentiRimossi(out dsUtentiRimossi, idProject); fascUtentiRimossi.Dispose(); foreach (DataRow utenteRow in dsUtentiRimossi.Tables["DIRITTI_UTENTI_RIMOSSI"].Rows) { DocsPaVO.fascicolazione.DirittoOggetto dirittoOggetto = new DocsPaVO.fascicolazione.DirittoOggetto(); DocsPaVO.utente.Utente utente = new DocsPaVO.utente.Utente(); DocsPaVO.addressbook.QueryCorrispondente qco = new DocsPaVO.addressbook.QueryCorrispondente(); qco.codiceRubrica = utenteRow["VAR_COD_RUBRICA"].ToString(); qco.getChildren = false; if (utenteRow["ID_REGISTRO"] != null && !utenteRow["ID_REGISTRO"].ToString().Equals("")) { System.Collections.ArrayList reg = new System.Collections.ArrayList(); reg.Add(utenteRow["ID_REGISTRO"].ToString()); qco.idRegistri = reg; } if (utenteRow["ID_AMM"] != null && !utenteRow["ID_AMM"].ToString().Equals("")) { qco.idAmministrazione = utenteRow["ID_AMM"].ToString(); } qco.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; ArrayList utenti = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco); utente = (DocsPaVO.utente.Utente)BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qco)[0]; dirittoOggetto.idObj = idProject; dirittoOggetto.soggetto = utente; dirittoOggetto.tipoDiritto = getDirittoFasc(utenteRow["CHA_TIPO_DIRITTO"].ToString()); dirittoOggetto.accessRights = Convert.ToInt32(utenteRow["ACCESSRIGHTS"]); dirittoOggetto.deleted = true; dirittoOggetto.note = utenteRow["NOTE"].ToString(); dirittoOggetto.personorgroup = utenteRow["PERSONORGROUP"].ToString(); dirittoOggetto.rootFolder = rootFolder; listaDiritti.Add(dirittoOggetto); logger.Debug("Utente inserito"); } } //ritorna la lista dei diritti return(listaDiritti); }