public async Task <string> GetDynamicContentHtmlAsync(string storeId, string placeholderName) { string htmlContent = null; //TODO: make full context var dynamicContent = await _marketingApi.MarketingModuleDynamicContentEvaluateDynamicContentAsync(evalContextStoreId : storeId, evalContextPlaceName : placeholderName); if (dynamicContent != null) { var htmlDynamicContent = dynamicContent.FirstOrDefault(dc => !string.IsNullOrEmpty(dc.ContentType) && dc.ContentType.Equals("Html", StringComparison.OrdinalIgnoreCase)); if (htmlDynamicContent != null) { var dynamicProperty = htmlDynamicContent.DynamicProperties.FirstOrDefault(dp => !string.IsNullOrEmpty(dp.Name) && dp.Name.Equals("Html", StringComparison.OrdinalIgnoreCase)); if (dynamicProperty != null && dynamicProperty.Values.Any(v => v.Value != null)) { htmlContent = dynamicProperty.Values.First().Value.ToString(); } } } return(htmlContent); }
public async Task <string> GetDynamicContentHtmlAsync(string storeId, string placeholderName) { string htmlContent = null; //TODO: make full context var evaluationContext = new VirtoCommerceDomainMarketingModelDynamicContentDynamicContentEvaluationContext { StoreId = storeId, PlaceName = placeholderName }; var cacheKey = "MarketingServiceImpl.GetDynamicContentHtmlAsync-" + storeId + "-" + placeholderName; var dynamicContent = await _cacheManager.GetAsync(cacheKey, "ApiRegion", async() => await _marketingApi.MarketingModuleDynamicContentEvaluateDynamicContentAsync(evaluationContext)); if (dynamicContent != null) { var htmlDynamicContent = dynamicContent.FirstOrDefault(dc => !string.IsNullOrEmpty(dc.ContentType) && dc.ContentType.Equals("Html", StringComparison.OrdinalIgnoreCase)); if (htmlDynamicContent != null) { var dynamicProperty = htmlDynamicContent.DynamicProperties.FirstOrDefault(dp => !string.IsNullOrEmpty(dp.Name) && dp.Name.Equals("Html", StringComparison.OrdinalIgnoreCase)); if (dynamicProperty != null && dynamicProperty.Values.Any(v => v.Value != null)) { htmlContent = dynamicProperty.Values.First().Value.ToString(); } } } return(htmlContent); }