Beispiel #1
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                response = new PrintReportResponse();

                DataSet dataSet = new DataSet();

                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();

                dataSet = dataExtractor.ExtractData(request);

                report.AddRange(this.CreateReport(dataSet, request));

                response.Document = reportGeneration.GenerateReport(request, report);
            }
            catch (Exception ex)
            {
                logger.Debug("Errore nella generazione del report - ", ex);
                throw new ReportGenerationFailedException(ex.Message);
            }

            return(response);
        }
Beispiel #2
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                //personalizzo il report
                request.Title    = String.Format("{0} - Log Conservazione", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione);
                request.SubTitle = string.Format("Data generazione report: {0}", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                request.AdditionalInformation = this.ReportSummary(request.SearchFilters);


                //istanzio la response da restituire
                response = new PrintReportResponse();

                // Recupero dati
                DataSet dataSet = dataExtractor.ExtractData(request);

                // Generazione dati per il report
                List <DocsPaVO.Report.Report> report = this.CreateReport(dataSet, request);

                // Generazione file report
                response.Document = reportGeneration.GenerateReport(request, report);
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            // Restituzione del report
            return(response);
        }
Beispiel #3
0
        private void PrintReportOperator()
        {
            string             generateReportApiUrl = Properties.Resources.GenerateReportAPIURL;
            PrintReportRequest printReportRequest   = new PrintReportRequest(Properties.Settings.Default.Username);
            var sentParam = JsonConvert.SerializeObject(printReportRequest);
            DataResponseObject response = (DataResponseObject)restApi.post(ip_address_server, generateReportApiUrl, true, sentParam);

            if (response != null)
            {
                switch (response.Status)
                {
                case 206:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.PRINT_REPORT_OPERATOR_SUCCESS, ToolTipIcon.Info);
                    break;

                case 208:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", response.Message, ToolTipIcon.Warning);
                    break;

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", response.Message, ToolTipIcon.Error);
                    break;
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
            }
        }
Beispiel #4
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request)
        {
            IReportGeneratorBehavior      formatGenerator     = base.CreateReportGenerator(request);
            IReportDataExtractionBehavior reportDataExtractor = new DatasetReportDataExtractionBehavior();

            return(base.GenerateReport(request, reportDataExtractor, formatGenerator));
        }
