public async Task <BasePagingResponse <BrandResModel> > GetBrandsAsync(GetBrandsReqModel model) { var result = new BasePagingResponse <BrandResModel>(); var query = _context.Brands.AsNoTracking(); query = CommonFunctions.SortQuery(model, query); result.Total = await query.CountAsync(); if (model.Page.HasValue && model.Page >= 0 && model.PageSize.HasValue && model.PageSize > 0) { query = query.Skip(model.PageSize.Value * (model.Page.Value - 1)).Take(model.PageSize.Value); } var brands = await query.ToListAsync(); result.Items = _mapper.Map <List <Brand>, List <BrandResModel> >(brands); result.Page = model.Page; result.PageSize = model.PageSize; result.TotalPage = (int)Math.Ceiling(result.Total / (double)result.PageSize); return(result); }
public async Task <BasePagingResponse <CategoryResModel> > GetBrands([FromQuery] GetBrandsReqModel model) { return(await _categoryService.GetCategoriesAsync(model)); }
public async Task <BasePagingResponse <CategoryResModel> > GetCategoriesAsync(GetBrandsReqModel model) { var result = new BasePagingResponse <CategoryResModel>(); var query = _context.Categories.AsNoTracking(); query = CommonFunctions.SortQuery(model, query); result.Total = await query.CountAsync(); if (model.Page.HasValue && model.Page >= 0 && model.PageSize.HasValue && model.PageSize > 0) { query = query.Skip(model.PageSize.Value * (model.Page.Value - 1)).Take(model.PageSize.Value); } var categories = await query.ToListAsync(); // Get all parent categories var parentCategories = categories.Where(c => !c.ParentId.HasValue).ToList(); result.Items = _mapper.Map <List <Category>, List <CategoryResModel> >(parentCategories); // Get all child categories foreach (var category in result.Items) { var childCategories = categories.Where(c => c.ParentId == category.Id).ToList(); category.ChildCategories = _mapper.Map <List <Category>, List <ChildCategoryResModel> >(childCategories); } result.Page = model.Page; result.PageSize = model.PageSize; result.TotalPage = (int)Math.Ceiling(result.Total / (double)result.PageSize); return(result); }
public async Task <BasePagingResponse <BrandResModel> > GetBrands([FromQuery] GetBrandsReqModel model) { return(await _brandService.GetBrandsAsync(model)); }