public async Task <IEnumerable <AdvertisementElementViewDto> > GetAdvertisements(int page, uint salary, string value, Guid companyId, Guid positionId) { var filter = new FilteredAdvertisementDto { Salary = salary, CompanyId = companyId, PositionId = positionId, Value = value }; if (filter.IsValid) { var ads = await _advertisementsService.GetFilteredAdvertisementsAsync(filter); if (page > 0) { return(_mapper.Map <IEnumerable <AdvertisementElementViewDto> >(ads.Take(page))); } return(_mapper.Map <IEnumerable <AdvertisementElementViewDto> >(ads)); } if (page > 0) { return(_mapper.Map <IEnumerable <AdvertisementElementViewDto> >(await _advertisementsService.GetAdvertisementsByPageAsync(page) ?? new List <Advertisement>())); } return(_mapper.Map <IEnumerable <AdvertisementElementViewDto> >(await _advertisementsService.GetAllAsync() ?? new List <Advertisement>())); }
public async Task <IEnumerable <Advertisement> > GetFilteredAdvertisementsAsync(FilteredAdvertisementDto ad) { if (!string.IsNullOrEmpty(ad.Value)) { _filter = _filter.With(a => a.Title.Contains(ad.Value)); } else { if (ad.Salary > 0) { _filter = _filter.With(a => a.Salary == ad.Salary); } if (ad.CompanyId != default) { _filter = _filter.With(a => a.Employer.CompanyId == ad.CompanyId); } if (ad.PositionId != default) { _filter = _filter.With(a => a.PositionId == ad.PositionId); } } return(await _repository.GetFilteredAdvertisementsAsync(_filter.Result)); }