Ejemplo n.º 1
0
        public IActionResult GetFavorites(AdvertFavoritePageRequest request)
        {
            request.UserId = User.GetId();
            if (string.IsNullOrWhiteSpace(request.OrderBy))
            {
                request.OrderBy = nameof(Advert.Title);
            }

            if (request.SortOrder == 0)
            {
                request.SortOrder = SortOrder.ASC;
            }

            var page = _db.Adverts.FavoriteAdverts(request);

            return(Ok(page.Convert(a => _mapper.Map <AdvertExtendedDTO>(a))));
        }
Ejemplo n.º 2
0
        public Page <AdvertExtended> FavoriteAdverts(AdvertFavoritePageRequest request)
        {
            var query = _db.Set <AdvertFavorite>()
                        .Where(f => f.UserId == request.UserId)
                        .Select(f => f.Advert)
                        .Where(a => !request.ShowOnlyMy || a.UserId == request.UserId)
                        .Skip(request.PageIndex * request.PageSize)
                        .Take(request.PageSize);

            var total = query.Count();
            var set   = query
                        .Include(a => a.User)
                        .Select(a => new AdvertExtended
            {
                BaseAdvert = a,
                IsFavorite = true
            })
                        .ToList();

            return(new Page <AdvertExtended>(set, request.PageIndex, request.PageSize, total));
        }