private IHtmlContent RenderContentItem(PlaceHolder placeHolder) { IHtmlContent htmlContentItems = null; if (placeHolder == null) { return(htmlContentItems); } //string currentResult = ""; var htmlCurrentResult = new HtmlContentBuilder(); var currentResults = new List <ContentResult>(); List <ContentResult> moduleResult = null; var layoutType = placeHolder.Type; ViewContext.ViewData["isEditMode"] = false; if (ModuleViewResults.ContainsKey(placeHolder.Id.ToString())) { //Modules if (ModuleViewResults.TryGetValue(placeHolder.Id.ToString(), out moduleResult)) { //sb.Append(moduleResult); ModuleViewResults.Remove(placeHolder.Id.ToString()); currentResults.AddRange(moduleResult); } } if (PageContents.Any(pc => pc.ContainerId == placeHolder.Id)) { //Page contents var pageContents = PageContents .Where(pc => pc.ContainerId == placeHolder.Id) .OrderBy(pc => pc.SortOrder).ToList(); foreach (var pageContent in pageContents) { var typeName = pageContent.ContentType.Name; var contentTranslation = pageContent.PageContentTranslation.FirstOrDefault(t => t.CultureCode.ToLower() == CurrentCulture.ToString().ToLower()); var content = (contentTranslation != null) ? SDJsonConvert.DeserializeObject <dynamic>(contentTranslation.ContentData) : null; if (content == null) { continue; } var dynamicContent = new DynamicContent { PageContent = pageContent, Content = content }; var contentTypesViewPath = string.Format(Globals.ContentTypesViewPath, _scopeService.PageContext.SelectedTheme, typeName); var htmlPageContent = _htmlHelper.Partial(contentTypesViewPath, dynamicContent); //var contentResult = GetString(htmlContent); currentResults.Add(new ContentResult { //Result = contentResult, HtmlResult = htmlPageContent, SortOrder = pageContent.SortOrder }); } } //var placeHolderResult = RenderContentItems(placeHolder.PlaceHolders); //currentResults.Add(new ContentResult //{ // HtmlResult = placeHolderResult, // SortOrder = placeHolder.SortOrder //}); if (placeHolder.PlaceHolders != null && placeHolder.PlaceHolders.Count > 0) { foreach (var childPlaceHolder in placeHolder.PlaceHolders) { var placeHolderResult = RenderContentItem(childPlaceHolder); currentResults.Add(new ContentResult { HtmlResult = placeHolderResult, SortOrder = childPlaceHolder.SortOrder }); } } var sortedResult = currentResults.OrderBy(r => r.SortOrder).ToList(); foreach (var contentResult in sortedResult) { //currentResult += contentResult.Result; htmlCurrentResult.AppendHtml(contentResult.HtmlResult); } var layoutContent = new LayoutContent { PlaceHolder = placeHolder, ContentResult = htmlCurrentResult }; htmlContentItems = _htmlHelper.Partial(string.Format(Globals.LayoutTypesPath, _scopeService.PageContext.SelectedTheme, layoutType), layoutContent); //var layoutResult = GetString(htmlContent); //sb.Append(layoutResult); return(htmlContentItems); }