public async Task <BaseResponse> Get(FilterParams parameters) { GetMobileListRequest request = new GetMobileListRequest() { QueryString = parameters.Query, PriceFrom = parameters.PriceFrom ?? null, PriceTo = parameters.PriceTo ?? null }; return(await _mobileService.GetMobilelist(request)); }
public async Task <BaseResponse> GetMobilelist(GetMobileListRequest request) { BaseResponse <List <MobileListItem> > response = null; try { var result = await(_mobilieRepository as MobileRepository) .FindBy(x => (x.FilterProductByQueryString(request.QueryString)) && (x.FilterProductByPriceRange(request.PriceFrom, request.PriceTo))) .Include(x => x.Photos).ToListAsync(); response = BaseResponse.Ok(new List <MobileListItem>()); foreach (var item in result) { response.Data.Add(new MobileListItem() { Brand = item.Brand, CPU = item.CPU, InternalMemory = item.InternalMemory, MobileId = item.Id, Name = item.Name, OS = item.OS, Price = item.Price, RAM = item.RAM, ScreenResolution = item.ScreenResolution, ScreenSize = item.ScreenSize, Size = item.Size, VideoUrl = item.VideoUrl, Weight = item.Weight, Photos = (item.Photos as List <Domain.DAO.Entities.Photo>).Select(x => new Domain.DTO.ServiceModels.Photo() { Base64 = x.Value, PhotoId = x.Id }).ToList() }); } } catch (Exception e) { _logger.LogError(e.Message); response = BaseResponse.Fail <List <MobileListItem> >(new Error() { Code = ErrorCode.Internal, ErrorMessage = "Could not find products." }); } return(response); }