namespace Consulenza.ReportCommon { public class Opzione { public string param { get; set; } } /// /// Opzione che indica se il report deve essere stampato in forma anonima o nominativa. /// public class Opzione1 : Opzione { public bool ReportAnonimo { get { return (param=="N"); } }//s nominativo, n anonimo } // /// Opzione che indica se il report deve essere stampato in forma anonima o nominativa. /// public class Opzione10 : Opzione { public int[] idSchede { get { return (param == "N" ? new int[] { 118 } : new int[] { 117, 118 }); } } } /// /// Opzione che restituisce la ChiaveProposta quando il tipo di report richiesto è Proposta. /// public class Opzione2 : Opzione { public long ChiaveProposta { get { return long.Parse(param); } } } public class Opzione3 : Opzione { public bool Valore { get { return !(param == "N"); } } } public class Opzione3_1 : Opzione3 {} public class Opzione3_2 : Opzione3 {} public class Opzione3_3 : Opzione3 {} public class Opzione3_4 : Opzione3 {} public class Opzione3_5 : Opzione3 {} public class Opzione4 : Opzione { public bool Valore { get { return !(param == "N"); } } } public class Opzione4_1 : Opzione4 { } public class Opzione4_2 : Opzione { public bool Valore { get { return (param == "S"); } } } public class Opzione4_3 : Opzione { public bool Valore { get { return (param == "S"); } } } public class Opzione4_4 : Opzione4 { } public class Opzione4_5 : Opzione4 { } public class Opzione4_6 : Opzione4 { } public class Opzione4_7 : Opzione4 { } public class Opzione4_8 : Opzione { public bool Valore { get { return (param == "S"); } } } public class Opzione4_9 : Opzione4 { } public class Opzione5 : Opzione { public string Valore { get { return param; } } } public class Opzione5_1 : Opzione5 { public OrizzonteTemporale OrizzonteTemporale { get { switch (param) { case "6": return new OrizzonteTemporale { mesi = 6, anni = 0, desc = "sei mesi" }; case "12": return new OrizzonteTemporale(); case "36": return new OrizzonteTemporale { mesi = 36, anni = 3, desc = "tre anni" }; case "60": return new OrizzonteTemporale { mesi = 60, anni = 5, desc = "cinque anni" }; case "84": return new OrizzonteTemporale { mesi = 84, anni = 7, desc = "sette anni" }; case "108": return new OrizzonteTemporale { mesi = 108, anni = 9, desc = "nove anni" }; case "120": return new OrizzonteTemporale { mesi = 120, anni = 10, desc = "dieci anni" }; default: return new OrizzonteTemporale(); } } } } public class Opzione5_2 : Opzione5_1 { } public class Opzione5_3 : Opzione5 { } public class Opzione6 : Opzione { public string Valore { get { return param; } } } public class Opzione6_1 : Opzione6 { public DettaglioValute DettaglioValute{ get { switch (param) { case "6": return DettaglioValute.PrimeSei; case "T": return DettaglioValute.Tutte; default: return DettaglioValute.PrimeSei; } } } } public class Opzione6_2 : Opzione6 { public RaggruppaProdotti RaggruppaProdotti{ get { switch (param) { case "I": return RaggruppaProdotti.AreaBisogno; case "A": return RaggruppaProdotti.Categoria; case "O": return RaggruppaProdotti.Contratto; default: return RaggruppaProdotti.AreaBisogno; } } } } public class Opzione6_3 : Opzione6 { public ProdottiPatrimonio ProdottiPatrimonio{ get { switch (param) { case "10": return ProdottiPatrimonio.PrimiDieci; case "T": return ProdottiPatrimonio.Tutti; default: return ProdottiPatrimonio.PrimiDieci; } } } } public class Opzione6_4 : Opzione6 { public MonitoraggiInterrotti MonitoraggiInterrotti { get { switch (param) { case "3": return MonitoraggiInterrotti.UltimiTre; case "T": return MonitoraggiInterrotti.Tutti; default: return MonitoraggiInterrotti.UltimiTre; } } } } public class Opzione6_5 : Opzione6 { public Raggruppamento raggruppamento { get { switch (param) { case "B": return Raggruppamento.AreaBisogno; case "C": return Raggruppamento.Contratto; case "P": return Raggruppamento.TipologiaProdotto; default: return Raggruppamento.AreaBisogno; } } } } public class Opzione12 : Opzione { public string Valore { get { return param; } } public bool Area { get { return param.IndexOf("01")>=0; } } public bool ContrattoDossier { get { return param.IndexOf("02")>=0; } } public bool NomeProdotto { get { return true; } }//DEFAULT OBBLI public bool CodIsin { get { return param.IndexOf("03")>=0; } } public bool DistrCedoleDividendi { get { return param.IndexOf("04")>=0; } } public bool RatingMorningstar { get { return param.IndexOf("05")>=0; } } public bool NumqQuantValnom { get { return param.IndexOf("06")>=0; } } public bool QuotaPrezzoEuro { get { return param.IndexOf("07")>=0; } } public bool ControvaloreAttuale { get { return true; } }//DEFAULT OBBLI public bool DataAgg { get { return param.IndexOf("08")>=0; } } public bool VersatoNettoSott { get { return param.IndexOf("09")>=0; } } //DEFAULT public bool UtilePerditaSott { get { return param.IndexOf("10")>=0; } } //DEFAULT public bool RendAnnualSott { get { return param.IndexOf("11")>=0; } } //DEFAULT public bool DataSott { get { return param.IndexOf("12")>=0; } } //DEFAULT public bool VersatoNettoAssoc { get { return param.IndexOf("13")>=0; } } public bool UtilPerditaAssoc { get { return param.IndexOf("14")>=0; } } public bool RendCumAssoc { get { return param.IndexOf("15")>=0; } } public bool DataAssoc { get { return param.IndexOf("16")>=0; } } public bool RendInizioTrimestre { get { return param.IndexOf("17")>=0; } } public bool RendInizioAnno { get { return param.IndexOf("18")>=0; } } public bool VaR { get { return param.IndexOf("19")>=0; } }//DEFAULT public bool RischioCredito { get { return param.IndexOf("20")>=0; } } public bool Complessità { get { return param.IndexOf("21")>=0; } } public bool ValoriDiCarico { get { return param.IndexOf("22") >= 0; } } public bool UtilePerditaCaricoEuro { get { return param.IndexOf("23") >= 0; } } public bool UtilePerditaCaricoPerc { get { return param.IndexOf("24") >= 0; } } public RaggruppaProdotti RaggruppaProdotti { get { var paramList = param.Split(','); switch (paramList[paramList.Length-2]) { case "A": return RaggruppaProdotti.Categoria; case "O": return RaggruppaProdotti.Contratto; default: return RaggruppaProdotti.AreaBisogno; } // if (param.IndexOf("A") >= 0) return RaggruppaProdotti.Categoria; // else if (param.IndexOf("O") >= 0) return RaggruppaProdotti.Contratto; // return RaggruppaProdotti.AreaBisogno; } } public VisualizzazioneProdotti VisualizzioneProdotti { get { var paramList = param.Split(','); switch (paramList[paramList.Length-1]) { case "A": return VisualizzazioneProdotti.PosizioniAttive; case "SL": return VisualizzazioneProdotti.PosizioniLiquidate; case "CL": return VisualizzazioneProdotti.ContrattiLiquidati; default: return VisualizzazioneProdotti.All; } } } } #region Enumeratori public class OrizzonteTemporale { public int mesi = 12; public int anni = 1; public string desc = "un anno"; } public enum DettaglioValute { PrimeSei, Tutte } public enum RaggruppaProdotti { AreaBisogno, Categoria, Contratto } public enum VisualizzazioneProdotti { All, PosizioniLiquidate, ContrattiLiquidati, PosizioniAttive } public enum ProdottiPatrimonio { PrimiDieci, Tutti } public enum MonitoraggiInterrotti { UltimiTre, Tutti } public enum Raggruppamento { AreaBisogno, Contratto, TipologiaProdotto } #endregion }