Beispiel #5
0
        /// <summary>
        /// Funzione per la generazione di un report
        /// </summary>
        /// <param name="dataExtractor">Estrattore dei dati</param>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="contextName">Nome del contesto di estrazione</param>
        /// <param name="reportSubtitle">Sotto titolo da assegnare al report</param>
        /// <returns>Report da esportare</returns>
        private List <DocsPaVO.Report.Report> GetReport(
            IReportDataExtractionBehavior dataExtractor,
            PrintReportRequest request,
            String contextName,
            String reportSubtitle)
        {
            // Impostazione di titolo e sottotitolo del report
            request.SubTitle = reportSubtitle;

            // Estrazione dati
            DataSet dataSet = this.GetReportData(dataExtractor, request, contextName);

            String title = request.Title;

            if (dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
            {
                title += BusinessLogic.ProfilazioneDinamica.ProfilazioneDocumenti.GetTipologyDescriptionByDocNumber(dataSet.Tables[0].Rows[0]["DocNumber"].ToString());

                title += String.Format(" - Stampa generata {0}", DateTime.Now.ToString("dddd dd MMMM yyyy"));
            }

            request.Title = title;

            // Generazione del report
            List <DocsPaVO.Report.Report> report = base.CreateReport(dataSet, request);

            // Restituzione del report creato
            return(report);
        }
Beispiel #6
0
        /// <summary>
        /// Restituisce la lista degli id dei documenti appartenenti ad un'istanza.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <string> GetListaDocumentiIstanze(PrintReportRequest request)
        {
            List <string> retList = new List <string>();

            string idAmm     = request.SearchFilters.Where(f => f.argomento == "id_amm").FirstOrDefault().valore;
            string nextSysId = request.SearchFilters.Where(f => f.argomento == "next_system_id").FirstOrDefault().valore;
            string lastSysId = request.SearchFilters.Where(f => f.argomento == "last_system_id").FirstOrDefault().valore;
            string idIst     = request.SearchFilters.Where(f => f.argomento == "id_istanza").FirstOrDefault().valore;

            using (DBProvider dbProvider = new DBProvider())
            {
                Query query = InitQuery.getInstance().getQuery("S_REG_CONS_GET_LIST_DOC_ISTANZE");
                query.setParam("id_amm", idAmm);
                query.setParam("next_system_id", nextSysId);
                query.setParam("last_system_id", lastSysId);
                query.setParam("id_istanza", idIst);

                using (IDataReader dataReader = dbProvider.ExecuteReader(query.getSQL()))
                {
                    while (dataReader.Read())
                    {
                        retList.Add(dataReader["ID_OGGETTO"].ToString());
                    }
                }
            }

            return(retList);
        }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private String GetTitle(PrintReportRequest request)
        {
            String title = String.Empty;
            // Creazione del titolo del report
            String ammDescr = Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione;
            String rfDesc   = String.Empty;

            // Recupero dell'id dell'RF
            String idRf = request.SearchFilters.Where(f => f.argomento == "idRf").FirstOrDefault().valore;

            if (!String.IsNullOrEmpty(idRf))
            {
                Registro rf = Utenti.RegistriManager.getRegistro(idRf);
                rfDesc = String.Format("[{0}] {1}", rf.codRegistro, rf.descrizione);
            }

            title = String.Format("{0}\n{1}\n", ammDescr, String.IsNullOrEmpty(rfDesc) ? request.AdditionalInformation : rfDesc);

            if (!String.IsNullOrEmpty(rfDesc))
            {
                title += request.AdditionalInformation + "\n";
            }
            request.AdditionalInformation = String.Empty;
            return(title);
        }
Beispiel #8
0
        /// <summary>
        /// Metodo per la generazione del report
        /// </summary>
        /// <param name="request">Informazioni utili alla creazione del report</param>
        /// <param name="dataExtractor">Oggetto responsabile dell'estrazione dati</param>
        /// <param name="reportGeneration">Oggetto responsabile della generazione del report fisico</param>
        /// <returns>Risultato del processo di creazione report</returns>
        /// <exception cref="ReportGenerationFailedException" />
        protected virtual PrintReportResponse GenerateReport(PrintReportRequest request,
                                                             IReportDataExtractionBehavior dataExtractor,
                                                             IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                // Response da restituire
                response = new PrintReportResponse();

                // Recupero dati
                DataSet dataSet = dataExtractor.ExtractData(request);

                // Generazione dati per il report
                List <DocsPaVO.Report.Report> report = this.CreateReport(dataSet, request);

                // Generazione file report
                response.Document = reportGeneration.GenerateReport(request, report);
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            // Restituzione del report
            return(response);
        }
Beispiel #9
0
        /// <summary>
        /// Metodo per il reperimento di un report a partire dalla request
        /// </summary>
        /// <param name="rquest">Request con le informazioni sul report da generare</param>
        /// <returns>Response generata dal command di reporting</returns>
        public static PrintReportResponse GetReport(PrintReportRequest request)
        {
            PrintReportResponse response = null;

            // Recupero di tutti i tipi che hanno almeno un attributo ReportGeneratorAttribute
            Type myType = typeof(ReportGeneratorCommand);

            Type[] types = Assembly.GetExecutingAssembly().GetTypes().Where(t => String.Equals(t.Namespace, myType.Namespace, StringComparison.Ordinal) &&
                                                                            t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true).Length > 0).ToArray();

            // Individuazione di un tipo (se esiste), che abbia l'attributo ReportGeneratorAttribute con l'attributo Key uguale a quello
            // contenuto nella request
            foreach (Type t in types)
            {
                // Individuazione della prima classe che ha l'attributo ReportGeneratorAttribute valorizzato con key report
                // uguale a quello contenuto nella request e context name anch'esso pari a quello della request
                ReportGeneratorAttribute reportType = ((ReportGeneratorAttribute[])t.GetCustomAttributes(typeof(ReportGeneratorAttribute), true)).Where(
                    e => e.Key == request.ReportKey && e.ContextName == request.ContextName).FirstOrDefault();

                if (reportType != null)
                {
                    // Se il tipo è stato individuato, viene istanziata la classe e si genera il report
                    response = ((ReportGeneratorCommand)Activator.CreateInstance(t)).GenerateReport(request);
                    break;
                }
            }

            // Restituzione della response
            return(response);
        }
