/// <summary>Gets a mutable Money Market convention template which is initially filled with values of
        /// the current instance, i.e. with some standard conventions.</summary>
        /// <returns>A mutable Money Market convention template.</returns>
        public MoneyMarketConventions GetMutableTemplate()
        {
            MoneyMarketConventions marketConventions = new MoneyMarketConventions();

            marketConventions.SetStandardBusinessDayConvention(BusinessDayConvention);
            marketConventions.SetStandardDayCountconvention(DayCountConvention);
            marketConventions.SetStandardFutureBasePointValue(FutureBasePointValue);
            marketConventions.SetStandardLiborIndexName(LiborIndexName);
            marketConventions.SetStandardLiborRateRoundingRule(LiborRateRoundingRule);
            marketConventions.SetStandardBusinessDaysToSettle(BusinessDaysToSettle);
            marketConventions.SetStandardCapletTenorConvention(CapletTenorConvention);
            marketConventions.SetStandardFixingLag(FixingLag);

            return(marketConventions);
        }
 /// <summary>Initializes a new instance of the <see cref="ReadOnlyMoneyMarketConventions"/> class.
 /// </summary>
 /// <param name="moneyMarketConventions">The money market conventions.</param>
 /// <exception cref="ArgumentNullException">Thrown, if <paramref name="moneyMarketConventions"/> is <c>null</c>.</exception>
 /// <exception cref="ArgumentException">Thrown, if <paramref name="moneyMarketConventions"/> is not completely defined.</exception>
 public ReadOnlyMoneyMarketConventions(MoneyMarketConventions moneyMarketConventions)
 {
     if (moneyMarketConventions == null)
     {
         throw new ArgumentNullException("moneyMarketConventions");
     }
     if (moneyMarketConventions.IsCompletelyDefined == false)
     {
         throw new ArgumentException(String.Format(ExceptionMessages.ArgumentIsNotWellDefined, "Money market conventions"), "moneyMarketConventions");
     }
     BusinessDayConvention = moneyMarketConventions.BusinessDayConvention;
     FixingLag             = moneyMarketConventions.FixingLag;
     BusinessDaysToSettle  = moneyMarketConventions.BusinessDaysToSettle.Value;
     CapletTenorConvention = moneyMarketConventions.CapletTenorConvention;
     DayCountConvention    = moneyMarketConventions.DayCountConvention;
     FutureBasePointValue  = moneyMarketConventions.FutureBasePointValue;
     LiborIndexName        = moneyMarketConventions.LiborIndexName;
     LiborRateRoundingRule = moneyMarketConventions.LiborRateRoundingRule;
 }
 /// <summary>Adds default market conventions that are taken into account into a specific logger.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="marketConventions">The market conventions which are taken into account.</param>
 /// <param name="userMarketConventionInput">The user input of market conventions.</param>
 public static void Add_Info(this ILogger logger, ReadOnlyMoneyMarketConventions marketConventions, MoneyMarketConventions userMarketConventionInput = null)
 {
     if ((logger != null) && (marketConventions != null))
     {
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.BusinessDayConventionState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Business day convention", marketConventions.BusinessDayConvention.Name);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.BusinessDaysToSettleState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Business days to settle", marketConventions.BusinessDaysToSettle);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.DayCountConventionState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Day count convention", marketConventions.DayCountConvention.Name);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.CapletTenorConventionState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Caplet tenor convention", marketConventions.CapletTenorConvention.Name);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.FutureBasePointValueState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Future base point value", marketConventions.FutureBasePointValue);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.LiborRateRoundingRuleState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Libor Rounding Rule", marketConventions.LiborRateRoundingRule.Name);
         //}
         //if ((userMarketConventionInput == null) || (userMarketConventionInput.FixingLagState != ConventionState.UserInput))
         //{
         //    logger.Add_Info_StandardValue("Fixing Lag", marketConventions.FixingLag.Name);
         //}
     }
 }