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