public ActionResult <Thread> AddRemoveFavorite([FromBody] Thread_Favorite fav) { var status = _ThreadService.Thread_AddRemoveFavorite(fav); if (status) { return(BadRequest()); } return(Ok(status)); }
public Boolean Thread_AddRemoveFavorite(Thread_Favorite favorite) { var user = _users.Find <User>(x => x.uID == favorite.uID).FirstOrDefault(); User_Thread thread = new User_Thread(); thread = user.Threads; List <string> favoriteList = new List <string>(); favoriteList = thread.Favorites; if (favoriteList.Contains(favorite.threadID)) { var filter = Builders <User> .Filter.Eq(x => x.uID, favorite.uID); var update = Builders <User> .Update.AddToSet(x => x.Threads.Favorites, favorite.threadID); var status = _users.UpdateOne(filter, update); if (status != null) { return(true); } return(false); } else { var filter = Builders <User> .Filter.Eq(x => x.uID, favorite.uID); var update = Builders <User> .Update.Pull(x => x.Threads.Favorites, favorite.threadID); var status = _users.UpdateOne(filter, update); if (status != null) { return(true); } return(false); } //------------------------------------------------------------------------------ // // Add notification to all the subscribers and members that initiate this method // //------------------------------------------------------------------------------ }