Ejemplo n.º 1
0
        public ActionResult GetCategories(RenderWidgetViewModel model)
        {
            var categories = new List <CategoryItem>();

            using (var api = ApiFactory.Create())
            {
                var useSpecificCategoryTree = model.GetOptionValue <bool>("UseSpecificCategoryTree");
                var categoryTreeName        = model.GetOptionValue <string>("CategoryTreeName");

                var treeRequest = new GetCategoryTreesModel();
                var treePages   = api.Root.Categories.Get(new GetCategoryTreesRequest {
                    Data = treeRequest
                });

                var query = treePages.Data.Items.Where(item => item.AvailableFor.Contains(new Guid("75E6C021-1D1F-459E-A416-D18477BF2020")));

                if (useSpecificCategoryTree)
                {
                    query = query.Where(item => item.Name == categoryTreeName);
                }

                var categoryTreeIds = query
                                      .Select(item => item.Id)
                                      .ToList();

                foreach (var treeId in categoryTreeIds)
                {
                    var request = new GetCategoryTreeRequest {
                        CategoryTreeId = treeId, Data = { IncludeNodes = true }
                    };
                    var pages = api.Root.Category.Get(request);

                    categories.AddRange(pages.Nodes
                                        .Where(node => node.ParentId == null)
                                        .OrderBy(node => node.Name)
                                        .Select(node => new CategoryItem
                    {
                        Name = node.Name,
                        Id   = node.Id
                    }));
                }
            }

            return(View(categories));
        }
Ejemplo n.º 2
0
        public ActionResult GetCategories(RenderWidgetViewModel model)
        {
            var categories = new List<CategoryItem>();
            using (var api = ApiFactory.Create())
            {
                var useSpecificCategoryTree = model.GetOptionValue<bool>("UseSpecificCategoryTree");
                var categoryTreeName = model.GetOptionValue<string>("CategoryTreeName");

                var treeRequest = new GetCategoryTreesModel();
                var treePages = api.Root.Categories.Get(new GetCategoryTreesRequest { Data = treeRequest });

                var query = treePages.Data.Items.Where(item => item.AvailableFor.Contains(new Guid("75E6C021-1D1F-459E-A416-D18477BF2020")));

                if (useSpecificCategoryTree)
                {
                    query = query.Where(item => item.Name == categoryTreeName);
                }

                var categoryTreeIds = query
                    .Select(item => item.Id)
                    .ToList();

                foreach (var treeId in categoryTreeIds)
                {
                    var request = new GetCategoryTreeRequest { CategoryTreeId = treeId, Data = { IncludeNodes = true } };
                    var pages = api.Root.Category.Get(request);

                    categories.AddRange(pages.Nodes
                        .Where(node => node.ParentId == null)
                        .OrderBy(node => node.Name)
                        .Select(node => new CategoryItem
                    {
                        Name = node.Name,
                        Id = node.Id
                    }));
                }
            }

            return View(categories);
        }