/// <summary>
 /// Gets the Component Info
 /// </summary>
 /// <param name="Name"></param>
 /// <returns></returns>
 private static PageBuilderContainerInfo GetPageBuilderContainer(string Name)
 {
     return(CacheHelper.Cache <PageBuilderContainerInfo>(cs =>
     {
         if (cs.Cached)
         {
             cs.CacheDependency = CacheHelper.GetCacheDependency("cms.pagebuildercontainer|byname|" + Name);
         }
         return PageBuilderContainerInfoProvider.GetPageBuilderContainerInfo(Name);
     }, new CacheSettings(1440, "GetPageBuilderContainerInfo", Name)));
 }
 // Retrieves data to be displayed in the selector
 private IEnumerable <SelectListItem> GetOptions()
 {
     // Perform data retrieval operations here
     // The following example retrieves all pages of the 'DancingGoatMvc.Article' page type
     // located under the 'Articles' section of the Dancing Goat sample website
     return(CacheHelper.Cache <IEnumerable <SelectListItem> >(cs =>
     {
         if (cs.Cached)
         {
             cs.CacheDependency = CacheHelper.GetCacheDependency(new string[] { "cms.pagebuildercontainer|all", "cms.pagebuildercontainersite|all" });
         }
         try {
             var Containers = PageBuilderContainerInfoProvider.GetPageBuilderContainers()
                              .WhereIn("PageBuilderContainerID",
                                       PageBuilderContainerSiteInfoProvider.GetPageBuilderContainerSites().WhereEquals("SiteID", SiteContext.CurrentSiteID).Select(x => x.PageBuilderContainerID).ToArray())
                              .OrderBy("ContainerDisplayName")
                              .Select(x =>
                                      new SelectListItem()
             {
                 Value = x.ContainerName,
                 Text = x.ContainerDisplayName
             }
                                      ).ToList();
             Containers.Insert(0, new SelectListItem()
             {
                 Value = "",
                 Text = "(No Container)"
             });
             return Containers;
         } catch (Exception ex)
         {
             // Module not installed
             EventLogService.LogWarning("PageBuilderContainer", "PageBuilderContainer Module Missing", ex, SiteContext.CurrentSite != null ? SiteContext.CurrentSite.SiteID : 0, additionalMessage: "Could not get Page Builder Containers, make sure you have installed the PageBuilderContainers.Kentico nuget package on your admin kentico instance.");
             return new List <SelectListItem>()
             {
                 new SelectListItem()
                 {
                     Value = "", Text = "(No Container)"
                 }
             };
         }
     }, new CacheSettings(1440, "GetContainerSelectors", SiteContext.CurrentSiteID)));
 }