384 lines
14 KiB
C#
384 lines
14 KiB
C#
using ceTe.DynamicPDF;
|
|
using ceTe.DynamicPDF.Text;
|
|
using System;
|
|
|
|
|
|
namespace Consulenza.ReportCommon
|
|
{
|
|
/// <summary>
|
|
/// Gestore variabili d'ambiente del Report (Template, rete etc...) e repository delle variabili di chiamata
|
|
/// iniziale risolte dal livello Services.
|
|
/// </summary>
|
|
public class ReportEnvironment
|
|
{
|
|
|
|
private readonly ReportType _reportType;
|
|
private FontFamily _fontfamily;
|
|
public FontFamily FontFamily { get { return _fontfamily ?? (_fontfamily = GetFontFamily()); } }
|
|
private ReportStruct _reportstruct = new ReportStruct();
|
|
|
|
|
|
private Cliente _cliente = new Cliente();
|
|
private PrivateBanker _privatebanker = new PrivateBanker();
|
|
private Delegato _privateDelegato = new Delegato();
|
|
|
|
private Proposta _proposta = new Proposta();
|
|
|
|
#region consulenza unica
|
|
|
|
private Diagnosi _diagnosi = new Diagnosi();
|
|
private Monitoraggio _monitoraggio = new Monitoraggio();
|
|
private NucleoUnica _nucleounica = new NucleoUnica();
|
|
private PropostaUnica _propostaunica = new PropostaUnica();
|
|
|
|
#endregion
|
|
|
|
private Immobiliare _immobiliare = new Immobiliare();
|
|
private Nucleo _nucleoimmobiliare = new Nucleo();
|
|
private MappaturaPreliminare _mappaturapreliminare = new MappaturaPreliminare();
|
|
private FinalitaImmobiliare _finalitaimmobiliare = new FinalitaImmobiliare();
|
|
private MonitoraggioImmobiliare _monitoraggioimmobiliare = new MonitoraggioImmobiliare();
|
|
private MonitoraggioImmobiliareNuclei _monitoraggioimmobiliarenuclei = new MonitoraggioImmobiliareNuclei();
|
|
|
|
public bool Adeguata = false;
|
|
/// <summary>
|
|
/// Imposta o recupera il tipo di report.
|
|
/// </summary>
|
|
public ReportType ReportType { get { return _reportType; } }
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera la struttura del report. E' il legame con la parte di "frontend"
|
|
/// </summary>
|
|
public ReportStruct ReportStruct
|
|
{
|
|
get { return _reportstruct; }
|
|
set { _reportstruct = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera l'Id del modello da stampare
|
|
/// </summary>
|
|
public int ModelId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera l'Id del report da stampare
|
|
/// </summary>
|
|
public int ReportId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera il nome nella libreria RisorseEmbedded per il template di ciascuna pagina del report.
|
|
/// </summary>
|
|
public string ResourceNameTemplate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera il nome nella libreria RisorseEmbedded per il template per la copertina del report.
|
|
/// </summary>
|
|
public string ResourceNameCover { get; set; }
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative al Cliente.
|
|
/// </summary>
|
|
public Cliente Cliente
|
|
{
|
|
get { return _cliente; }
|
|
set { _cliente = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative al PrivateBanker.
|
|
/// </summary>
|
|
public PrivateBanker PrivateBanker
|
|
{
|
|
get { return _privatebanker; }
|
|
set { _privatebanker = value; }
|
|
}
|
|
|
|
|
|
public Delegato PrivateDelegato
|
|
{
|
|
get { return _privateDelegato; }
|
|
set { _privateDelegato = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative alla Proposta.
|
|
/// </summary>
|
|
public Proposta Proposta
|
|
{
|
|
get { return _proposta; }
|
|
set { _proposta = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative a Diagnosi.
|
|
/// </summary>
|
|
public Diagnosi Diagnosi
|
|
{
|
|
get { return _diagnosi; }
|
|
set { _diagnosi = value; }
|
|
}
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative a Diagnosi.
|
|
/// </summary>
|
|
public Monitoraggio Monitoraggio
|
|
{
|
|
get { return _monitoraggio; }
|
|
set { _monitoraggio = value; }
|
|
}
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative a Diagnosi.
|
|
/// </summary>
|
|
public NucleoUnica NucleoUnica
|
|
{
|
|
get { return _nucleounica; }
|
|
set { _nucleounica = value; }
|
|
}
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative a Diagnosi.
|
|
/// </summary>
|
|
public PropostaUnica PropostaUnica
|
|
{
|
|
get { return _propostaunica; }
|
|
set { _propostaunica = value; }
|
|
}
|
|
|
|
|
|
public MonitoraggioImmobiliare MonitoraggioImmobiliare
|
|
{
|
|
get { return _monitoraggioimmobiliare; }
|
|
set { _monitoraggioimmobiliare = value; }
|
|
}
|
|
|
|
public MonitoraggioImmobiliareNuclei MonitoraggioImmobiliareNuclei
|
|
{
|
|
get { return _monitoraggioimmobiliarenuclei; }
|
|
set { _monitoraggioimmobiliarenuclei = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative all' Immobiliare.
|
|
/// </summary>
|
|
public Immobiliare Immobiliare
|
|
{
|
|
get { return _immobiliare; }
|
|
set { _immobiliare = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative al nucleo Immobiliare.
|
|
/// </summary>
|
|
public Nucleo NucleoImmobiliare
|
|
{
|
|
get { return _nucleoimmobiliare; }
|
|
set { _nucleoimmobiliare = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative alla Mappatura preliminare del patrimonio Immobiliare.
|
|
/// </summary>
|
|
public MappaturaPreliminare MappaturaPreliminare
|
|
{
|
|
get { return _mappaturapreliminare; }
|
|
set { _mappaturapreliminare = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni relative alla Finalità del patrimonio Immobiliare.
|
|
/// </summary>
|
|
public FinalitaImmobiliare FinalitaImmobiliare
|
|
|
|
{
|
|
get { return _finalitaimmobiliare; }
|
|
set { _finalitaimmobiliare = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <param name="reportType">Tipo di report</param>
|
|
/// <param name="proposta">Proposta</param>
|
|
/// <param name="immobiliare">Immobiliare</param>
|
|
public ReportEnvironment(Int64 chiaveCliente, Proposta proposta)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
|
|
if (proposta != null)
|
|
{
|
|
_proposta.Chiave = proposta.Chiave;
|
|
_proposta.PropostaCBUnica = proposta.PropostaCBUnica;
|
|
}
|
|
|
|
|
|
_reportType = ReportType.Base_Proposta;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Costruttore.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <param name="reportType">Tipo di report</param>
|
|
/// <param name="proposta">Proposta</param>
|
|
/// <param name="immobiliare">Immobiliare</param>
|
|
public ReportEnvironment(Int64 chiaveCliente, MonitoraggioImmobiliare monitoraggioImmobiliare)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
_reportType = ReportType.Immobiliare_Monitoraggio;
|
|
}
|
|
|
|
|
|
public ReportEnvironment(Int64 chiaveNucleo, Nucleo nucleoimmobiliare, MonitoraggioImmobiliareNuclei monitoraggioImmobiliareNuclei)
|
|
{
|
|
_cliente.Chiave = chiaveNucleo; ;
|
|
_reportType = ReportType.Immobiliare_MonitoraggioNuclei;
|
|
|
|
|
|
if (nucleoimmobiliare.IdImmobileCatasto != null)
|
|
{
|
|
_nucleoimmobiliare.IdImmobileCatasto = nucleoimmobiliare.IdImmobileCatasto;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="immobiliare"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, Immobiliare immobiliare)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
|
|
if (immobiliare != null)
|
|
{
|
|
_immobiliare.IdImmobileCatasto = immobiliare.IdImmobileCatasto;
|
|
_immobiliare.IdSezione = immobiliare.IdSezione;
|
|
_immobiliare.ImmobiliareCEUnica = immobiliare.ImmobiliareCEUnica;
|
|
}
|
|
|
|
_reportType = ReportType.Immobiliare_Diagnosi;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="immobiliare"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, FinalitaImmobiliare finalitaimmobiliare)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
|
|
if (finalitaimmobiliare != null)
|
|
{
|
|
_finalitaimmobiliare.IdImmobileCatasto = finalitaimmobiliare.IdImmobileCatasto;
|
|
_finalitaimmobiliare.IdSezione = finalitaimmobiliare.IdSezione;
|
|
_finalitaimmobiliare.ImmobiliareCEUnica = finalitaimmobiliare.ImmobiliareCEUnica;
|
|
}
|
|
|
|
_reportType = ReportType.Immobiliare_Finalita;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveNucleo"></param>
|
|
/// <param name="nucleoimmobiliare"></param>
|
|
public ReportEnvironment(Int64 chiaveNucleo, Nucleo nucleoimmobiliare)
|
|
{
|
|
// _cliente.Chiave = chiaveCliente;
|
|
_nucleoimmobiliare.ChiaveNucleo = chiaveNucleo;
|
|
_nucleoimmobiliare.NomeNucleo = nucleoimmobiliare.NomeNucleo;
|
|
if (nucleoimmobiliare.IdImmobileCatasto != null)
|
|
{
|
|
_nucleoimmobiliare.IdImmobileCatasto = nucleoimmobiliare.IdImmobileCatasto;
|
|
_nucleoimmobiliare.ImmobiliareCEUnica = nucleoimmobiliare.ImmobiliareCEUnica;
|
|
}
|
|
//if (nucleoimmobiliare.ChiaviClientiPBImmobili != null)
|
|
// _nucleo.ChiaviClientiPBImmobili = nucleoimmobiliare.ChiaviClientiPBImmobili;
|
|
|
|
_reportType = ReportType.Immobiliare_DiagnosiNucleo;
|
|
}
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="immobiliare"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, MappaturaPreliminare mappatura)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
|
|
if (mappatura != null)
|
|
{
|
|
_mappaturapreliminare.IdImmobileCatasto = mappatura.IdImmobileCatasto;
|
|
_mappaturapreliminare.IdSezione = mappatura.IdSezione;
|
|
_mappaturapreliminare.ImmobiliareCEUnica = mappatura.ImmobiliareCEUnica;
|
|
}
|
|
|
|
_reportType = ReportType.Immobiliare_MappaturaPreliminare;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="struttura"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, Diagnosi diagnosi)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
_reportType = ReportType.Unica_Diagnosi;
|
|
}
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="struttura"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, Monitoraggio monitoraggio)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
_reportType = ReportType.Unica_Monitoraggio;
|
|
}
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="struttura"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, PropostaUnica propostaunica, bool adeguata)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
_reportType = ReportType.Unica_Proposta;
|
|
Adeguata = adeguata;
|
|
}
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="chiaveCliente"></param>
|
|
/// <param name="struttura"></param>
|
|
public ReportEnvironment(Int64 chiaveCliente, NucleoUnica nucleounica)
|
|
{
|
|
_cliente.Chiave = chiaveCliente;
|
|
_reportType = ReportType.Unica_Nucleo;
|
|
}
|
|
/// <summary>
|
|
/// Recupera il FontFamily.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private FontFamily GetFontFamily()
|
|
{
|
|
var regular = _reportType == ReportType.Base_Proposta ? new OpenTypeFont("arial.TTF") : new OpenTypeFont("verdana.TTF");
|
|
var bold = _reportType == ReportType.Base_Proposta ? new OpenTypeFont("arialbd.TTF") : new OpenTypeFont("verdanab.TTF");
|
|
var boldItalic = _reportType == ReportType.Base_Proposta ? new OpenTypeFont("arialbi.TTF") : new OpenTypeFont("verdanaz.TTF");
|
|
var italic = _reportType == ReportType.Base_Proposta ? new OpenTypeFont("ariali.TTF") : new OpenTypeFont("verdanai.TTF");
|
|
var fontFamily = new FontFamily("FontFamily", regular, bold, italic, boldItalic);
|
|
//var regular = _reportType == ReportType.ConsulenzaEvolutaImmobiliare ? new OpenTypeFont("verdana.TTF") : new OpenTypeFont("arial.TTF");
|
|
//var bold = _reportType == ReportType.ConsulenzaEvolutaImmobiliare ? new OpenTypeFont("verdanab.TTF") : new OpenTypeFont("arialbd.TTF");
|
|
//var boldItalic = _reportType == ReportType.ConsulenzaEvolutaImmobiliare ? new OpenTypeFont("verdanaz.TTF") : new OpenTypeFont("arialbi.TTF");
|
|
//var italic = _reportType == ReportType.ConsulenzaEvolutaImmobiliare ? new OpenTypeFont("verdanai.TTF") : new OpenTypeFont("ariali.TTF");
|
|
//var fontFamily = new FontFamily("FontFamily", regular, bold, italic, boldItalic);
|
|
|
|
return fontFamily;
|
|
}
|
|
}
|
|
}
|