using System; using System.Collections.Generic; namespace PDFGenerator.BusinessLayer { /// /// Enumeratore del tipo di Report. /// public enum TipoReport { DIAGNOSI, PROPOSTA, PIANIFICAZIONE, MONITORAGGIO } /// /// Summary description for Report /// public class Report { #region Variabili private private Int32 _id; private string _titolo; private string _testoIntroduttivo; private Int32 _ordine; private bool _hascopertina; private bool _hasindice; private bool _hasglossario; private TipoReport _tipo; private string _nome; private List _children = new List(); private DocumentPDF _documentPDF; private bool _checkstampaelemento; #endregion /// /// Costruttore /// public Report() { } /// /// Costruttore /// public Report(DocumentPDF documentPDF) { // Set dei dati sul doc a livello di Report _documentPDF = documentPDF; _checkstampaelemento = true; } /// /// Costruttore /// /// public Report(TipoReport tipologiaReport) { switch (tipologiaReport) { case TipoReport.DIAGNOSI: _id = 1; _nome = "DIAGNOSI"; _tipo = TipoReport.DIAGNOSI; break; case TipoReport.PIANIFICAZIONE: _id = 2; _nome = "PIANIFICAZIONE"; _tipo = TipoReport.PIANIFICAZIONE; break; case TipoReport.PROPOSTA: _id = 3; _nome = "PROPOSTA"; _tipo = TipoReport.PROPOSTA; break; case TipoReport.MONITORAGGIO: _id = 4; _nome = "MONITORAGGIO"; _tipo = TipoReport.MONITORAGGIO; break; } } #region Proprieta /// /// Ottiene o imposta l'Id del Report. /// public int Id { get { return _id; } set { _id = value; } } /// /// Ottiene o imposta il tipo del Report. /// public TipoReport Tipo { get { return _tipo; } set { _tipo = value; } } /// /// Ottiene o imposta il nome del Report. /// public string Nome { get { return _nome; } set { _nome = value; } } /// /// Ottiene o imposta DocumentPDF necessario per la creazione del report. /// public DocumentPDF DocumentPDF { get { return _documentPDF; } set { _documentPDF = value; } } /// /// Ottiene o imposta il Titolo del Report. /// public string Titolo { get { return _titolo; } set { _titolo = value; } } /// /// Ottiene o imposta il Testo introduttivo del Report. /// public string TestoIntroduttivo { get { return _testoIntroduttivo; } set { _testoIntroduttivo = value; } } /// /// Ottiene o imposta il l'ordine di stampa del Report. /// public int Ordine { get { return _ordine; } set { _ordine = value; } } /// /// Indica se l'elemento viene stampato o no. /// Di default true. /// public bool CheckStampaElemento { get { return _checkstampaelemento; } set { _checkstampaelemento = value; } } /// /// Indica se l'utente ha richiesto la stampa della Copertina. /// public bool HasCopertina { get { return _hascopertina; } set { _hascopertina = value; } } /// /// Indica se l'utente ha richiesto la stampa dell' Indice. /// public bool HasIndice { get { return _hasindice; } set { _hasindice = value; } } /// /// Indica se l'utente ha richiesto la stampa dell Glossario. /// public bool HasGlossario { get { return _hasglossario; } set { _hasglossario = value; } } #endregion #region Metodi public void Add(CapitoloReport child) { _children.Add(child); } public void Remove(CapitoloReport child) { _children.Remove(child); } public void Disegna() { foreach (CapitoloReport child in _children) { child.CapitoloParent = this; child.Disegna(); } } #endregion } }