Example #1
0
        public FavoriteAgenda SaveToFavorites(Agenda agenda, string userId)
        {
            ApplicationUser user = _db.Users.Include(u => u.Favorites).Where(u => u.Id == userId).FirstOrDefault();

            var exist = user.Favorites.Where(f => f.AgendaId == agenda.Id).FirstOrDefault();

            if (exist != null)
            {
                return(null);
            }

            user.Favorites.Add(new FavoriteAgenda
            {
                AgendaId = agenda.Id,
                UserId   = userId,
                HasRated = false
            });

            _db.Users.Update(user);
            _db.SaveChanges();

            FavoriteAgenda fav = user.Favorites.Where(f => f.AgendaId == agenda.Id).FirstOrDefault();

            fav.Agenda = agenda;

            return(fav);
        }
        public IActionResult RemoveFavoriteAgenda([FromBody] FavoriteAgenda entity)
        {
            var user = _userManager.GetUserId(this.User);

            entity.UserId = user;

            FavoriteAgenda    agenda    = _agendaService.RemoveFavorite(entity, user);
            FavoriteAgendaDto agendaDto = _mapper.Map <FavoriteAgendaDto>(agenda);

            return(Ok(agendaDto));
        }
        public IActionResult RateAgenda([FromBody] FavoriteAgenda entity)
        {
            var userId = _userManager.GetUserId(this.User);

            FavoriteAgenda favoriteAgenda = _agendaService.RateAgenda(entity, userId);

            if (favoriteAgenda == null)
            {
                return(BadRequest());
            }

            return(Ok(favoriteAgenda));
        }
        public IActionResult SaveToFavorites([FromBody] Agenda agenda)
        {
            var userId = _userManager.GetUserId(this.User);

            FavoriteAgenda favoriteAgenda = _agendaService.SaveToFavorites(agenda, userId);

            if (favoriteAgenda == null)
            {
                return(BadRequest());
            }


            return(Ok(favoriteAgenda));
        }
Example #5
0
        public FavoriteAgenda RemoveFavorite(FavoriteAgenda entity, string user)
        {
            Agenda agenda = _db.Agendas.Include(a => a.Favorites).ThenInclude(a => a.Agenda).ThenInclude(a => a.User)
                            .Include(u => u.Favorites).ThenInclude(a => a.Agenda).ThenInclude(a => a.Items)
                            .Include(a => a.Rating).Where(a => a.Id == entity.AgendaId).FirstOrDefault();

            FavoriteAgenda fav = agenda.Favorites.Single(a => a.UserId == user && a.AgendaId == agenda.Id);

            _db.Entry(fav).State = EntityState.Deleted;

            _db.Update(agenda);
            _db.SaveChanges();

            return(entity);
        }
Example #6
0
        public FavoriteAgenda RateAgenda(FavoriteAgenda favorite, string userId)
        {
            Agenda agenda = _db.Agendas.Include(a => a.Favorites).ThenInclude(a => a.Agenda).ThenInclude(a => a.User)
                            .Include(u => u.Favorites).ThenInclude(a => a.Agenda).ThenInclude(a => a.Items)
                            .Include(a => a.Rating).Where(a => a.Id == favorite.AgendaId).FirstOrDefault();

            favorite.HasRated = true;

            if (agenda == null)
            {
                return(null);
            }

            if (favorite.Grade == 1)
            {
                agenda.Rating.One++;
            }
            else if (favorite.Grade == 2)
            {
                agenda.Rating.Two++;
            }
            else if (favorite.Grade == 3)
            {
                agenda.Rating.Three++;
            }
            else if (favorite.Grade == 4)
            {
                agenda.Rating.Four++;
            }
            else if (favorite.Grade == 5)
            {
                agenda.Rating.Five++;
            }

            agenda.Rating.TotalVotes++;
            agenda.Rating.Avg = CalculateAvg(agenda.Rating);

            FavoriteAgenda fav = agenda.Favorites.Single(a => a.UserId == userId && a.AgendaId == agenda.Id);

            _db.Entry(fav).CurrentValues.SetValues(favorite);
            _db.Entry(fav).State = EntityState.Modified;

            _db.Update(agenda);
            _db.SaveChanges();

            return(fav);
        }