Example #1
0
        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));
 }