Beispiel #10
0
        /// <summary>
        /// Generazione del report con la lista dei ruoli disabilitati o inibiti. Il report prodotto sarà un worksheet Excel
        /// costituito da 2 fogli con i seguenti sotto report:
        /// <ol>
        ///     <li>Ruoli Disabilitati (codice, descrizione, UO)</li>
        ///     <li>Ruoli inibiti alla ricezione di trasmissioni (codice, descrizione , UO)</li>
        /// </ol>
        /// </summary>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="dataExtractor">Estrattore dei dati</param>
        /// <param name="reportGeneration">Behavior costruttore del report</param>
        /// <returns>Report prodotto</returns>
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                // Lista dei report da esportare
                List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>();

                // Response da restituire
                response = new PrintReportResponse();

                // Generazione del report relativo ai ruoli disabilitati
                reports.AddRange(this.GetReport(dataExtractor, request, "DisabledRoles",
                                                String.Format("{0}\n{1}", request.Title, "Ruoli disabilitati"), "Foglio 1 di 2"));

                // Generazione del report relativo ai ruoli inibiti alla ricezione di trasmissioni
                reports.AddRange(this.GetReport(dataExtractor, request, "InhibitedRoles", "Ruoli inibiti alla ricezione trasmissioni", "Foglio 2 di 2"));

                // Generazione file report
                response.Document = reportGeneration.GenerateReport(request, reports);
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            // Restituzione del report
            return(response);
        }
Beispiel #11
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                response = new PrintReportResponse();

                DataSet dataSet = new DataSet();

                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();

                // i due fogli del report sono stati uniti in un singolo report
                dataSet = dataExtractor.ExtractData(request);
                report.AddRange(this.CreateReport(dataSet, request));

                response.Document = reportGeneration.GenerateReport(request, report);

                if (response.Document != null)
                {
                    response.Document.name     = String.Format("Report_Funzioni_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy"));
                    response.Document.fullName = response.Document.name;
                }
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            return(response);
        }
Beispiel #12
0
        /// <summary>
        /// Funzione per l'estrazione dei dati relativi ad un determinato contesto
        /// </summary>
        /// <param name="dataExtractor">Estrattore dei dati</param>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="contextName">Nome del contesto</param>
        /// <returns>DataSet con i dati da esportare</returns>
        private DataSet GetReportData(IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, String contextName)
        {
            // Impostazione del contesto
            request.ReportKey = contextName;

            // Generazione del report
            return(dataExtractor.ExtractData(request));
        }
Beispiel #13
0
        /// <summary>
        /// Metodo da richiamare per la generazione di un report. Il comportamento strandard prevede
        /// l'utilizzo di un behavior per l'estrazione dati basato su query list. Sovrascrivere questo
        /// metodo per ottenere un comportamento differente.
        /// </summary>
        /// <param name="request">Informazioni utili alla generazione del report</param>
        /// <returns>Outup del processo di generazione</returns>
        protected virtual PrintReportResponse GenerateReport(PrintReportRequest request)
        {
            IReportDataExtractionBehavior reportDataExtractor = new QueryListReportDataExtractionBehavior();
            IReportGeneratorBehavior      formatGenerator     = this.CreateReportGenerator(request);

            // Generazione del report
            return(this.GenerateReport(request, reportDataExtractor, formatGenerator));
        }
Beispiel #14
0
        /// <summary>
        /// Metodo per la generazione del report
        /// </summary>
        /// <param name="request"></param>
        /// <param name="dataExtractor"></param>
        /// <param name="reportGeneration"></param>
        /// <returns></returns>
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                // Lista dei report da esportare
                List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>();

                // Response da restituire
                response = new PrintReportResponse();

                // Dataset per l'estrazione
                DataSet dataSet = new DataSet();

                // Foglio per Accesso documentale
                request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso Documentale";
                dataSet = dataExtractor.ExtractData(request);
                reports.AddRange(this.CreateReport(dataSet, request));

                // Foglio per Accesso generalizzato e civico
                request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso Generalizzato e Civico";
                dataSet = dataExtractor.ExtractData(request);
                reports.AddRange(this.CreateReport(dataSet, request));

                // Foglio per Accesso dei consiglieri provinciali
                request.SearchFilters.Where(f => f.argomento == "tipologia").FirstOrDefault().valore = "Accesso dei Consiglieri provinciali";
                dataSet = dataExtractor.ExtractData(request);
                reports.AddRange(this.CreateReport(dataSet, request));

                // Generazione file report
                response.Document = reportGeneration.GenerateReport(request, reports);

                // Formato file
                string ext = string.Empty;
                if (request.ReportType == ReportTypeEnum.ODS)
                {
                    ext = "ods";
                }
                else
                {
                    ext = "xls";
                }

                if (response.Document != null)
                {
                    response.Document.name     = String.Format("Estrazione_Registro_Accessi_{0}.{1}", DateTime.Now.ToString("dd-MM-yyyy"), ext);
                    response.Document.fullName = response.Document.name;
                }
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            return(response);
        }
