Exemple #1
0
        public async Task <List <AdvertDto> > ListMyLatestAdvertisementsAsync(SearchAdvertDto dto)
        {
            var query = DbContext.Adverts.Include(a => a.Advertiser).Where(a => a.AdvertiserId == KutyAppContext.CurrentUser.Id);

            if (!string.IsNullOrWhiteSpace(dto.KeyWord))
            {
                var words = dto.KeyWord.Split(' ');
                query = query.Where(a => words.Any(w => a.Title.Contains(w, StringComparison.CurrentCultureIgnoreCase) || a.Description.Contains(w, StringComparison.CurrentCultureIgnoreCase)));
            }

            var adverts = await query.Include(a => a.Advertiser).OrderByDescending(a => a.CreateDate).ToListAsync();

            if (!string.IsNullOrWhiteSpace(dto.KeyWord))
            {
                adverts = adverts.OrderByDescending(a => dto.KeyWord.Split(' ').Count(w => a.Title.Contains(w, StringComparison.CurrentCultureIgnoreCase) || a.Description.Contains(w, StringComparison.CurrentCultureIgnoreCase)))
                          .ThenByDescending(a => a.CreateDate)
                          .ToList();
            }

            var mappedAdverts = Mapper.Map <List <AdvertDto> >(adverts);

            return(mappedAdverts);
        }
Exemple #2
0
 public async Task <ActionResult <List <AdvertDto> > > ListMyLatestAdvertisements(SearchAdvertDto dto) =>
 Result(await AdvertManager.ListMyLatestAdvertisementsAsync(dto));