Exemplo n.º 1
0
        protected void BtnConfirm_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true);

            // Il report da visualizzare
            MassiveOperationReport report;

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Selezione della procedura da seguire in base al
            // tipo di oggetto
            if (!this.IsFasc)
            {
                this.MoveDocumentsInADL(MassiveOperationUtils.GetSelectedItems(), report);
            }
            else
            {
                this.MoveProjectsInADL(MassiveOperationUtils.GetSelectedItems(), report);
            }

            // Introduzione della riga di summary
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            if (!this.IsFasc)
            {
                report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            }
            else
            {
                report.AddSummaryRow("Fascicoli lavorati: {0} - Fascicoli non lavorati: {1}", pars);
            }

            this.generateReport(report, "Spostamento in ADL utente massivo");
        }
Exemplo n.º 2
0
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            // Lista di system id degli elementi selezionati
            List <MassiveOperationTarget> selectedItem;

            // Recupero della lista dei system id dei documenti selezionati
            selectedItem = MassiveOperationUtils.GetSelectedItems();

            //tipo di rimozione
            string            selectedValue = this.rbl_versioni.SelectedItem.Value;
            RemoveVersionType type          = RemoveVersionType.ALL_BUT_THE_LAST;

            if ("opt_no_last_two".Equals(selectedValue))
            {
                type = RemoveVersionType.ALL_BUT_LAST_TWO;
            }
            MassiveOperationReport report = ProceedWithOperation(selectedItem, type);

            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);

            // Visualizzazione del report e termine della fase di attesa
            this.generateReport(report, "Rimozione versioni massiva");
            return(true);
        }
Exemplo n.º 3
0
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            // System id dei documenti selezionati
            List <String> objectsId;

            // Report da mostrare
            MassiveOperationReport report = new MassiveOperationReport();

            // Se la request contiene objType e tale parametro è valorizzato come D,
            // i system id gestiti da MassiveOperationUtils sono id di documenti
            // altrimenti sono system id di fascicoli ed in tal caso bisogna eseguire l'inserimento
            // dei documenti contenuti nei fascicoli
            if (!String.IsNullOrEmpty(Request["objType"]) &&
                Request["objType"] == "D")
            {
                this.ExecuteInsertDocumentsInSA(
                    MassiveOperationUtils.GetSelectedItems(), report);
            }
            else
            {
                this.ExecuteInsertProjectsInSA(
                    MassiveOperationUtils.GetSelectedItems(), report);
            }

            // Introduzione della riga di summary
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, "Conservazione massiva");
            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Al click sul pulsante bisogna applicare il timestamp a tutti i documenti selezionati
        /// </summary>
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            #region Dichiarazione variabili

            // Lista di system id degli elementi selezionati
            List <MassiveOperationTarget> selectedItem;

            // Il report da mostrare all'utente
            MassiveOperationReport report;

            #endregion

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Recupero della lista dei system id dei documenti selezionati
            selectedItem = MassiveOperationUtils.GetSelectedItems();

            // Esecuzione dell'applicazione del timestamp
            this.ApplyTimeStampToDocuments(selectedItem, report);

            // Introduzione della riga di summary
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);

            // Visualizzazione del report e termine della fase di attesa
            this.generateReport(report, "Timestamp massivo");
            return(true);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Al click sul pulsante di conferma, viene avviata la procedura per lo spostamento massivo
        /// di documenti nell'Area di Lavoro
        /// </summary>
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            // Il report da visualizzare
            MassiveOperationReport report;

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Selezione della procedura da seguire in base al
            // tipo di oggetto
            if (Request["objType"].Equals("D"))
            {
                this.MoveDocumentsInADL(MassiveOperationUtils.GetSelectedItems(), report);
            }
            else
            {
                this.MoveProjectsInADL(MassiveOperationUtils.GetSelectedItems(), report);
            }

            // Introduzione della riga di summary
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            if (Request["objType"].Equals("D"))
            {
                report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            }
            else
            {
                report.AddSummaryRow("Fascicoli lavorati: {0} - Fascicoli non lavorati: {1}", pars);
            }

            this.generateReport(report, "Spostamento in ADL massivo");
            return(true);
        }
