コード例 #1
0
        public async Task <PagedDto <CategoryPageDto> > GetPageAsync(CategoryPagingDto pagingDto)
        {
            if (pagingDto.CreateStartTime != null && pagingDto.CreateEndTime == null)
            {
                throw new KnownException("创建时间参数有误", ServiceResultCode.ParameterError);
            }
            var parentIds = new List <string>();

            if (!string.IsNullOrWhiteSpace(pagingDto.ParentIds))
            {
                parentIds = pagingDto.ParentIds.Split(",").ToList();
            }
            pagingDto.Sort = pagingDto.Sort.IsNullOrEmpty() ? "id ASC" : pagingDto.Sort.Replace("-", " ");
            var categories = await _categoryRepo
                             .Select
                             .WhereIf(!string.IsNullOrWhiteSpace(pagingDto.CategoryName), c => c.Name.Contains(pagingDto.CategoryName))
                             .WhereIf(parentIds != null && parentIds.Any(), c => parentIds.Contains(c.ParentId.ToString()))
                             .WhereIf(!string.IsNullOrWhiteSpace(pagingDto.Type), c => c.Type.Equals(pagingDto.Type))
                             .WhereIf(pagingDto.CreateStartTime != null, c => c.CreateTime >= pagingDto.CreateStartTime && c.CreateTime <= pagingDto.CreateEndTime)
                             .OrderBy(pagingDto.Sort)
                             .ToPageListAsync(pagingDto, out long totalCount);

            var categoryDtos = categories.Select(c =>
            {
                var dto = Mapper.Map <CategoryPageDto>(c);
                CategoryEntity category = null;
                if (c.ParentId != 0)
                {
                    category = _categoryRepo.Get(c.ParentId);
                }
                dto.ParentName = category?.Name;
                dto.TypeName   = SystemConst.Switcher.CategoryType(c.Type);
                dto.IconUrl    = _fileRepo.GetFileUrl(c.IconUrl);
                return(dto);
            }).ToList();

            return(new PagedDto <CategoryPageDto>(categoryDtos, totalCount));
        }
コード例 #2
0
 public async Task <ServiceResult <PagedDto <CategoryPageDto> > > GetPageAsync([FromQuery] CategoryPagingDto pagingDto)
 {
     return(ServiceResult <PagedDto <CategoryPageDto> > .Successed(await _categoryService.GetPageAsync(pagingDto)));
 }