Beispiel #15
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                response = new PrintReportResponse();

                DataSet dataSet = new DataSet();

                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();
                if (request.ContextName.Equals("ExportTrasmissioniPendenti"))
                {
                    request.ReportKey = "ExportTrasmissioniPendentiDoc";
                    dataSet           = dataExtractor.ExtractData(request);
                    report.AddRange(this.CreateReport(dataSet, request));

                    request.ReportKey = "ExportTrasmissioniPendentiFasc";
                    dataSet           = dataExtractor.ExtractData(request);
                    report.AddRange(this.CreateReport(dataSet, request));

                    response.Document = reportGeneration.GenerateReport(request, report);

                    if (response.Document != null)
                    {
                        string ext = string.Empty;
                        switch (request.ReportType)
                        {
                        case ReportTypeEnum.PDF:
                            ext = "pdf";
                            break;

                        case ReportTypeEnum.Excel:
                            ext = "xls";
                            break;

                        case ReportTypeEnum.ODS:
                            ext = "ods";
                            break;
                        }

                        response.Document.name     = String.Format("Report_Trasmissioni_Pendenti{0}." + ext, DateTime.Now.ToString("dd-MM-yyyy"));
                        response.Document.fullName = response.Document.name;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Debug("Errore nella generazione del report - ", ex);
                throw new ReportGenerationFailedException(ex.Message);
            }

            return(response);
        }
Beispiel #16
0
        /// <summary>
        /// Discrimina il comportamento del generatore di report in base alla tipologia
        /// in ingresso (istanze/documenti).
        /// </summary>
        /// <param name="dataExtractor"></param>
        /// <param name="request"></param>
        /// <param name="contextName">Identifica istanze/documenti</param>
        /// <returns>Report relativo alla singola istanza/documento</returns>
        private List <DocsPaVO.Report.Report> GetReport
            (IReportDataExtractionBehavior dataExtractor, PrintReportRequest request, string contextName)
        {
            //imposto il context al valore attuale ed estraggo i dati
            request.ReportKey = contextName;
            DataSet dataset = dataExtractor.ExtractData(request);

            //genero il report
            List <DocsPaVO.Report.Report> report = this.CreateReport(dataset, request);

            return(report);
        }
Beispiel #17
0
        protected void btn_conferma_Click(object sender, EventArgs e)
        {
            DocsPaWR.CopyVisibility copyVisibility = getCopyVisibility();

            if (string.IsNullOrEmpty(copyVisibility.codRuoloDestinazione))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "emptySearch_3", "alert('Selezionare un ruolo di destinazione !');", true);
            }
            else
            {
                AmmUtils.WebServiceLink wsLink = new AmmUtils.WebServiceLink();

                DocsPAWA.AdminTool.Manager.SessionManager session = new DocsPAWA.AdminTool.Manager.SessionManager();
                InfoUtenteAmministratore iuA = session.getUserAmmSession();
                InfoUtente ut = new InfoUtente();
                ut.idPeople          = iuA.idPeople;
                ut.idGruppo          = (iuA.idGruppo == null ? "0" : iuA.idGruppo);
                ut.idCorrGlobali     = (iuA.idCorrGlobali == null ? "0" : iuA.idCorrGlobali);
                ut.idAmministrazione = iuA.idAmministrazione;
                ut.sede   = iuA.sede;
                ut.userId = iuA.userId;


                DocsPaWR.EsitoOperazione esitoOperazione = wsLink.CopyVisibility(ut, copyVisibility);
                // ABBATANGELI GIANLUIGI
                if (esitoOperazione.Codice == 0)
                {
                    //ABBATANGELI GIANLUIGI
                    PrintReportRequest request = new PrintReportRequest
                    {
                        ContextName   = "CopiaVisibilita",
                        SearchFilters = null,
                        UserInfo      = ut,
                        Title         = "Report copia visibilità"
                    };


                    ReportingUtils.PrintRequest = request;
                    if (esitoOperazione.Descrizione.Contains('*'))
                    {
                        esitoOperazione.Descrizione = esitoOperazione.Descrizione.Split('*')[0];
                    }

                    ClientScript.RegisterStartupScript(this.GetType(), "esitoOperazione", "if (confirm('" + esitoOperazione.Descrizione + "\\n\\rEsportare il risultato?')) {" + ReportScript + "}", true);
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "esitoOperazione", "alert('" + esitoOperazione.Descrizione + "');", true);
                }
            }
        }
