public async Task <ServiceResult <PaginatedListResult <ProductGroupsResponseViewModel> > > SearchListOfProductGroups(ProductGroupsRequestViewModel viewModel) { var paginatedListWithModel = await _repository.SearchProductCategories(viewModel); // Mapping List <ProductGroupsResponseViewModel> Mapping(List <ProductCategory> list) { return(list? .Select(model => new ProductGroupsResponseViewModel { Id = model.Id, Name = model.Name, //KmPercent = model. }) .ToList()); } var paginatedListWithViewModel = paginatedListWithModel.Copy(Mapping); return(ServiceResultFactory.Success(paginatedListWithViewModel)); }
public async Task <IActionResult> SearchListOfProductGroups([FromQuery] ProductGroupsRequestViewModel viewModel) => await HandleResultAsync(() => _service.SearchListOfProductGroups(viewModel));
public async Task <PaginatedListResult <ProductCategory> > SearchProductCategories(ProductGroupsRequestViewModel viewModel) { IQueryable <ProductCategory> SearchFilter(IQueryable <ProductCategory> queryInner) { return(queryInner); } IQueryable <ProductCategory> SearchSort(IQueryable <ProductCategory> queryInner) { var sortName = viewModel.SortName?.ToUpper(); if (sortName == ProductGroupsRequestViewModel.OrderFields.Name) { queryInner = queryInner.OrderUsingSearchOptions(viewModel, x => x.Name); } else if (sortName == ProductGroupsRequestViewModel.OrderFields.KmPercent) { queryInner = queryInner.OrderUsingSearchOptions(viewModel, x => x.Vat); } else { queryInner = queryInner.OrderBy(x => x.Id); } return(queryInner); } if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel)); } var query = Context.ProductCategories.Where(x => x.DeletedOn == null); query = SearchFilter(query); query = SearchSort(query); return(await query.ToPaginatedListResultAsync(viewModel)); }