protected virtual IPurchasable SelectFromQuote(EntityReference quote, Entity purchaseMetadata = null, IEnumerable <IPurchasableItemOptions> options = null)
        {
            var requiresShipping = purchaseMetadata != null && purchaseMetadata.GetAttributeValue <bool?>(PurchaseMetadataAttributes.RequriesShipping).GetValueOrDefault(false);

            var quoteDataAdapter = new QuotePurchaseDataAdapter(quote, Dependencies, requiresShipping);

            return(quoteDataAdapter.Select(options ?? Enumerable.Empty <IPurchasableItemOptions>()));
        }