Beispiel #18
0
        /// <summary>
        /// Metodo per l'estrazione dati da query list
        /// </summary>
        /// <param name="request">Informazioni sull'operazione da compiere</param>
        /// <returns>DataSet con i dati estratti</returns>
        public DataSet ExtractData(PrintReportRequest request)
        {
            MethodInfo reportMethod = DocsPaDB.Query_DocsPAWS.Reporting.ReportMethodFinder.FindMethod(request.ReportKey);

            if (reportMethod == null)
            {
                throw new DataExtractorNotFoundException();
            }

            object instance = Activator.CreateInstance(reportMethod.DeclaringType);

            // Invocazione nome per reflection e recupero del dataset con il risultato
            return(reportMethod.Invoke(instance, new object[] { request.UserInfo, request.SearchFilters }) as DataSet);
        }
Beispiel #19
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                //Personalizzazione report
                //le informazioni necessarie sono inserite nella request:
                string nomePolicy  = request.SubTitle;
                string noteRifiuto = request.AdditionalInformation;
                string idIstanza   = request.SearchFilters.Where(f => f.argomento == "idIstanza").FirstOrDefault().valore;

                request.Title    = string.Format("{0} - Notifica di rifiuto istanza", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione);
                request.SubTitle = string.Format("Stampa del {0}", DateTime.Now.ToShortDateString());
                request.AdditionalInformation = "Numero istanza: " + idIstanza + "\n";
                if (!(string.IsNullOrEmpty(noteRifiuto)))
                {
                    request.AdditionalInformation += "Note rifiuto: " + noteRifiuto + "\n";
                }
                if (!(string.IsNullOrEmpty(nomePolicy)))
                {
                    request.AdditionalInformation += "Policy utilizzata: " + nomePolicy + "\n";
                }

                //istanzio la response
                response = new PrintReportResponse();

                //Recupero dataset
                //DataSet dataSet = dataExtractor.ExtractData(request);

                //Generazione dati per report
                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();

                //1 - report principale con esito verifiche
                report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoVerifiche"));

                //2 - report aggiuntivo con dettaglio policy
                report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoPolicy"));

                //Creazione file report
                response.Document = reportGeneration.GenerateReport(request, report);
            }
            catch (Exception e)
            {
                throw new ReportGenerationFailedException(e.Message);
            }

            //restituzione del report
            return(response);
        }
Beispiel #20
0
        /// <summary>
        /// Funzione per la generazione di un report
        /// </summary>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <returns>Report prodotto</returns>
        public static FileDocumento GenerateReport(PrintReportRequest request)
        {
            PrintReportResponse response = null;

            try
            {
                response = docsPaWS.GenerateReport(request);
            }
            catch (Exception e)
            {
                NttDataWA.Utils.SoapExceptionParser.ThrowOriginalException(e);
            }

            return(response.Document);
        }
Beispiel #21
0
        /// <summary>
        /// Metodo per la generazione di titolo e sottotitolo del report
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private void SetTitle(PrintReportRequest request)
        {
            string title    = string.Empty;
            string subTitle = string.Empty;

            string ammDescr = Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione;

            title    = string.Format("{0} - Registro della Conservazione", ammDescr);
            subTitle = request.AdditionalInformation;

            //imposto titolo e sottotitolo nella request e svuoto il campo additional information
            request.Title    = title;
            request.SubTitle = subTitle;
            request.AdditionalInformation = string.Empty;
        }
