using ceTe.DynamicPDF; using ceTe.DynamicPDF.Text; using System; namespace Consulenza.ReportCommon { /// /// Gestore variabili d'ambiente del Report (Template, rete etc...) e repository delle variabili di chiamata /// iniziale risolte dal livello Services. /// 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; /// /// Imposta o recupera il tipo di report. /// public ReportType ReportType { get { return _reportType; } } /// /// Imposta o recupera la struttura del report. E' il legame con la parte di "frontend" /// public ReportStruct ReportStruct { get { return _reportstruct; } set { _reportstruct = value; } } /// /// Imposta o recupera l'Id del modello da stampare /// public int ModelId { get; set; } /// /// Imposta o recupera l'Id del report da stampare /// public int ReportId { get; set; } /// /// Imposta o recupera il nome nella libreria RisorseEmbedded per il template di ciascuna pagina del report. /// public string ResourceNameTemplate { get; set; } /// /// Imposta o recupera il nome nella libreria RisorseEmbedded per il template per la copertina del report. /// public string ResourceNameCover { get; set; } /// /// Imposta o recupera le informazioni relative al Cliente. /// public Cliente Cliente { get { return _cliente; } set { _cliente = value; } } /// /// Imposta o recupera le informazioni relative al PrivateBanker. /// public PrivateBanker PrivateBanker { get { return _privatebanker; } set { _privatebanker = value; } } public Delegato PrivateDelegato { get { return _privateDelegato; } set { _privateDelegato = value; } } /// /// Imposta o recupera le informazioni relative alla Proposta. /// public Proposta Proposta { get { return _proposta; } set { _proposta = value; } } /// /// Imposta o recupera le informazioni relative a Diagnosi. /// public Diagnosi Diagnosi { get { return _diagnosi; } set { _diagnosi = value; } } /// /// Imposta o recupera le informazioni relative a Diagnosi. /// public Monitoraggio Monitoraggio { get { return _monitoraggio; } set { _monitoraggio = value; } } /// /// Imposta o recupera le informazioni relative a Diagnosi. /// public NucleoUnica NucleoUnica { get { return _nucleounica; } set { _nucleounica = value; } } /// /// Imposta o recupera le informazioni relative a Diagnosi. /// 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; } } /// /// Imposta o recupera le informazioni relative all' Immobiliare. /// public Immobiliare Immobiliare { get { return _immobiliare; } set { _immobiliare = value; } } /// /// Imposta o recupera le informazioni relative al nucleo Immobiliare. /// public Nucleo NucleoImmobiliare { get { return _nucleoimmobiliare; } set { _nucleoimmobiliare = value; } } /// /// Imposta o recupera le informazioni relative alla Mappatura preliminare del patrimonio Immobiliare. /// public MappaturaPreliminare MappaturaPreliminare { get { return _mappaturapreliminare; } set { _mappaturapreliminare = value; } } /// /// Imposta o recupera le informazioni relative alla Finalità del patrimonio Immobiliare. /// public FinalitaImmobiliare FinalitaImmobiliare { get { return _finalitaimmobiliare; } set { _finalitaimmobiliare = value; } } /// /// Costruttore. /// /// Chiave del cliente /// Tipo di report /// Proposta /// Immobiliare public ReportEnvironment(Int64 chiaveCliente, Proposta proposta) { _cliente.Chiave = chiaveCliente; if (proposta != null) { _proposta.Chiave = proposta.Chiave; _proposta.PropostaCBUnica = proposta.PropostaCBUnica; } _reportType = ReportType.Base_Proposta; } /// /// Costruttore. /// /// Chiave del cliente /// Tipo di report /// Proposta /// Immobiliare 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; } } /// /// Costruttore /// /// /// 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; } /// /// Costruttore /// /// /// 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; } /// /// Costruttore /// /// /// 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; } /// /// Costruttore /// /// /// 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; } /// /// Costruttore /// /// /// public ReportEnvironment(Int64 chiaveCliente, Diagnosi diagnosi) { _cliente.Chiave = chiaveCliente; _reportType = ReportType.Unica_Diagnosi; } /// /// Costruttore /// /// /// public ReportEnvironment(Int64 chiaveCliente, Monitoraggio monitoraggio) { _cliente.Chiave = chiaveCliente; _reportType = ReportType.Unica_Monitoraggio; } /// /// Costruttore /// /// /// public ReportEnvironment(Int64 chiaveCliente, PropostaUnica propostaunica, bool adeguata) { _cliente.Chiave = chiaveCliente; _reportType = ReportType.Unica_Proposta; Adeguata = adeguata; } /// /// Costruttore /// /// /// public ReportEnvironment(Int64 chiaveCliente, NucleoUnica nucleounica) { _cliente.Chiave = chiaveCliente; _reportType = ReportType.Unica_Nucleo; } /// /// Recupera il FontFamily. /// /// 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; } } }