コード例 #1
0
        public async Task <PagedList <CategoryViewModel> > ListCategoryAsync(CategoryRequestListViewModel categoryRequestListViewModel)
        {
            var list = await GetAll()
                       .Where(x => (string.IsNullOrEmpty(categoryRequestListViewModel.Query) ||
                                    (x.Name.Contains(categoryRequestListViewModel.Query))))
                       .Select(x => new CategoryViewModel(x)).ToListAsync();

            var    categoryViewModelProperties = GetAllPropertyNameOfCategoryViewModel();
            var    requestPropertyName         = !string.IsNullOrEmpty(categoryRequestListViewModel.SortName) ? categoryRequestListViewModel.SortName.ToLower() : string.Empty;
            string matchedPropertyName         = string.Empty;

            foreach (var categoryViewModelProperty in categoryViewModelProperties)
            {
                var lowerTypeViewModelProperty = categoryViewModelProperty.ToLower();
                if (lowerTypeViewModelProperty.Equals(requestPropertyName))
                {
                    matchedPropertyName = categoryViewModelProperty;
                    break;
                }
            }

            if (string.IsNullOrEmpty(matchedPropertyName))
            {
                matchedPropertyName = "Name";
            }

            var type         = typeof(CategoryViewModel);
            var sortProperty = type.GetProperty(matchedPropertyName);

            list = categoryRequestListViewModel.IsDesc ? list.OrderByDescending(x => sortProperty.GetValue(x, null)).ToList() : list.OrderBy(x => sortProperty.GetValue(x, null)).ToList();

            return(new PagedList <CategoryViewModel>(list, categoryRequestListViewModel.Offset ?? CommonConstants.Config.DEFAULT_SKIP, categoryRequestListViewModel.Limit ?? CommonConstants.Config.DEFAULT_TAKE));
        }
コード例 #2
0
        public async Task <IActionResult> GetAll(CategoryRequestListViewModel categoryRequestListViewModel)
        {
            var category = await _categoryService.ListCategoryAsync(categoryRequestListViewModel);

            return(Ok(category));
        }