Beispiel #22
0
        /// <summary>
        /// Funzione per la generazione di un report
        /// </summary>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <returns>Report prodotto</returns>
        public static FileDocumento GenerateReport(PrintReportRequest request)
        {
            PrintReportResponse response = null;

            try
            {
                response = docsPaWS.GenerateReport(request);
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return(null);
            }
            return(response.Document);
        }
Beispiel #23
0
        /// <summary>
        /// Costruisce il summary relativo all'istanza o documento in oggetto
        /// </summary>
        /// </summary>
        /// <param name="request"></param>
        /// <param name="context">distingue tra summary istanza/documento</param>
        /// <param name="idIstanza">id istanza attuale</param>
        /// <param name="idDoc">id documento (se richiesto)</param>
        /// <returns></returns>
        private string GetSummary(PrintReportRequest request, string context, string idIstanza, string idDoc)
        {
            string summary = string.Empty;
            RegistroConservazionePrintManager manager = new RegistroConservazionePrintManager();


            //costruzione del summary nei due casi
            if (context == "istanza")
            {
                RegistroConservazioneSummary summaryData = manager.GetSummaryDataIst(idIstanza);

                string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy");
                string invioDate    = summaryData.invioDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.invioDate.ToString("dd/MM/yyyy");

                summary = "ISTANZA - ID istanza: " + idIstanza + "\n\n";

                summary += "Descrizione istanza: " + summaryData.descrizione + "\n";
                summary += "Data di apertura: " + creationDate + "\n";
                summary += "Data di invio al CS: " + invioDate + "\n";
                summary += "Numero documenti: " + summaryData.numDoc + "\n";
                summary += "Dimensioni complessive: " + manager.ConvertDocSize(summaryData.fileDim) + "\n";

                logger.Debug(summary);
            }
            else if (context == "documento")
            {
                RegistroConservazioneSummary summaryData = manager.GetSummaryDataDoc(idDoc);

                string segnatura    = new DocsPaDB.Query_DocsPAWS.Conservazione().getSegnatura_Id(idDoc);
                string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy");

                summary = "DOCUMENTO - ID/Segnatura documento: " + segnatura + "\n\n";

                summary += "ID istanza: " + idIstanza + "\n";
                summary += "Data creazione/protocollazione: " + creationDate + "\n";
                summary += "Oggetto: " + summaryData.descrizione + "\n";
                summary += "Codice fascicolo: " + summaryData.codiceFascicolo + "\n";
                summary += "N. allegati: " + summaryData.numDoc + "\n";
                summary += "Tipo file: " + summaryData.tipoFile + "\n";
                summary += "Dimensioni file: " + manager.ConvertDocSize(summaryData.fileDim) + "\n";

                logger.Debug(summary);
            }


            return(summary);
        }
Beispiel #24
0
        /// <summary>
        /// Metodo per l'instanziazione del report generator relativo al formato di esportazione
        /// scelto.
        /// </summary>
        /// <param name="request">Informazioni utilili alla generazione del report</param>
        /// <returns>Instanza dell'oggetto responsabile della generazione fisica del report</returns>
        /// <exception cref="ReportGeneratorNotFoundException"></exception>
        protected virtual IReportGeneratorBehavior CreateReportGenerator(PrintReportRequest request)
        {
            switch (request.ReportType)
            {
            case ReportTypeEnum.PDF:
                return(new PdfReportGeneratorBehavior());

            case ReportTypeEnum.Excel:
                return(new ExcelReportGeneratorBehavior());

            case ReportTypeEnum.ODS:
                return(new OdsReportGeneratorBehavior());

            default:
                throw new ReportGeneratorNotFoundException();
            }
        }
        public PrintReportResponse PrintReport(PrintReportRequest request)
        {
            Platform.CheckForNullReference(request, "request");
            Platform.CheckMemberIsSet(request.ReportRef, "ReportRef");

            var report = PersistenceContext.Load <Report>(request.ReportRef);

            var printModel = request.RecipientContactPointRef != null ?
                             new ReportPageModel(report, PersistenceContext.Load <ExternalPractitionerContactPoint>(request.RecipientContactPointRef))
                                : new ReportPageModel(report);

            using (var printResult = PrintJob.Run(printModel))
            {
                var contents = File.ReadAllBytes(printResult.OutputFilePath);
                return(new PrintReportResponse(contents));
            }
        }
