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)); }
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); }
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); }