コード例 #1
0
        /// <summary>
        /// Analisi del risultato e invio della risposta al client sotto forma di stringa
        /// </summary>
        /// <returns>Risultato che il client analizzerà e su cui baserà le sue azioni</returns>
        public string GetCallbackResult()
        {
            // Esito dell'azione eseguita
            SaveChangesToRoleReportResult result = SaveChangesToRoleReportResult.OK;

            try
            {
                // Se questa è la prima volta che viene chiamata la callback (il report
                // non conterrà righe), viene eseguita l'inizializzazione del report
                // altrimenti viene eseguita l'azione, viene analizzato il risultato e,
                // se è il caso, si procede con la predisposizione del sistema ad eseguire
                // la prossima fase
                if (Report.Count == 0)
                {
                    this.InitializeReport();
                }
                else
                {
                    result = this.ExecuteCurrentPhase();
                }

                // Se la fase è finish viene chiusa l'ultima riga
                if (SaveChangesRequest.Phase == SaveChangesToRolePhase.Finish)
                {
                    this.CloseReportVoice(SaveChangesToRoleReportResult.OK, String.Empty);
                }
            }
            catch (Exception exception)
            {
                this.CloseReportForException();
            }

            return(this.RenderReport(result));
        }
コード例 #2
0
        /// <summary>
        /// Metodo per la chiusura di un fase di lavoro
        /// </summary>
        /// <param name="result">Risultato dell'azione precedente</param>
        /// <param name="details">Dettagli sul risultato precedente</param>
        private void CloseReportVoice(SaveChangesToRoleReportResult result, String details)
        {
            if (Report[Report.Count - 1].Result == SaveChangesToRoleReportResult.Waiting || Report[Report.Count - 1].Result != SaveChangesToRoleReportResult.KO)
            {
                Report[Report.Count - 1].Result = result;
            }
            Report[Report.Count - 1].Description += "<br />" + details;
            Report[Report.Count - 1].ImageUrl     = Report[Report.Count - 1].Result == SaveChangesToRoleReportResult.OK ? "Images/completed.jpg" : "Images/failed.jpg";

            // Se la fase è Finish o se il risultato dell'operazione è un errore, viene inizializzato il report
            if (SaveChangesRequest.Phase == SaveChangesToRolePhase.Finish || result == SaveChangesToRoleReportResult.KO)
            {
                ReportingUtils.PrintRequest = new PrintReportObjectTransformationRequest()
                {
                    DataObject  = Report.ToArray(),
                    ContextName = "ModificaRuolo",
                    ReportKey   = "ModificaRuolo"
                }
            }
            ;

            //ABBATANGELI-PANICI LIBRO FIRMA
            if (SaveChangesRequest.Phase == SaveChangesToRolePhase.Finish)
            {
                SaveChangesToRoleRequest saveChangesRequest = CallContextStack.CurrentContext.ContextState["SaveChangesRequest"] as SaveChangesToRoleRequest;
                string idRuoloOld         = saveChangesRequest.IdOldRole;
                bool   interrompiProcessi = GetSessionInterrompiProcessi();
                bool   storicizzaProcessi = GetSessionStoricizzaProcessi();
                if (interrompiProcessi)
                {
                    AsyncCallback callback = new AsyncCallback(CallBack);
                    invalidaPassiCorrelati = new InvalidaPassiCorrelatiDelegate(InvalidaPassiCorrelati);
                    DocsPAWA.AdminTool.Manager.SessionManager sessionManager = new DocsPAWA.AdminTool.Manager.SessionManager();
                    invalidaPassiCorrelati.BeginInvoke("R", idRuoloOld, string.Empty, sessionManager.getUserAmmSession(), callback, null);
                }
                else if (storicizzaProcessi)
                {
                    string        idRuoloNew = SaveChangesRequest.ModifiedRole.IDGruppo;
                    AsyncCallback callback   = new AsyncCallback(CallBackStoricizza);
                    storicizzaPassiCorrelati = new StoricizzaPassiCorrelatiDelegate(StoricizzaPassiCorrelati);
                    storicizzaPassiCorrelati.BeginInvoke(idRuoloOld, idRuoloNew, callback, null);
                }
            }
            //FINE
        }
コード例 #3
0
        /// <summary>
        /// Metodo per la chiusura di un fase di lavoro
        /// </summary>
        /// <param name="result">Risultato dell'azione precedente</param>
        /// <param name="details">Dettagli sul risultato precedente</param>
        private void CloseReportVoice(SaveChangesToRoleReportResult result, String details)
        {
            if (Report[Report.Count - 1].Result == SaveChangesToRoleReportResult.Waiting || Report[Report.Count - 1].Result != SaveChangesToRoleReportResult.KO)
            {
                Report[Report.Count - 1].Result = result;
            }
            Report[Report.Count - 1].Description += "<br />" + details;
            Report[Report.Count - 1].ImageUrl     = Report[Report.Count - 1].Result == SaveChangesToRoleReportResult.OK ? "Images/completed.jpg" : "Images/failed.jpg";

            // Se la fase è Finish o se il risultato dell'operazione è un errore, viene inizializzato il report
            if (SaveChangesRequest.Phase == SaveChangesToRolePhase.Finish || result == SaveChangesToRoleReportResult.KO)
            {
                ReportingUtils.PrintRequest = new PrintReportObjectTransformationRequest()
                {
                    DataObject  = Report.ToArray(),
                    ContextName = "ModificaRuolo",
                    ReportKey   = "ModificaRuolo"
                }
            }
            ;
        }
コード例 #4
0
        /// <summary>
        /// Metodo per la renderizzazione del report. Questa funzione aggiunge anche un eventuale messaggio di richiesta
        /// da mostrare all'amministratore
        /// </summary>
        /// <param name="result">Risultato dell'ultima azione eseguita. Viene utilizzato per decidere se chiudere o meno il report</param>
        /// <returns>Renderizzazione del datagrid cui è stato bindato il report</returns>
        private string RenderReport(SaveChangesToRoleReportResult result)
        {
            // Associazione della sorgente dati al datagrid
            this.dgReport.DataSource = Report;
            this.dgReport.DataBind();

            // Response da restituire al client
            StringBuilder response;

            // Il primo carattere della response sarà un numero che assumerà il valore 0 se la fase corrente è Finish o
            // se result è KO altrimenti assumerà il valore 1 se l'operazione ancora deve continuare o 2 se bisogna
            // mostrare una richiesta all'amministratore. Questo valore sarà utilizzato dal client per decidere
            // se deve richiamare di nuovo il server o se l'operazione si è conclusa.
            if (result != SaveChangesToRoleReportResult.KO && !String.IsNullOrEmpty(MessageToShow))
            {
                response = new StringBuilder("2");
                response.AppendFormat("{0}||", MessageToShow);
            }
            else
            {
                response = new StringBuilder(result != SaveChangesToRoleReportResult.KO && SaveChangesRequest.Phase != SaveChangesToRolePhase.Finish ? "1" : "0");
            }

            // Inizializzazione degli oggetti necessari alla creazione della stringa HTML da inviare al client
            StringWriter   stringWriter = new StringWriter();
            HtmlTextWriter writer       = new HtmlTextWriter(stringWriter);

            // Renderizzazione del datagrid del report
            this.dgReport.RenderControl(writer);

            // Flushing del writer e finalizzazione del prodotto di renderizzazione
            stringWriter.Flush();
            response.Append(stringWriter.GetStringBuilder());
            stringWriter.Close();

            // Restituzione del report renderizzato
            return(response.ToString());
        }