Beispiel #26
0
        /// <summary>
        /// Metodo per la generazione del report sulla consistenza dell'organigramma. Il report prodotto sarà un worksheet Excel
        /// costituito da 7 fogli con i seguenti sotto report:
        /// <ol>
        ///     <li>Ruoli Disabilitati (codice, descrizione, UO)</li>
        ///     <li>Ruoli inibiti alla ricezione di trasmissioni (codice, descrizione , UO)</li>
        ///     <li>Ruoli senza utenti(codice, descrizione, UO)</li>
        ///     <li>Ruoli senza registri o RF (codice, descrizione, UO)</li>
        ///     <li>Ruoli senza funzioni (codice, descrizione, UO)</li>
        ///     <li>UO senza ruoli (codice, descrizione, UO Padre)</li>
        ///     <li>UO senza ruoli di riferimento (codice descrizione, UO Padre)</li>
        /// </ol>
        /// </summary>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="dataExtractor">Estrattore dei dati</param>
        /// <param name="reportGeneration">Behavior responsabile della generazione del report</param>
        /// <returns>Report</returns>
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                // Lista dei report da esportare
                List <DocsPaVO.Report.Report> reports = new List <DocsPaVO.Report.Report>();

                // Response da restituire
                response = new PrintReportResponse();

                // Generazione del report relativo ai ruoli disabilitati (essengo il primo report, viene scritto anche
                // il titolo
                reports.AddRange(this.GetReport(dataExtractor, request, "DisabledRoles",
                                                String.Format("{0}\n{1}", request.Title, "Ruoli disabilitati"), "Foglio 1 di 7"));

                // Generazione del report relativo ai ruoli inibiti alla ricezione di trasmissioni
                reports.AddRange(this.GetReport(dataExtractor, request, "InhibitedRoles", "Ruoli inibiti alla ricezione trasmissioni", "Foglio 2 di 7"));

                // Generazione del report relativo ai ruoli senza utenti
                reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutUsers", "Ruoli senza utenti", "Foglio 3 di 7"));

                // Generazione del report relativo ai ruoli senza registri o rf
                reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutRegsOrRF", "Ruoli senza registri o rf", "Foglio 4 di 7"));

                // Generazione del report relativo ai ruoli senza funzioni
                reports.AddRange(this.GetReport(dataExtractor, request, "RolesWOutFunctions", "Ruoli senza funzioni", "Foglio 5 di 7"));

                // Generazione del report relativo alle UO senza ruoli
                reports.AddRange(this.GetReport(dataExtractor, request, "UOWOutRoles", "UO senza ruoli", "Foglio 6 di 7"));

                // Generazione del report relativo alle UO senza ruoli di riferimento
                reports.AddRange(this.GetReport(dataExtractor, request, "UOWOutRF", "UO senza ruoli di riferimento", "Foglio 7 di 7"));

                // Generazione file report
                response.Document = reportGeneration.GenerateReport(request, reports);
            }
            catch (Exception ex)
            {
                throw new ReportGenerationFailedException(ex.Message);
            }

            // Restituzione del report
            return(response);
        }
Beispiel #27
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                //Personalizzazione report
                //le informazioni necessarie sono inserite nella request:
                string nomePolicy = request.SubTitle;
                //string idIstanza = request.SearchFilters.Where(f => f.argomento == "idIstanza").FirstOrDefault().valore;
                string idSupporto = request.SearchFilters.Where(f => f.argomento == "idSupporto").FirstOrDefault().valore;

                request.Title = string.Format("{0} - Richiesta di Rigenerazione Istanza", Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(request.UserInfo.idAmministrazione).Descrizione);
                //request.SubTitle = string.Format("Stampa del {0}", DateTime.Now.ToShortDateString());

                //request.AdditionalInformation = "Numero istanza: " + idIstanza + "\n";
                //request.SubTitle = string.Format("Si richiede la rigenerazione dell'istanza numero {0} perché risulta danneggiato il supporto numero {1}.", idIstanza, idSupporto);
                request.AdditionalInformation = string.Empty;

                //istanzio la response
                response = new PrintReportResponse();

                //Recupero dataset
                //DataSet dataSet = dataExtractor.ExtractData(request);

                //Generazione dati per report
                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();

                report.AddRange(this.GetReport(dataExtractor, request));

                //2 - report aggiuntivo con dettaglio policy
                //report.AddRange(this.GetReport(dataExtractor, request, "NotificheRifiutoPolicy"));

                //Creazione file report
                response.Document = reportGeneration.GenerateReport(request, report);
            }
            catch (Exception e)
            {
                throw new ReportGenerationFailedException(e.Message);
            }

            //restituzione del report
            return(response);
        }
