using System; using System.Collections.Generic; namespace PDFGenerator.BusinessLayer { /// <summary> /// Enumeratore del tipo di Report. /// </summary> public enum TipoReport { DIAGNOSI, PROPOSTA, PIANIFICAZIONE, MONITORAGGIO } /// <summary> /// Summary description for Report /// </summary> 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<CapitoloReport> _children = new List<CapitoloReport>(); private DocumentPDF _documentPDF; private bool _checkstampaelemento; #endregion /// <summary> /// Costruttore /// </summary> public Report() { } /// <summary> /// Costruttore /// </summary> public Report(DocumentPDF documentPDF) { // Set dei dati sul doc a livello di Report _documentPDF = documentPDF; _checkstampaelemento = true; } /// <summary> /// Costruttore /// </summary> /// <param name="tipologiaReport"></param> 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 /// <summary> /// Ottiene o imposta l'Id del Report. /// </summary> public int Id { get { return _id; } set { _id = value; } } /// <summary> /// Ottiene o imposta il tipo del Report. /// </summary> public TipoReport Tipo { get { return _tipo; } set { _tipo = value; } } /// <summary> /// Ottiene o imposta il nome del Report. /// </summary> public string Nome { get { return _nome; } set { _nome = value; } } /// <summary> /// Ottiene o imposta DocumentPDF necessario per la creazione del report. /// </summary> public DocumentPDF DocumentPDF { get { return _documentPDF; } set { _documentPDF = value; } } /// <summary> /// Ottiene o imposta il Titolo del Report. /// </summary> public string Titolo { get { return _titolo; } set { _titolo = value; } } /// <summary> /// Ottiene o imposta il Testo introduttivo del Report. /// </summary> public string TestoIntroduttivo { get { return _testoIntroduttivo; } set { _testoIntroduttivo = value; } } /// <summary> /// Ottiene o imposta il l'ordine di stampa del Report. /// </summary> public int Ordine { get { return _ordine; } set { _ordine = value; } } /// <summary> /// Indica se l'elemento viene stampato o no. /// Di default true. /// </summary> public bool CheckStampaElemento { get { return _checkstampaelemento; } set { _checkstampaelemento = value; } } /// <summary> /// Indica se l'utente ha richiesto la stampa della Copertina. /// </summary> public bool HasCopertina { get { return _hascopertina; } set { _hascopertina = value; } } /// <summary> /// Indica se l'utente ha richiesto la stampa dell' Indice. /// </summary> public bool HasIndice { get { return _hasindice; } set { _hasindice = value; } } /// <summary> /// Indica se l'utente ha richiesto la stampa dell Glossario. /// </summary> 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 } }