public async Task <PagedListResult <ProductDto> > GetAllAsPagedList(ProductListRequestDto input) { Expression <Func <Eron.Core.Entities.Financial.Shop.Product, bool> > filter = product => true; #region Check Filters if (input.ProductName.IsPopulated()) { filter = x => x.Name.ToLower().Contains(input.ProductName.ToLower()); } if (input.ProductCode.IsPopulated()) { filter = filter.AndAlso(x => x.ProductCode.ToLower().Contains(input.ProductCode.ToLower())); } if (input.Availability.HasValue) { filter = filter.AndAlso(x => x.ExistsInShop == input.Availability); } #endregion var result = await UnitOfWork.ProductRepository.GetAsPagedListAsync(input, filter); foreach (var item in result.Result) { var lastPrice = item.Prices.OrderByDescending(x => x.CreateDateTime).FirstOrDefault(); if (lastPrice != null) { item.Price = lastPrice.Price; } } return(result.MapTo <PagedListResult <ProductDto> >()); }
public async Task <IHttpActionResult> GetAllAsPagedList(ProductListRequestDto input) { var result = await _service.GetAllAsPagedList(input); return(Ok(result)); }