Exemplo n.º 6
0
        protected void BtnConfirm_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true);

            // Lista di system id degli elementi selezionati
            List <MassiveOperationTarget> selectedItem;

            // Errore verificatosi in fase di creazione della scheda
            String error = String.Empty;

            // La scheda documento creata
            SchedaDocumento document;

            // Recupero della lista dei system id dei documenti selezionati
            selectedItem = MassiveOperationUtils.GetSelectedItems();

            // Generazione della scheda
            MassiveOperationReport report = new MassiveOperationReport();
            //Se per uno dei documenti selezionati è attivo un processo di firma, blocco l'operazione di inoltro
            bool inLibroFirma = false;

            try
            {
                foreach (MassiveOperationTarget temp in selectedItem)
                {
                    if (LibroFirmaManager.IsDocOrAllInLibroFirma(temp.Id))
                    {
                        report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.KO, "Il documento non è stato creato poichè per uno dei documenti selezionati, o suoi allegati, è attivo un processo di firma");
                        inLibroFirma = true;
                        break;
                    }
                }
                if (!inLibroFirma)
                {
                    document = this.GenerateDocumentScheda(selectedItem, out error);
                    if (document != null)
                    {
                        report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.OK, "Il documento è stato creato correttamente");
                    }
                    else
                    {
                        report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.KO, "Il documento non è stato creato");
                    }
                }
            }
            catch (Exception ex)
            {
                report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.KO, "Errore nella creazione del documento");
            }
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, "Inoltra massivo");

            // set session to manage document.aspx
            HttpContext.Current.Session["IsForwarded"] = true;
        }
Exemplo n.º 7
0
        protected void BtnConfirm_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true);

            // creazione e inizializzazione report
            MassiveOperationReport report = new MassiveOperationReport();

            this.ExecuteVersamento(MassiveOperationUtils.GetSelectedItems(), report);

            // summary del report
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);

            //metodo generatereport da fare
            this.GenerateReport(report, "titolo");
        }
Exemplo n.º 8
0
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            DocsPaWR.InfoUtente            userInfo = UserManager.getInfoUtente();
            DocumentConsolidationHandler   dch      = new DocumentConsolidationHandler(null, userInfo);
            DocumentConsolidationStateEnum state    = DocumentConsolidationStateEnum.Step1;

            if (IsMetadati)
            {
                state = DocumentConsolidationStateEnum.Step2;
            }
            MassiveOperationReport report = dch.ConsolidateDocumentMassive(state, MassiveOperationUtils.GetSelectedItems());

            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, "Consolidamento documenti");
            return(true);
        }
        protected List <MassiveOperationTarget> GetSelectedDocuments()
        {
            List <MassiveOperationTarget> selectedItems = MassiveOperationUtils.GetSelectedItems();

            if (selectedItems.Count == 0)
            {
                DocsPaWR.SchedaDocumento schedaDocumento = DocumentManager.getSelectedRecord();

                if (schedaDocumento != null)
                {
                    string codice = (schedaDocumento.protocollo != null) ? schedaDocumento.protocollo.numero : schedaDocumento.docNumber;
                    MassiveOperationTarget mot = new MassiveOperationTarget(schedaDocumento.systemId, codice);
                    mot.Checked = true;
                    selectedItems.Add(mot);
                }
            }

            return(selectedItems);
        }
Exemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected List <MassiveOperationTarget> GetSelectedDocuments()
        {
            List <MassiveOperationTarget> selectedItems = MassiveOperationUtils.GetSelectedItems();

            if (selectedItems.Count == 0)
            {
                DocsPaWR.SchedaDocumento schedaDocumento = NttDataWA.UIManager.DocumentManager.getSelectedRecord();

                if (schedaDocumento != null)
                {
                    FileRequest fileReq = new FileRequest();
                    if (UIManager.DocumentManager.getSelectedAttachId() != null)
                    {
                        fileReq = FileManager.GetFileRequest(UIManager.DocumentManager.getSelectedAttachId());
                    }
                    else
                    {
                        fileReq = FileManager.GetFileRequest();
                    }
                    if (DocumentManager.getSelectedNumberVersion() != null && DocumentManager.ListDocVersions != null)
                    {
                        fileReq = (from v in DocumentManager.ListDocVersions where v.version.Equals(DocumentManager.getSelectedNumberVersion()) select v).FirstOrDefault();
                    }
                    string codice = string.Empty;
                    MassiveOperationTarget mot;
                    if (fileReq == null || fileReq.docNumber.Equals(schedaDocumento.docNumber))
                    {
                        codice = (schedaDocumento.protocollo != null) ? schedaDocumento.protocollo.numero : schedaDocumento.docNumber;
                        mot    = new MassiveOperationTarget(schedaDocumento.systemId, codice);
                    }
                    else
                    {
                        codice = fileReq.docNumber;
                        mot    = new MassiveOperationTarget(codice, codice);
                    }
                    mot.Checked = true;
                    selectedItems.Add(mot);
                }
            }

            return(selectedItems);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Al click sul pulsante bisogna creare il documento per l'inoltro massivo
        /// </summary>
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            #region Dichiarazione variabili

            // Lista di system id degli elementi selezionati
            List <MassiveOperationTarget> selectedItem;

            // Errore verificatosi in fase di creazione della scheda
            String error = String.Empty;

            // La scheda documento creata
            SchedaDocumento document;

            #endregion

            // Recupero della lista dei system id dei documenti selezionati
            selectedItem = MassiveOperationUtils.GetSelectedItems();

            // Generazione della scheda
            MassiveOperationReport report = new MassiveOperationReport();
            try
            {
                document = this.GenerateDocumentScheda(selectedItem, out error);
                if (document != null)
                {
                    report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.OK, "Il documento è stato creato correttamente");
                }
                else
                {
                    report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.KO, "Il documento non è stato creato");
                }
            }
            catch (Exception ex)
            {
                report.AddReportRow("-", MassiveOperationReport.MassiveOperationResultEnum.KO, "Errore nella creazione del documento");
            }
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, "Inoltra massivo");
            this.addJSOnChiudiButton("self.returnValue=true;self.close();");
            return(true);
        }
Exemplo n.º 12
0
        protected void BtnConfirm_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true);

            DocumentConsolidationHandler   dch   = new DocumentConsolidationHandler(null, UserManager.GetInfoUser());
            DocumentConsolidationStateEnum state = DocumentConsolidationStateEnum.Step1;
            string title = "Consolidamento documenti";

            if (this.IsMetadati)
            {
                state = DocumentConsolidationStateEnum.Step2;
                title = "Consolidamento documenti e metadati";
            }

            MassiveOperationReport report = dch.ConsolidateDocumentMassive(state, MassiveOperationUtils.GetSelectedItems());

            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, title);
        }
Exemplo n.º 13
0
        protected void BtnConfirm_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true);

            // Il report da visualizzare
            MassiveOperationReport report;

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Esecuzione dell'applicazione del timestamp
            this.ApplyTimeStampToDocuments(MassiveOperationUtils.GetSelectedItems(), report);

            // Introduzione della riga di summary
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);

            // Generazione del report da esportare
            this.generateReport(report, "Timestamp massivo");
        }