Beispiel #28
0
        protected override PrintReportResponse GenerateReport(PrintReportRequest request, IReportDataExtractionBehavior dataExtractor, IReportGeneratorBehavior reportGeneration)
        {
            PrintReportResponse response = null;

            try
            {
                response = new PrintReportResponse();

                // selezione tipo report (micro associate o ruoli/utenti)
                //string key = request.AdditionalInformation;
                //request.AdditionalInformation = string.Empty;
                //request.ReportKey = key;

                DataSet dataSet = new DataSet();

                List <DocsPaVO.Report.Report> report = new List <DocsPaVO.Report.Report>();

                // 1) report micro associate
                request.ReportKey = "AmmExportMacroFunzioni_Micro";
                dataSet           = dataExtractor.ExtractData(request);
                report.AddRange(this.CreateReport(dataSet, request));

                // 2) report ruoli/utenti associati
                request.ReportKey = "AmmExportMacroFunzioni_Ruoli";
                dataSet           = dataExtractor.ExtractData(request);
                report.AddRange(this.CreateReport(dataSet, request));

                response.Document = reportGeneration.GenerateReport(request, report);

                if (response.Document != null)
                {
                    response.Document.name     = String.Format("Report_Tipi_Funzione_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy"));
                    response.Document.fullName = response.Document.name;
                }
            }
            catch (Exception ex)
            {
                logger.Debug("Errore nella generazione del report - ", ex);
                throw new ReportGenerationFailedException(ex.Message);
            }

            return(response);
        }
Beispiel #29
0
        /// <summary>
        /// Generazione del report Excel
        /// </summary>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="reports">Report da esportare</param>
        /// <returns>Documento Excel</returns>
        public FileDocumento GenerateReport(PrintReportRequest request, List <DocsPaVO.Report.Report> reports)
        {
            // Creazione del foglio Excel
            Workbook book = new Workbook();

            // Attivazione del primo foglio
            book.ExcelWorkbook.ActiveSheetIndex = 0;

            // Impostazione proprietà del foglio
            book.Properties.Title   = "Report";
            book.Properties.Created = DateTime.Now;

            // Impostazione degli stili
            this.SetStyles(book);


            // Generazione di un foglio per ogni report
            foreach (var report in reports)
            {
                // Generazione di un foglio con i dati contenuti nel report
                this.AddWorksheet(book, report);
            }

            // Generazione del risultato dell'export
            FileDocumento document = new FileDocumento();

            using (MemoryStream stream = new MemoryStream())
            {
                book.Save(stream);
                stream.Position = 0;

                document.name        = String.Format("Report_{0}.xls", DateTime.Now.ToString("dd-MM-yyyy"));
                document.path        = String.Empty;
                document.fullName    = document.name;
                document.contentType = "application/vnd.ms-excel";
                document.content     = new Byte[stream.Length];

                stream.Read(document.content, 0, document.content.Length);
            }

            return(document);
        }
Beispiel #30
0
        /// <summary>
        /// Metodo per la generazione di un report
        /// </summary>
        /// <param name="dataExtractor">Estrattore dei dati</param>
        /// <param name="request">Informazioni sul report da generare</param>
        /// <param name="contextName">Nome del contesto di estrazione</param>
        /// <param name="reportTitle">Titolo del report</param>
        /// <param name="reportSubtitle">Sotto titolo da assegnare al report</param>
        /// <returns>Report da esportare</returns>
        private List <DocsPaVO.Report.Report> GetReport(
            IReportDataExtractionBehavior dataExtractor,
            PrintReportRequest request,
            String contextName,
            String reportTitle,
            String reportSubtitle)
        {
            // Impostazione di titolo e sottotitolo del report
            request.Title    = reportTitle;
            request.SubTitle = reportSubtitle;

            // Estrazione dati
            DataSet dataSet = this.GetReportData(dataExtractor, request, contextName);

            // Generazione del report
            List <DocsPaVO.Report.Report> report = base.CreateReport(dataSet, request);

            // Restituzione del report creato
            return(report);
        }