178 lines
9.9 KiB
C#

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<LogPdf> GetlogPdf(long idPdf) {
return getLogPdf(idPdf);
}
public List<DocumentoPdf> GetPdfs(RicercaPdf ricercaPdf) { return getPdf(ricercaPdf); }
public DocumentoPdf GetPdf (long idPdf) {
RicercaPdf ricercaPdf = new RicercaPdf();
ricercaPdf.IdPdf = idPdf;
DocumentoPdf documentoPdf = getPdf(ricercaPdf).First<DocumentoPdf>();
documentoPdf.Image = getImage(idPdf);
return documentoPdf;
}
private long setDocumentPdf(DocumentoPdf documentoPdf,string idProvenienza)
{
List<Parametro> pDocumentPdf = new List<Parametro>();
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<Parametro> param = new List<Parametro>();
param.Add(new Parametro { Value = idPdf, ParameterName = "idPdf" });
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerReportArchive, "READIMAGEPDF", param);
return (byte[])dt.Rows[0]["IMAGE"];
}
private List<LogPdf> getLogPdf(long idPdf)
{
List<Parametro> param = new List<Parametro>();
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<LogPdf>();
}
private int delPdf(long idPdf, string idProvenienza)
{
List<Parametro> param = new List<Parametro>();
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<Parametro> param = new List<Parametro>();
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<DocumentoPdf> getPdf(RicercaPdf ricercaPdf) {
List<Parametro> param = new List<Parametro>();
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> 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<Cliente>(),
dtCreazione = doc.Key.dtCreazione,
dtRestore = doc.Key.dtRestore,
dtEliminato = doc.Key.dtEliminato,
logPdf = getLogPdf(doc.Key.IdPdf)
}).ToList<DocumentoPdf>();
return documentoPdf;
}
}
}