Exemplo n.º 14
0
        /// <summary>
        /// Funzione utilizzata per verificare se c'è almeno un elemento selezionato
        /// e se è possibile procedere con l'avvio della funzione massiva richiesta
        /// </summary>
        /// <param name="dialogName">Il nome da assegnare alla funestra da aprire</param>
        /// <param name="function">Lo script da registrare in caso di successo delle verifica</param>
        private void UpdateSavedCheckingStatusAndCheckAtLeastOneSelected(
            string dialogName,
            string function)
        {
            // Lo script da immergere
            string script = "alert('Selezionare almeno un risultato!');";

            // Aggiornamento dello stato di checking salvato
            this.UpdateSavedCheckingStatus();

            // Se ci sono elementi selezionati, viene immerso il codice per l'apertura della finestra
            // altrimenti viene immerso il codice per mostrare un avviso
            if (MassiveOperationUtils.GetSelectedItems().Count > 0)
            {
                script = function;
            }

            this.Page.ClientScript.RegisterStartupScript(
                this.GetType(),
                dialogName,
                script,
                true);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Funzione per l'inizializzazione della pagina
        /// </summary>
        private void Initialize()
        {
            // La lista dei system id dei documenti selezionati
            List <MassiveOperationTarget> documentsIdProfile;

            // Lista delle informazioni di base sui documenti da convertire
            List <BaseInfoDoc> documents;

            // Recupero dei system id dei documenti da convertire
            documentsIdProfile = MassiveOperationUtils.GetSelectedItems();

            // Inizializzazione della lista delle informazioni sui documenti da convertire
            documents = new List <BaseInfoDoc>();

            // Per ogni id profile, vengono recuperate le informazioni di base sul
            // documento
            foreach (MassiveOperationTarget temp in documentsIdProfile)
            {
                // ...recupero del contenuto delle informazioni di base sul documento
                try
                {
                    documents.Add(DocumentManager.GetBaseInfoForDocument(
                                      temp.Id,
                                      String.Empty,
                                      String.Empty).Where(e => e.IdProfile.Equals(temp.Id)).FirstOrDefault());
                }
                catch (Exception e)
                {
                    throw new Exception(String.Format(
                                            "Errore durante il reperimento delle informazioni sul documento {0}", temp.Codice));
                }
            }

            // Salvataggio delle informazioni sui documenti
            this.DocumentsInfo = documents;
        }
Exemplo n.º 16
0
        private void Export()
        {
            string oggetto   = this.hd_export.Value;
            string tipologia = string.Empty;
            string titolo    = this.txt_titolo.Text;

            DocsPaWR.InfoUtente    userInfo  = UserManager.getInfoUtente(this);
            DocsPaWR.Ruolo         userRuolo = UserManager.getRuolo(this);
            DocsPaWR.FileDocumento file      = new DocsPAWA.DocsPaWR.FileDocumento();
            string docOrFasc = Request.QueryString["docOrFasc"];

            // Lista dei system id degli elementi selezionati
            String[] objSystemId = null;

            // Se nella request c'è il valore fromMassiveOperation...
            if (Request["fromMassiveOperation"] != null)
            {
                List <MassiveOperationTarget> temp = MassiveOperationUtils.GetSelectedItems();
                objSystemId = new String[temp.Count];
                for (int i = 0; i < temp.Count; i++)
                {
                    objSystemId[i] = temp[i].Id;
                }
            }

            // Reperimento dalla sessione del contesto di ricerca fulltext
            DocsPAWA.DocsPaWR.FullTextSearchContext context = Session["FULL_TEXT_CONTEXT"] as DocsPAWA.DocsPaWR.FullTextSearchContext;

            if (rbl_XlsOrPdf.SelectedValue == "PDF")
            {
                tipologia = "PDF";
            }
            else if (rbl_XlsOrPdf.SelectedValue == "XLS")
            {
                tipologia = "XLS";
            }
            else if (rbl_XlsOrPdf.SelectedValue == "Model")
            {
                tipologia = "Model";
            }
            else if (rbl_XlsOrPdf.SelectedValue == "ODS")
            {
                tipologia = "ODS";
            }
            try
            {
                //Se la tipologia scelta è "XLS" recupero i campi scelti dall'utente
                if (tipologia == "XLS" || tipologia == "ODS")
                {
                    ArrayList campiSelezionati = getCampiSelezionati();

                    if ((campiSelezionati.Count != 0) || (hd_export.Value.Equals("rubrica")))
                    {
                        exportDatiManager manager = new exportDatiManager(oggetto, tipologia, titolo, userInfo, userRuolo, context, docOrFasc, campiSelezionati, objSystemId);
                        file = manager.Export();
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "noCampi", "alert('Selezionare almeno un campo per da esportare.');", true);
                    }
                }
                else
                {
                    if (tipologia == "Model")
                    {
                        ArrayList campiSelezionati = getCampiSelezionati();

                        if ((campiSelezionati.Count != 0))
                        {
                            exportDatiManager manager = new exportDatiManager(oggetto, tipologia, titolo, userInfo, userRuolo, context, docOrFasc, campiSelezionati, objSystemId);
                            file = manager.Export();
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(this.GetType(), "noCampi", "alert('Selezionare almeno un campo per da esportare.');", true);
                        }
                    }
                    else
                    {
                        if (tipologia == "PDF")
                        {
                            exportDatiManager manager = new exportDatiManager(oggetto, tipologia, titolo, userInfo, userRuolo, context, docOrFasc, objSystemId);
                            file = manager.Export();
                        }
                    }
                }


                if (file == null || file.content == null || file.content.Length == 0)
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "noRisultatiRicerca", "alert('Nessun documento trovato.');", true);
                    ClientScript.RegisterStartupScript(this.GetType(), "openFile", "OpenFile('" + tipologia + "');", true);
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "openFile", "OpenFile('" + tipologia + "');", true);
                }
            }
            catch (Exception ex)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "errore", "alert('Errore di sistema: " + ex.Message.Replace("'", "\\'") + "');", true);
            }
        }
