Example #1
0
        public async Task <ActionResult <GetUserFollowerModel> > PostUserFollower(PostUserFollowerModel postUserFollowerModel)
        {
            try
            {
                GetUserFollowerModel userFollowerModel = await _userFollowerRepository.PostUserFollower(postUserFollowerModel);

                return(CreatedAtAction(nameof(GetUserFollower), new { id = userFollowerModel.Id }, userFollowerModel));
            }
            catch (DatabaseException e)
            {
                return(BadRequest(e.MovieMindError));
            }
        }
        public async Task <IActionResult> AddFollower(string followingId)
        {
            try
            {
                var userId = HttpContext.Session.GetString("_Id");
                var user   = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users");

                PostUserFollowerModel postUserFollowerModel = new PostUserFollowerModel
                {
                    FollowingId = Guid.Parse(followingId),
                    FollowerId  = user.Id
                };

                GetUserFollowerModel getUserFollowerModel = await _moviemindAPIService.PostModel <PostUserFollowerModel, GetUserFollowerModel>(postUserFollowerModel, "Userfollowers");

                return(Redirect("/Users/Details/" + followingId));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }
        public async Task <GetUserFollowerModel> PostUserFollower(PostUserFollowerModel postUserFollowerModel)
        {
            User following = await _context.Users.FirstOrDefaultAsync(x => x.Id == postUserFollowerModel.FollowingId);

            if (following == null)
            {
                throw new EntityException("User following not found", this.GetType().Name, "PostUserFollower", "404");
            }

            User follower = await _context.Users.FirstOrDefaultAsync(x => x.Id == postUserFollowerModel.FollowerId);

            if (follower == null)
            {
                throw new EntityException("User follower not found", this.GetType().Name, "PostUserFollower", "404");
            }

            try
            {
                EntityEntry <UserFollower> result = await _context.UserFollowers.AddAsync(new UserFollower
                {
                    FollowingId = postUserFollowerModel.FollowingId,
                    Following   = following,
                    FollowerId  = postUserFollowerModel.FollowerId,
                    Follower    = follower
                });

                await _context.SaveChangesAsync();

                return(await GetUserFollower(result.Entity.Id.ToString()));
            }
            catch (MovieMindException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new DatabaseException(e.InnerException.Message, this.GetType().Name, "PostUserFollower", "400");
            }
        }