コード例 #1
0
        private ArrayList cercaInUoFiglie(SAAdminTool.DocsPaWR.OrgUO uo)
        {
            //CALCOLARE I FIGLI DEL NODO DA SPOSTARE sysUoFrom
            ArrayList listaUo = null;

            Manager.OrganigrammaManager theManager = new Amministrazione.Manager.OrganigrammaManager();
            listaUo = theManager.GetListaUoFiglie(uo);
            return(listaUo);
        }
コード例 #2
0
        private void btn_sposta_Click(object sender, System.EventArgs e)
        {
            SAAdminTool.DocsPaWR.OrgUO uoDaSpostare = new SAAdminTool.DocsPaWR.OrgUO();
            uoDaSpostare.IDCorrGlobale     = this.hd_idCorrGlobUODaSpostare.Value;
            uoDaSpostare.Codice            = this.txt_codice.Text;
            uoDaSpostare.CodiceRubrica     = this.txt_codice.Text;
            uoDaSpostare.Descrizione       = this.txt_descrizione.Text;
            uoDaSpostare.IDAmministrazione = this.hd_idAmm.Value;
            uoDaSpostare.Livello           = this.hd_livelloUO_DaSpostare.Value;

            SAAdminTool.DocsPaWR.OrgUO uoPadre = new SAAdminTool.DocsPaWR.OrgUO();
            uoPadre.IDCorrGlobale     = this.hd_idCorrGlobDest.Value;
            uoPadre.Codice            = this.txt_ricCod.Text;
            uoPadre.CodiceRubrica     = this.txt_ricCod.Text;
            uoPadre.Descrizione       = this.txt_ricDesc.Text;
            uoPadre.IDAmministrazione = this.hd_idAmm.Value;

            Manager.OrganigrammaManager          manager = new Amministrazione.Manager.OrganigrammaManager();
            SAAdminTool.DocsPaWR.EsitoOperazione esito   = new SAAdminTool.DocsPaWR.EsitoOperazione();

            //Se la Uo si sta spostando in una dei suio figli si deve bloccare l'operazione
            //e avvisare l'utente
            ArrayList uoFiglie = cercaInUoFiglie(uoDaSpostare);

            /*verifico se la systemId della UoPadre
             * (intesa come il nodo sotto il quale si vuole spostare la Uo 'uoDaSpostare')
             * è presente tra i figli della 'uoDaSpostare', in tal caso blocchiamo tale operazione
             * Attualmente non è gestito il caso di sposare un NODO ('uoPadre') sotto a un suo FIGLIO*/
            if (uoPadre.IDCorrGlobale != uoDaSpostare.IDCorrGlobale)
            {
                if (!uoFiglie.Contains(uoPadre.IDCorrGlobale))
                {
                    manager.SpostaUO(uoDaSpostare, uoPadre);
                    esito = manager.getEsitoOperazione();

                    if (esito.Codice.Equals(0))
                    {
                        this.executeJS("<SCRIPT>alert('Operazione di spostamento UO eseguita correttamente.'); window.returnValue = 'Y'; self.close();</SCRIPT>");
                    }
                    else
                    {
                        this.executeJS("<SCRIPT>alert('Attenzione, " + esito.Descrizione.Replace("'", "\\'") + "');</SCRIPT>");
                    }
                }
                else
                {
                    //caso in cui si tenta si spostare UN PADRE SOTTO A UN FIGLIO
                    this.executeJS("<SCRIPT>alert('Attenzione: non è possibile spostare un nodo padre sotto a un nodo figlio.'); window.returnValue = 'Y'; self.close();</SCRIPT>");
                }
            }
            else
            {
                //caso in cui si tenta si spostare un nodo sotto se stesso (senza questo controllo l'applicazione va in loop)
                this.executeJS("<SCRIPT>alert('Attenzione: si sta cercando di spostare una Uo sotto se stessa.'); window.returnValue = 'Y'; self.close();</SCRIPT>");
            }
        }