Exemplo n.º 17
0
        private bool PutHSMSign()
        {
            bool   retVal   = false;
            string errorMsg = string.Empty;

            if (!string.IsNullOrEmpty(this.TxtHsmAlias.Text) && !string.IsNullOrEmpty(this.TxtHsmDomain.Text) && !string.IsNullOrEmpty(this.TxtHsmPin.Text) && !string.IsNullOrEmpty(this.TxtHsmLitOtp.Text) && (this.HsmLitPades.Checked || this.HsmLitP7M.Checked))
            {
                string alias   = this.TxtHsmAlias.Text;
                string dominio = this.TxtHsmDomain.Text;
                string pin     = this.TxtHsmPin.Text;
                string otp     = this.TxtHsmLitOtp.Text;

                try
                {
                    DigitalSignature.RemoteDigitalSignManager         dsm = new DigitalSignature.RemoteDigitalSignManager();
                    DigitalSignature.RemoteDigitalSignManager.Memento m   = new DigitalSignature.RemoteDigitalSignManager.Memento {
                        Alias = alias, Dominio = dominio
                    };
                    //Intanto salvo il memento
                    dsm.HSM_SetMementoForUser(m);
                }
                catch (System.Exception ex)
                {
                    return(true);
                }

                MassiveOperationReport.MassiveOperationResultEnum result;
                string codice = string.Empty;

                // Il dettaglio dell'elaborazione per un documento
                string details;

                MassiveOperationReport report = new MassiveOperationReport();
                if ((IsLF || Continue) && HttpContext.Current.Session["massiveSignReport"] != null)
                {
                    report = HttpContext.Current.Session["massiveSignReport"] as MassiveOperationReport;
                }

                //Lista dei fileReequest da passare in input al servizio di firma massiva
                List <FileRequest> fileRequestList = new List <FileRequest>();
                //List<FileRequest> listFileReqLF = new List<FileRequest>();
                this.FileTypes = UIManager.FileManager.GetSupportedFileTypes(Int32.Parse(UIManager.UserManager.GetInfoUser().idAmministrazione));
                this.IsEnabledSupportedFileTypes = UIManager.FileManager.IsEnabledSupportedFileTypes();

                string objType = Request.QueryString["objType"];
                if (objType.Equals("D"))
                {
                    this.SchedaDocumentList = this.LoadSchedaDocumentsList(
                        MassiveOperationUtils.GetSelectedItems());
                }

                // Invio della trasmissione per ogni documento da inviare
                foreach (SchedaDocumento schedaDoc in this.SchedaDocumentList)
                {
                    result  = MassiveOperationReport.MassiveOperationResultEnum.OK;
                    details = String.Empty;

                    // Verifica della possibilità di firmare il documento
                    result = this.CanSignDocument(schedaDoc, out details);

                    if (result != MassiveOperationReport.MassiveOperationResultEnum.KO)
                    {
                        fileRequestList.Add(schedaDoc.documenti[0]);
                    }

                    // Aggiunta di una riga al report
                    if (result == MassiveOperationReport.MassiveOperationResultEnum.KO)
                    {
                        codice = MassiveOperationUtils.getItem(schedaDoc.docNumber).Codice;
                        report.AddReportRow(
                            codice,
                            result,
                            details);
                    }
                }
                //PER TUTTI I DOCUMENTI CHE HANNO SUPERATO I CONTROLLI VADO AD APPLICARE LA FIRMA
                if (fileRequestList.Count > 0)
                {
                    DigitalSignature.RemoteDigitalSignManager dsm = new DigitalSignature.RemoteDigitalSignManager();

                    bool cofirma = this.HsmRadioCoSign.Checked; //prendere dalla checkbox cofirma

                    //ABBATANGELI - Hanno cambiato idea nuovamente e non è sempre cosign ma prende il valore dal checkbox cofirma
                    ////ABBATANGELI - PITre richiede sempre la cofirma per hsm
                    ////cofirma = true;


                    bool timestamp = this.HsmCheckMarkTemporal.Checked; //prendere dalla checkbox timestamp
                    DigitalSignature.RemoteDigitalSignManager.tipoFirma tipoFirma = new DigitalSignature.RemoteDigitalSignManager.tipoFirma();
                    if (this.HsmLitPades.Checked)
                    {
                        tipoFirma = DigitalSignature.RemoteDigitalSignManager.tipoFirma.PADES;
                    }
                    else
                    {
                        tipoFirma = DigitalSignature.RemoteDigitalSignManager.tipoFirma.CADES;
                        cofirma   = this.HsmRadioCoSign.Checked && !FirmaAnnidata;
                    }
                    List <FirmaResult> firmaResult = null;
                    try
                    {
                        firmaResult = dsm.HSM_SignMultiSign(fileRequestList.ToArray(), cofirma, timestamp, tipoFirma, alias, dominio, otp, pin).ToList <FirmaResult>();

                        /*Commento perchè la distinzione tra documenti che devo firmare cades e quelli da firmare pades per il libro firma, la faccio prima, quando vado a selezionare SchedaDocumentList
                         * if (!IsLF)
                         * {
                         *  firmaResult = dsm.HSM_SignMultiSign(fileRequestList.ToArray(), cofirma, timestamp, tipoFirma, alias, dominio, otp, pin).ToList<FirmaResult>();
                         * }
                         * else
                         * {
                         *  List<MassiveOperationTarget> selectedItemSystemIdList = MassiveOperationUtils.GetSelectedItems();
                         *  string typeSign = tipoFirma.Equals(DigitalSignature.RemoteDigitalSignManager.tipoFirma.CADES) ? "C" : "P";
                         *  List<string> idDocumentList = (from temp in selectedItemSystemIdList where temp.Id.Contains(typeSign) select temp.Id.Replace(typeSign, "")).ToList<string>();
                         *  listFileReqLF = (from f in fileRequestList where idDocumentList.Contains(f.docNumber) select f).ToList();
                         *  if (listFileReqLF != null && listFileReqLF.Count > 0)
                         *  {
                         *      firmaResult = dsm.HSM_SignMultiSign(listFileReqLF.ToArray(), cofirma, timestamp, tipoFirma, alias, dominio, otp, pin).ToList<FirmaResult>();
                         *  }
                         * }
                         */
                        if (firmaResult != null && ((firmaResult.Count > 1) || (firmaResult.Count == 1 && firmaResult[0].fileRequest != null)))
                        {
                            foreach (FirmaResult r in firmaResult)
                            {
                                string[] splitMsg = r.errore.Split(':');
                                if (splitMsg[0].Equals("true"))
                                {
                                    result  = MassiveOperationReport.MassiveOperationResultEnum.OK;
                                    details = "Firma HSM del documento avvenuta con successo";
                                    codice  = MassiveOperationUtils.getItem(r.fileRequest.docNumber).Codice;
                                    report.AddReportRow(
                                        codice,
                                        result,
                                        details);
                                }
                                else
                                {
                                    if (r.esito == null || string.IsNullOrEmpty(r.esito.Codice))
                                    {
                                        errorMsg = String.Format(
                                            "Si sono verificati degli errori durante la firma del documento. Dettagli: {0}",
                                            splitMsg[1]);
                                    }
                                    else
                                    {
                                        errorMsg = Utils.Languages.GetMessageFromCode(r.esito.Codice, UserManager.GetLanguageData());
                                    }

                                    result  = MassiveOperationReport.MassiveOperationResultEnum.KO;
                                    codice  = MassiveOperationUtils.getItem(r.fileRequest.docNumber).Codice;
                                    details = errorMsg;
                                    report.AddReportRow(
                                        codice,
                                        result,
                                        details);
                                }
                            }
                        }
                        else
                        {
                            //List<FileRequest> list = IsLF ? listFileReqLF : fileRequestList;
                            string error = "Si sono verificati degli errori durante la firma del documento";
                            if (firmaResult != null && firmaResult.Count > 0)
                            {
                                error += ": " + firmaResult[0].errore;
                            }
                            if (firmaResult[0].esito != null && !string.IsNullOrEmpty(firmaResult[0].esito.Codice))
                            {
                                error = Utils.Languages.GetMessageFromCode(firmaResult[0].esito.Codice, UserManager.GetUserLanguage());
                            }
                            foreach (FileRequest fr in fileRequestList)
                            {
                                result  = MassiveOperationReport.MassiveOperationResultEnum.KO;
                                codice  = MassiveOperationUtils.getItem(fr.docNumber).Codice;
                                details = error;
                                report.AddReportRow(
                                    codice,
                                    result,
                                    details);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //List<FileRequest> list = IsLF ? listFileReqLF : fileRequestList;
                        foreach (FileRequest fr in fileRequestList)
                        {
                            result  = MassiveOperationReport.MassiveOperationResultEnum.KO;
                            codice  = MassiveOperationUtils.getItem(fr.docNumber).Codice;
                            details = "Si sono verificati degli errori durante la firma HSM del documento.";
                            report.AddReportRow(
                                codice,
                                result,
                                details);
                        }
                    }
                }
                if (Continue)
                {
                    HttpContext.Current.Session["massiveSignReport"] = report;

                    //Se ho firmato CADES e ci sono documenti da firmare PADES non chiudo la maschera ma visualizzo un worning che
                    //informa l'utente di inserire un nuovo otp per procedere con la firma
                    this.TxtHsmLitOtp.Text      = string.Empty;
                    this.HsmLitP7M.Enabled      = false;
                    this.HsmLitPades.Enabled    = false;
                    this.HsmRadioCoSign.Enabled = false;
                    this.UpOTP.Update();
                    this.UpPnlSign.Update();
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('WarningRequestNewOTPFirmaAnnidata', 'warning');} else {parent.ajaxDialogModal('WarningRequestNewOTPFirmaAnnidata', 'warning');}", true);
                    return(false);
                }

                if (!IsLF)
                {
                    // Introduzione della riga di summary
                    string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
                    report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
                    this.generateReport(report, "Firma HSM massiva");
                }
                else
                {
                    HttpContext.Current.Session["massiveSignReport"] = report;

                    //Se ho firmato CADES e ci sono documenti da firmare PADES non chiudo la maschera ma visualizzo un worning che
                    //informa l'utente di inserire un nuovo otp per procedere con la firma
                    List <MassiveOperationTarget> selectedItemSystemIdList = MassiveOperationUtils.GetSelectedItems();
                    bool toSignPades = (from s in selectedItemSystemIdList where s.Id.Contains("P") select s).FirstOrDefault() != null;
                    if (this.HsmLitP7M.Checked && toSignPades)
                    {
                        this.HsmLitP7M.Checked   = false;
                        this.HsmLitPades.Checked = true;
                        this.TxtHsmLitOtp.Text   = string.Empty;
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('WarningRequestNewOTP', 'warning');} else {parent.ajaxDialogModal('WarningRequestNewOTP', 'warning');}", true);
                        this.UpPnlSign.Update();
                        this.UpOTP.Update();
                        return(false);
                    }
                }

                retVal = true;
            }
            else
            {
                retVal = false;
                ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('WarningHsmSign', 'warning');} else {parent.ajaxDialogModal('WarningHsmSign', 'warning');}", true);
            }

            return(retVal);
        }
