using System; using System.Collections.Generic; using System.Linq; using System.Text; using Consulenza.ReportArchive.Entity; using System.Data; namespace Consulenza.ReportArchive { public class ReportArchiveManager { public long SetDocumentPdf(DocumentoPdf documentoPdf,string idProvenienza) { return setDocumentPdf(documentoPdf,idProvenienza); } public int DelPdf(long idPdf, string idProvenienza) { return delPdf(idPdf, idProvenienza); } public int SetStato(long idPdf,string idstato, string idProvenienza) { return setStato(idPdf, idstato, idProvenienza); } public List GetlogPdf(long idPdf) { return getLogPdf(idPdf); } public List GetPdfs(RicercaPdf ricercaPdf) { return getPdf(ricercaPdf); } public DocumentoPdf GetPdf (long idPdf) { RicercaPdf ricercaPdf = new RicercaPdf(); ricercaPdf.IdPdf = idPdf; DocumentoPdf documentoPdf = getPdf(ricercaPdf).First(); documentoPdf.Image = getImage(idPdf); return documentoPdf; } private long setDocumentPdf(DocumentoPdf documentoPdf,string idProvenienza) { List pDocumentPdf = new List(); pDocumentPdf.Add(new Parametro { Value = idProvenienza, ParameterName = "idProvenienza" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.IdModello, ParameterName = "idModello" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.IdStato, ParameterName = "idStato" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.IdArchivio, ParameterName = "idArchivio" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.CodicePB, ParameterName = "CodicePB" }); pDocumentPdf.Add(new Parametro { DbType = DbType.Binary, Value = documentoPdf.Image, ParameterName = "Image" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.Note, ParameterName = "Note" }); pDocumentPdf.Add(new Parametro { Value = DocumentoPdf.ChiaveClientePb(documentoPdf.Clienti), ParameterName = "chiaviClientePb" }); pDocumentPdf.Add(new Parametro { Value = DocumentoPdf.codiceContratto(documentoPdf.Clienti), ParameterName = "CodiceContratto" }); pDocumentPdf.Add(new Parametro { Value = DocumentoPdf.ChiaveProposta(documentoPdf.Clienti), ParameterName = "chiaveProposta" }); pDocumentPdf.Add(new Parametro { Value = DocumentoPdf.PropostaBase(documentoPdf.Clienti), ParameterName = "PropostaBase" }); pDocumentPdf.Add(new Parametro { Value = documentoPdf.ChiaveNucleo, ParameterName = "chiaveNucleo" }); long IdPdf = (long)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerReportArchive, "INSERTPDF", pDocumentPdf); return IdPdf; } private byte[] getImage(long idPdf) { List param = new List(); param.Add(new Parametro { Value = idPdf, ParameterName = "idPdf" }); DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerReportArchive, "READIMAGEPDF", param); return (byte[])dt.Rows[0]["IMAGE"]; } private List getLogPdf(long idPdf) { List param = new List(); param.Add(new Parametro { Value = idPdf, ParameterName = "idPdf" }); DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerReportArchive, "GETLOGPDF", param); return (from DataRow row in dt.Rows select new LogPdf { IdPdf = int.Parse(row["idPdf"].ToString()), Dtstamp = row["dtstamp"].ToString(), Evento = row["Evento"].ToString(), EventoDesc = row["EventoDesc"].ToString(), Provenienza = row["Provenienza"].ToString(), Utente = row["utente"].ToString(), }).ToList(); } private int delPdf(long idPdf, string idProvenienza) { List param = new List(); param.Add(new Parametro { Value = idPdf, ParameterName = "idPdf" }); param.Add(new Parametro { Value = idPdf, ParameterName = "idProvenienza" }); DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerReportArchive, "DELETEPDF", param); return 0; } private int setStato(long idPdf, string idstato, string idProvenienza) { List param = new List(); param.Add(new Parametro { Value = idPdf, ParameterName = "idPdf" }); param.Add(new Parametro { Value = idstato, ParameterName = "idstato" }); param.Add(new Parametro { Value = idProvenienza, ParameterName = "idProvenienza" }); return (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerReportArchive, "SETSTATOPDF", param); } private List getPdf(RicercaPdf ricercaPdf) { List param = new List(); param.Add(new Parametro { Value = ricercaPdf.IdPdf, ParameterName = "idPdf" }); param.Add(new Parametro { Value = ricercaPdf.ChiaveClientePb, ParameterName = "chiaveClientePb" }); param.Add(new Parametro { Value = ricercaPdf.ChiaveNucleo, ParameterName = "chiaveNucleo" }); param.Add(new Parametro { Value = ricercaPdf.CodiceContratto, ParameterName = "codiceContratto" }); param.Add(new Parametro { Value = ricercaPdf.CodicePb, ParameterName = "codicePb" }); if (ricercaPdf.DtFine < DateTime.MaxValue && ricercaPdf.DtFine > DateTime.MinValue) param.Add(new Parametro { DbType=System.Data.DbType.DateTime, Value = ricercaPdf.DtFine, ParameterName = "dtFine" }); if (ricercaPdf.DtInizio < DateTime.MaxValue && ricercaPdf.DtInizio > DateTime.MinValue) param.Add(new Parametro { DbType = System.Data.DbType.DateTime, Value = ricercaPdf.DtInizio, ParameterName = "dtInizio" }); param.Add(new Parametro { Value = ricercaPdf.IdArchivio, ParameterName = "idArchivio" }); param.Add(new Parametro { Value = RicercaPdf.idModelli(ricercaPdf.IdModello), ParameterName = "idModello" }); param.Add(new Parametro { Value = ricercaPdf.IdProvenienza, ParameterName = "idProvenienza" }); param.Add(new Parametro { Value = ricercaPdf.IdStato, ParameterName = "idStato" }); param.Add(new Parametro { Value = ricercaPdf.ChiaveProposta, ParameterName = "chiaveProposta" }); param.Add(new Parametro { Value = ricercaPdf.PropostaBase, ParameterName = "propostaBase" }); DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerReportArchive, "GETPDF", param); List documentoPdf = (from DataRow row in dt.Rows group row by new { ChiaveNucleo = row["ChiaveNucleo"]!=DBNull.Value?long.Parse(row["ChiaveNucleo"].ToString()):0, CodicePB = row["CodicePB"].ToString(), IdArchivio = row["IdArchivio"].ToString(), IdModello = row["IdModello"]!=DBNull.Value?int.Parse(row["IdModello"].ToString()):0, IdPdf = row["IdPdf"] != DBNull.Value ? long.Parse(row["IdPdf"].ToString()) : 0, IdStato = row["IdStato"].ToString(), Note = row["Note"].ToString(), //Image = null, dtCreazione = DateTime.Parse(row["dtCreazione"].ToString()), dtRestore = row["dtRestore"] != DBNull.Value ? DateTime.Parse(row["dtRestore"].ToString()) : new DateTime(), dtEliminato = row["dtEliminato"] != DBNull.Value ? DateTime.Parse(row["dtRestore"].ToString()) : new DateTime() } into doc select new DocumentoPdf { ChiaveNucleo = doc.Key.ChiaveNucleo, CodicePB = doc.Key.CodicePB, IdArchivio = doc.Key.IdArchivio, IdModello = doc.Key.IdModello, IdPdf = doc.Key.IdPdf, IdStato = doc.Key.IdStato, Image = null, Note = doc.Key.Note, Clienti = (from DataRow rowC in dt.Rows where long.Parse(rowC["idPdf"].ToString())==doc.Key.IdPdf select new Cliente { ChiaveClientePb = rowC["ChiaveClientePb"] != DBNull.Value ? long.Parse(rowC["ChiaveClientePb"].ToString()) : 0, CodiceContratto = rowC["CodiceContratto"].ToString(), ChiaveProposta = rowC["ChiaveProposta"] != DBNull.Value ? long.Parse(rowC["ChiaveProposta"].ToString()) : 0, PropostaBase = rowC["PropostaBase"].ToString(), }).ToList(), dtCreazione = doc.Key.dtCreazione, dtRestore = doc.Key.dtRestore, dtEliminato = doc.Key.dtEliminato, logPdf = getLogPdf(doc.Key.IdPdf) }).ToList(); return documentoPdf; } } }