Пример #1
0
        public ActionResult <Thread> AddRemoveFavorite([FromBody] Thread_Favorite fav)
        {
            var status = _ThreadService.Thread_AddRemoveFavorite(fav);

            if (status)
            {
                return(BadRequest());
            }
            return(Ok(status));
        }
Пример #2
0
        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
            //
            //------------------------------------------------------------------------------
        }