/// <summary>
        /// Constructor
        /// </summary>
        /// <param name="c">seniority code</param>
        public SeniorityLevelCode(int c)
        {
            SeniorityLevelAdaptee result;

            SeniorityLevelAdaptee.Codes.TryGetValue(c, out result);
            if (result != null)
            {
                this.InternalObject = result;
            }
            else
            {
                throw new InvalidCastException();
            }
        }
        public override bool Equals(System.Object obj)
        {
            // If parameter is null return false.
            if (obj == null)
            {
                return(false);
            }

            // If parameter cannot be cast to FinancialAssetTypeCategoryCodeAdaptee return false.
            SeniorityLevelAdaptee p = obj as SeniorityLevelAdaptee;

            if ((System.Object)p == null)
            {
                return(false);
            }

            // Return true if the fields match:
            return((Value == p.Value) && (Label == p.Label));
        }
        /// <summary>
        /// Initialisation des constantes dans le dictionnaire
        /// </summary>
        static SeniorityLevelCode()
        {
            SeniorityLevelAdaptee adapteeA = new SeniorityLevelAdaptee("SENIOR", "SEN", 0, "SEN");

            SENIOR = new SeniorityLevelCode(adapteeA);
            SeniorityLevelAdaptee adapteeO = new SeniorityLevelAdaptee("Subordinated Tiers 1", "SUB_T1", 1, "SUB", "T1", "T1");

            SUB_T1 = new SeniorityLevelCode(adapteeO);
            SeniorityLevelAdaptee adapteeE = new SeniorityLevelAdaptee("Subordinated Upper Tiers 2", "SUB_UT2", 2, "SUB", "UT2", "UT2");

            SUB_UT2 = new SeniorityLevelCode(adapteeE);
            SeniorityLevelAdaptee adapteeD = new SeniorityLevelAdaptee("Subordinated Lower Tiers 2", "SUB_LT2", 3, "SUB", "LT2", "LT2");

            SUB_LT2 = new SeniorityLevelCode(adapteeD);
            SeniorityLevelAdaptee adapteeM = new SeniorityLevelAdaptee("Subordinated others", "SUB_OTHER", 4, "SUB", "OTHER", "OTHER");

            SUB_OTHER = new SeniorityLevelCode(adapteeM);

            new SeniorityLevelAdaptee("Insurance Sub Tiers 1", "ISUB_T1", 5, "SUB", "T1", "iT1");
            new SeniorityLevelAdaptee("Insurance Sub Upper Tiers 2", "ISUB_UT2", 6, "SUB", "UT2", "iUT2");
            new SeniorityLevelAdaptee("Insurance Sub Lower Tiers 2", "ISUB_LT2", 7, "SUB", "LT2", "iLT2");

            new SeniorityLevelAdaptee("Subordinated Tiers 1 Step", "SUB_T1_STEP", 8, "SUB", "T1", "T1 step");
            new SeniorityLevelAdaptee("Subordinated Tiers 1 Non Step", "SUB_T1_NSTEP", 9, "SUB", "T1", "T1 non-step");
            new SeniorityLevelAdaptee("Subordinated LT2 Callable", "SUB_LT2_CALL", 10, "SUB", "LT2", "LT2 callable");

            new SeniorityLevelAdaptee("Subordinated LT2 Non Callable", "SUB_LT2_NCALL", 11, "SUB", "LT2", "LT2 non-callable");
            new SeniorityLevelAdaptee("Insurance Sub Lower Tiers 2 callable", "ISUB_LT2_CALL", 12, "SUB", "LT2", "iLT2 callable");
            new SeniorityLevelAdaptee("Insurance Sub Lower Tiers 2 non callable", "ISUB_LT2_NCAL", 13, "SUB", "LT2", "iLT2 non-callable");
            new SeniorityLevelAdaptee("T2 perpetual", "SUB_T2_PERP", 14, "SUB", "T2", "T2 perpetual");
            new SeniorityLevelAdaptee("T1 perpetual", "SUB_T1_PERP", 15, "SUB", "T1", "T1 perpetual");
            new SeniorityLevelAdaptee("LT2 perpetual", "SUB_LT2_PERP", 16, "SUB", "LT2", "LT2 perpetual");
            new SeniorityLevelAdaptee("LT1 perpetual", "SUB_LT1_PERP", 17, "SUB", "LT1", "LT1 perpetual");
            new SeniorityLevelAdaptee("T2 dated callable", "SUB_T2_CALL", 18, "SUB", "T2", "T2 dated callable");
            new SeniorityLevelAdaptee("T2 dated non-callable", "SUB_T2_NCALL", 18, "SUB", "T2", "T2 dated non-callable");
        }
 private SeniorityLevelCode(SeniorityLevelAdaptee Instance)
 {
     this.InternalObject = Instance;
 }