Exemplo n.º 18
0
        private void InitializePage()
        {
            if (CommandType != "close")
            {
                this.FirmaAnnidata = false;
                this.Continue      = false;
                this.popolaCampiMemento();
                if (UIManager.UserManager.IsAuthorizedFunctions("TO_GET_OTP"))
                {
                    this.BtnRequestOTP.Visible = true;
                }

                //MEV LIBRO FIRMA
                //if (!string.IsNullOrEmpty(Utils.InitConfigurationKeys.GetValue("0", DBKeys.FE_LIBRO_FIRMA.ToString())) && Utils.InitConfigurationKeys.GetValue("0", DBKeys.FE_LIBRO_FIRMA.ToString()).Equals("1"))
                //{
                //    this.HsmRadioCoSign.Visible = false;
                //}
                //ABBATANGELI - Nuova gestione firma/cofirma
                //if (string.IsNullOrEmpty(Utils.InitConfigurationKeys.GetValue("0", DBKeys.LOCK_COFIRMA.ToString())) || Utils.InitConfigurationKeys.GetValue("0", DBKeys.LOCK_COFIRMA.ToString()).Equals("0"))

                //Valore della Chiave FE_SET_TIPO_FIRMA
                //  0: Annidata
                //  1: Parallela
                //  2: Annidata non modificabile
                //  3: Parallela non modificabile
                string setTipoFirma = string.IsNullOrEmpty(Utils.InitConfigurationKeys.GetValue("0", DBKeys.FE_SET_TIPO_FIRMA.ToString())) ? "0" : Utils.InitConfigurationKeys.GetValue("0", DBKeys.FE_SET_TIPO_FIRMA.ToString());
                if (setTipoFirma.Equals("0") || setTipoFirma.Equals("2"))
                {
                    this.HsmRadioSign.Checked   = true;
                    this.HsmRadioCoSign.Enabled = true;
                    this.HsmRadioSign.Enabled   = true;
                }
                else
                {
                    //forzaCofirma = true;
                    this.HsmRadioCoSign.Checked = true;
                    this.HsmRadioCoSign.Enabled = false;
                    this.HsmRadioSign.Enabled   = false;
                }
                bool enableChangeRadio = setTipoFirma.Equals("0") || setTipoFirma.Equals("1");
                this.HsmRadioCoSign.Enabled = enableChangeRadio;
                this.HsmRadioSign.Enabled   = enableChangeRadio;
                if (IsLF)
                {
                    //se la popup è aperta dal libro firma, posso firmare cades e pades.
                    //Qual'ora presenti entrambi firmo prima CADES e poi PADES. Conclusa CADES, la maschera non viene chiusa, ma verrà chiesto
                    //un nuovo OTP per procedere con firma PADES. Al termine di quest'ultima, se ci sono stati errori verrà mostrato
                    //il report altrimenti verrà chiusa la popup.
                    this.HsmLitP7M.Enabled   = false;
                    this.HsmLitPades.Enabled = false;
                    List <MassiveOperationTarget> selectedItemSystemIdList = MassiveOperationUtils.GetSelectedItems();
                    if (selectedItemSystemIdList != null && selectedItemSystemIdList.Count > 0)
                    {
                        List <string> idDocumentList = (from temp in selectedItemSystemIdList select temp.Id).ToList <string>();
                        bool          toSignCades    = (from id in idDocumentList where id.Contains("C") select id).FirstOrDefault() != null;
                        if (toSignCades)
                        {
                            this.HsmLitP7M.Checked   = true;
                            this.HsmLitPades.Checked = false;
                        }
                        else
                        {
                            this.HsmLitP7M.Checked   = false;
                            this.HsmLitPades.Checked = true;
                        }
                    }
                }
                this.TxtHsmPin.Focus();
            }
        }
