using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using ReportVS; using ceTe.DynamicPDF.Merger; using System.Collections.Generic; using LogFilePDF; public partial class ReinvioASelecta : System.Web.UI.Page { bool periodico; string tipoReport; protected void Page_Load(object sender, EventArgs e) { int identificativoPDF = Convert.ToInt32(Request.QueryString.Get("pdfID")); int pdfC6 = Convert.ToInt32(Request.QueryString.Get("pdfC6")); string rete = Request.QueryString.Get("Rete"); string codiceFiscale = Request.QueryString.Get("CodiceFiscale"); //string tipoReport = Request.QueryString.Get("tipoReport"); ReInvio(identificativoPDF, pdfC6, rete, codiceFiscale); } private byte[] getPDF(int idPDF, int pdfC6, string rete, string codiceFiscale) { DocumentPDF documentPDF = new DocumentPDF(); List parametri = new List(); Parametro idq = new Parametro(); idq.ParameterName = "Id"; idq.DbType = DbType.Int32; idq.Value = idPDF; parametri.Add(idq); DataTable dati = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "[dbo].[sp_getCheckPeriodico]", parametri); periodico = false; tipoReport = string.Empty; if(dati.Rows.Count > 0) { periodico = (Convert.ToBoolean(dati.Rows[0]["FlagPeriodico"])); tipoReport = dati.Rows[0]["TipoReport"].ToString(); } byte[] letteraAccompagnamento; if (!periodico) letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete, LetteraAccompagnamento.TipoReport.Diagnosi, idPDF,false); else if(tipoReport.ToUpper() == "DIAGNOSI") letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete,LetteraAccompagnamento.TipoReport.Diagnosi, idPDF,true); else letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete, LetteraAccompagnamento.TipoReport.Monitoraggio, idPDF,true); byte[] pdf = documentPDF.getDataFromDB(idPDF, pdfC6); PdfDocument pdfLetteraAccompagnamento = new PdfDocument(letteraAccompagnamento); PdfDocument pdfDoc = new PdfDocument(pdf); MergeDocument mDoc = MergeDocument.Merge(pdfLetteraAccompagnamento, pdfDoc); return mDoc.Draw(); } private void ReInvio(int idPDF, int pdfC6, string rete, string codiceFiscale) { List parametri = new List(); Parametro idq = new Parametro(); idq.ParameterName = "Id"; idq.DbType = DbType.Int32; idq.Value = idPDF; parametri.Add(idq); DataTable dati = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "[dbo].[sp_getCheckPeriodico]", parametri); periodico = false; tipoReport = string.Empty; if (dati.Rows.Count > 0) { periodico = (Convert.ToBoolean(dati.Rows[0]["FlagPeriodico"])); tipoReport = dati.Rows[0]["TipoReport"].ToString(); } idq.ParameterName = "IdReport"; int checkLetteraRistampa; if(!periodico) checkLetteraRistampa = (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]", parametri); else checkLetteraRistampa = (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]", parametri); if (checkLetteraRistampa == 1) { List listaParametri = new List(); Parametro id = new Parametro(); id.ParameterName = "IdReport"; id.DbType = DbType.Int32; id.Value = idPDF; listaParametri.Add(id); Parametro image = new Parametro(); image.ParameterName = "Img"; image.DbType = DbType.Binary; image.Value = getPDF(idPDF, pdfC6, rete, codiceFiscale); listaParametri.Add(image); int nuovoId = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "[dbo].[C6_S_WritePDFintoDBRistampa]", listaParametri); List listaParametriRistampa = new List(); Parametro id1 = new Parametro(); id1.ParameterName = "Id"; id1.DbType = DbType.Int32; id1.Value = idPDF; listaParametriRistampa.Add(id1); Parametro idNuovo = new Parametro(); idNuovo.ParameterName = "IdNuovo"; idNuovo.DbType = DbType.Int32; idNuovo.Value = nuovoId; listaParametriRistampa.Add(idNuovo); if(!periodico) DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]", listaParametriRistampa); else DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]", listaParametriRistampa); GestoreLogPDF gl = new GestoreLogPDF(nuovoId); gl.Applicativo = "HD"; gl.scriviLog(EventLog.SELECTA_RistampaReport); } else { //if (Response.ContentType.ToUpper() != "TEXT/HTML") //{ // Response.ContentType = "TEXT/HTML"; // Response.Clear(); //} string msgErrore = "Il documento in questione è già in attesa di essere inviato a Selecta."; //string mostraMessaggioDaCodice = @"MostraMessaggioDaCodice(\""Si è verificato un errore durante l'elaborazione della richiesta.\\n Per il dettaglio vedere l'Event Viewer al seguente link:\\n http://rmsrv06-wse/EVENTVIEWER/eventviewer.aspx\"");"; string command = "alert(\"" + msgErrore + "\");"; string mostraMessaggioDaCodice = @""; ClientScript.RegisterStartupScript(typeof(string), "messaggioErrore", ""); } } }