/// <summary>
        /// Evaluates the implied quote.
        /// </summary>
        public NamedValueSet EvaluateImpliedQuote(ILogger logger, ICoreCache cache, string nameSpace, IBusinessCalendar fixingCalendar, IBusinessCalendar rollCalendar)
        {
            if (PriceableCommodityAssets != null)
            {
                return(EvaluateImpliedQuote(this, PriceableCommodityAssets.ToArray()));
            }
            var curveValuation = GetFxCurveValuation();

            PriceableCommodityAssets = PriceableAssetFactory.CreatePriceableCommodityAssets(logger, cache, nameSpace, curveValuation.baseDate.Value, curveValuation.spotRate, fixingCalendar, rollCalendar);
            return(EvaluateImpliedQuote(this, PriceableCommodityAssets.ToArray()));
        }
 /// <summary>
 /// Evaluates the implied quote.
 /// </summary>
 public NamedValueSet EvaluateImpliedQuote()
 {
     return(PriceableCommodityAssets != null?EvaluateImpliedQuote(this, PriceableCommodityAssets.ToArray()) : null);
 }