Exemplo n.º 19
0
        /// <summary>
        /// Event Handler per il click del pulsante conferma
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected override bool btnConferma_Click(object sender, EventArgs e)
        {
            // Il report da mostrare all'utente
            MassiveOperationReport report;

            // Lista di system id degli elementi selezionati
            List <MassiveOperationTarget> selectedItem;

            // Il fascicolo selezionato per la fascicolazione rapida
            Fascicolo project;

            // Valore utilizzato per indicare che è possibile procedere con la fascicolazione
            bool canProceed = true;

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Il messaggio di errore
            StringBuilder errorMessage = new StringBuilder("Impossibile eseguire la fascicolazione:");

            // Recupero della lista dei system id dei documenti selezionati
            selectedItem = MassiveOperationUtils.GetSelectedItems();

            // Recupero del fascicolo selezionato per la fascicolazione rapida
            project = FascicoliManager.getFascicoloSelezionatoFascRapida(this);


            // Se il fascicolo non è valorizzato non si può procedere
            if (project == null)
            {
                canProceed = false;
                errorMessage.AppendLine(" Selezionare un fascicolo in cui fascicolare.");
            }

            // Se non sono stati selezionati documenti, non si può procedere con la fascicolazione
            if (selectedItem == null ||
                selectedItem.Count == 0)
            {
                canProceed = false;
                errorMessage.AppendLine("- Selezionare almeno un documento da fascicolare.");
            }

            // Se non è possibile continuare, viene salvata una nuova riga per il report
            // e ne viene impostato l'esito negativo
            if (!canProceed)
            {
                report.AddReportRow(
                    "N.A.",
                    MassiveOperationReport.MassiveOperationResultEnum.KO,
                    errorMessage.ToString());
            }
            else
            {
                // Altrimenti si procede con la fascicolazione
                this.ProceedWithOperation(selectedItem, project, report);
            }
            string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked };
            report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars);
            this.generateReport(report, "Fascicolazione massiva");
            return(true);
        }