예제 #1
0
        /// <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);
        }