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"); }
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); }
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); }
/// <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); }
/// <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); }
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; }
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"); }
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); }
/// <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); }
/// <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); }
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); }
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"); }
/// <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); }
/// <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; }
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); } }
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); }
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(); } }
/// <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); }