public IEnumerable <SelectOption> GetArticleCategories(ArticleCategorySelectFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new ArticleCategorySelectFilterModel();
            }

            var filter = new BaseFilter
            {
                Keyword  = criterias.Query,
                PageSize = _pagerOptions.PageSize,
                Page     = _defaultPageSelection
            };
            IList <ArticleCategoryResult> categories;

            if (criterias.IsParentOnly.HasValue && criterias.IsParentOnly.GetValueOrDefault())
            {
                categories = _articleCategoryService.SearchParents(new IdRequestFilter <int?>
                {
                    Id = criterias.CurrentId
                }, filter);
            }
            else
            {
                categories = _articleCategoryService.Search(new IdRequestFilter <int?>
                {
                    Id = criterias.CurrentId
                }, filter);
            }

            if (categories == null || !categories.Any())
            {
                return(new List <SelectOption>());
            }

            var categorySeletions = categories
                                    .Select(x => new SelectOption
            {
                Id   = x.Id.ToString(),
                Text = x.ParentId.HasValue ? $"-- {x.Name}" : x.Name
            });

            return(categorySeletions);
        }
예제 #2
0
 public IEnumerable <SelectOption> GetArticleCategories([Service] IArticleCategoryResolver articleCategoryResolver, ArticleCategorySelectFilterModel criterias)
 {
     return(articleCategoryResolver.GetArticleCategories(criterias));
 }