public IEnumerable <FaqItem> Get(Guid id)
        {
            var faqGroup = _sitecoreService.Get <FaqGroup>(id).Result;

            return(Task.WhenAll(
                       from guid in faqGroup.GroupMember.Split('|')
                       select _sitecoreService.Get <FaqItem>(new Guid(guid))
                       ).Result);
        }
        public async Task <SiteMetadata> Get(Guid pageId)
        {
            var current = await _sitecoreService.Get <SiteMetadata>(pageId);

            while (current != null && !current.IsDerived(Templates.SiteMetadata.Id))
            {
                current = await _sitecoreService.Get <SiteMetadata>(current.ParentId);
            }
            return(current);
        }
        public async Task <ViewModels.Identity.Identity> Get(Guid currentPageId)
        {
            var current = await _sitecoreService.Get <ViewModels.Identity.Identity>(currentPageId);

            while (current != null && !current.IsDerived(Templates.IdentityTemplate.Id))
            {
                current = await _sitecoreService.Get <ViewModels.Identity.Identity>(current.ParentId);
            }
            return(current);
        }
Exemplo n.º 4
0
        public async Task <NavigationItem> GetNavigationRoot(Guid currentPageId)
        {
            var currentItem = await _sitecoreService.Get <NavigationItem>(currentPageId);

            while (currentItem != null && !currentItem.IsDerived(Templates.NavigationRoot.Id))
            {
                currentItem = await _sitecoreService.Get <NavigationItem>(new Guid(currentItem.ParentId.ToString()));
            }
            return(currentItem);
            //return contextItem.GetAncestorOrSelfOfTemplate(Templates.NavigationRoot.ID) ??
            //       Sitecore.Context.Site.GetContextItem(Templates.NavigationRoot.ID);
        }
        public async Task DoRender(string placeholderName, bool isDynamic, IHtmlContentBuilder output, ViewContext viewContext)
        {
            if (viewContext?.ViewData == null)
            {
                output.Append("ViewContext/ViewData cannot be null");
                return;
            }
            if (isDynamic && viewContext.ViewData[BocUniqueId] == null)
            {
                output.Append("Nested placeholders must be inside a known component");
                return;
            }

            var placeholderStack = viewContext.ViewData[BocPlaceholderStack] as Stack <string>;

            if (placeholderStack == null)
            {
                placeholderStack = (Stack <string>)(viewContext.ViewData[BocPlaceholderStack] = new Stack <string>());
            }
            var usedName = isDynamic ? placeholderName + "_" + (Guid)viewContext.ViewData[BocUniqueId] : placeholderName;

            placeholderStack.Push(usedName);

            var placeHolderKey = placeholderStack.Count > 1 ? "/" + string.Join("/", placeholderStack.ToArray().Reverse()) : usedName;
            var pathandQuery   = viewContext.HttpContext.Request.Path.Value + viewContext.HttpContext.Request.QueryString;
            var pageData       = await GetPageData(pathandQuery);

            if (pageData == null || string.IsNullOrEmpty(placeHolderKey))
            {
                output.AppendHtml("UNABLE TO LOAD PLACEHOLDER " + placeHolderKey);
                return;
            }

            RenderingChrome?placeholderChrome = null;

            if (viewContext.HttpContext.IsInCmsMode())
            {
                placeholderChrome = await _sitecoreService.Get <RenderingChrome>(pathandQuery + (pathandQuery.Contains("?") ? "&" : "?") + "placeholderKey=" + placeHolderKey, _baseAddress);

                if (placeholderChrome.HasValue)
                {
                    output.AppendHtmlLine(placeholderChrome.Value.Start);
                }
            }

            foreach (var rendering in pageData.Renderings.Where(r =>
                                                                usedName.Equals(r.Placeholder, StringComparison.OrdinalIgnoreCase) ||
                                                                placeHolderKey.Equals(r.Placeholder, StringComparison.OrdinalIgnoreCase)))
            {
                if (viewContext.HttpContext.IsInCmsMode() && rendering.RenderingChrome != null)
                {
                    output.AppendHtmlLine(rendering.RenderingChrome.Value.Start);
                }
                JToken path = null;
                if (rendering.RenderingItem.TryGetValue("Path", out path))
                {
                    await RenderPartialView(path.Value <string>(), rendering, output, viewContext, pageData);
                }
                else
                {
                    JToken controller       = null;
                    JToken controllerAction = null;
                    if (rendering.RenderingItem.TryGetValue("Controller", out controller) &&
                        rendering.RenderingItem.TryGetValue("Controller Action", out controllerAction))
                    {
                        await RenderControllerAction(controller.Value <string>(), controllerAction.Value <string>(), rendering, output, viewContext, pageData);
                    }
                }
                if (viewContext.HttpContext.IsInCmsMode() && rendering.RenderingChrome != null)
                {
                    output.AppendHtmlLine(rendering.RenderingChrome.Value.End);
                }
            }

            if (placeholderChrome.HasValue)
            {
                output.AppendHtmlLine(placeholderChrome.Value.End);
            }
            placeholderStack.Pop();
        }
Exemplo n.º 6
0
 public async Task <SiteDefinition> Get(Guid siteId)
 {
     return(await _sitecoreService.Get <SiteDefinition>(siteId));
 }
Exemplo n.º 7
0
        public async Task <IEnumerable <Habitat.Core.ViewModels.Language.Language> > GetSupportedLanguages(string siteName)
        {
            var siteDefinition = (await _multisiteRepository.GetAll()).FirstOrDefault(s => (bool)s?.Name?.Equals(siteName, StringComparison.OrdinalIgnoreCase));

            if (siteDefinition == null)
            {
                return(Enumerable.Empty <Habitat.Core.ViewModels.Language.Language>());
            }

            return(await Task.WhenAll(
                       siteDefinition.SupportedLanguages.AsParallel().Select(async guid => await _sitecoreService.Get <Habitat.Core.ViewModels.Language.Language>(guid))));
        }