Ejemplo n.º 1
0
        public IActionResult DeleteFollower([FromBody] string userName)
        {
            if (userGet.HaveUser(HttpContext))
            {
                User followedUser = userGet.GetUser(HttpContext);
                User followerUser = userRepository.GetUserData(userName);
                if (followerUser == null)
                {
                    return(BadRequest("Not exists user with username!"));
                }
                Success success = followerRepository.DeleteFollower(followerUser, followedUser);
                switch (success)
                {
                case (Success.Successfull):
                    return(Ok());

                case (Success.FailedByNotAccepted):
                    return(BadRequest("Not answered!"));

                case (Success.FailedByNotExist):
                    return(BadRequest("Following not requested!"));
                }
            }
            return(Unauthorized());
        }
Ejemplo n.º 2
0
        public async Task Unfollow(Follower follower)
        {
            await _followerRepository.DeleteFollower(follower);

            if (!_inMemoryStorage.UserFollowers.TryGetValue(follower.FollowedUserId, out List <int> followers))
            {
                followers = new List <int>();
                _inMemoryStorage.UserFollowers[follower.FollowedUserId] = followers;
            }

            followers.Remove(follower.FollowingUserId);

            if (followers.Count < Constants.CELEBRITY_FOLLOWERS_MIN_AMOUNT)
            {
                _inMemoryStorage.Celebrities.Remove(follower.FollowedUserId);
            }

            _feedManager.RemoveFromFeed(follower.FollowingUserId, follower.FollowedUserId);
        }