コード例 #1
0
        public async Task <ActionResult <FriendsRelationDto> > AddRelation(string userId, FriendsRelationToAddDto relationToAdd)
        {
            try
            {
                if (Guid.TryParse(userId, out Guid gUserId))
                {
                    if (await _userService.CheckIfUserExists(gUserId) && await _userService.CheckIfUserExists(relationToAdd.FriendId))
                    {
                        FriendsRelationDto addedRealtion = await _relationService.AddRelationAsync(gUserId, relationToAdd);

                        return(CreatedAtRoute("GetRelation",
                                              new { userId, friendId = addedRealtion.FriendId },
                                              addedRealtion));
                    }
                    else
                    {
                        return(NotFound($"User: {userId} or friend: {relationToAdd.FriendId} not found."));
                    }
                }
                else
                {
                    return(BadRequest($"{userId} is not valid guid."));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error occured during adding the user relation. User id: {user}, friend id {FriendId}", userId, relationToAdd.FriendId);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
コード例 #2
0
        public async void AddRelation_ReturnsCreatedAtRouteResult_WithRelationData()
        {
            //Arrange
            _mockUserService.Setup(Service => Service.CheckIfUserExists(It.IsAny <Guid>()))
            .ReturnsAsync(true)
            .Verifiable();

            FriendsRelationDto relationEntity = _mapper.Map <FriendsRelationDto>(_relationToAdd);

            relationEntity.UserId   = new Guid(ConstIds.ExampleUserId);
            relationEntity.FriendId = new Guid(ConstIds.ExampleFromWhoId);

            _mockRelationService.Setup(Service => Service.AddRelationAsync(It.IsAny <Guid>(), It.IsAny <FriendsRelationToAddDto>()))
            .ReturnsAsync(relationEntity)
            .Verifiable();

            var controller = new FriendsRelationsController(_loggerMock.Object, _mockUserService.Object, _mockRelationService.Object);

            //Act
            var result = await controller.AddRelation(ConstIds.ExampleUserId, _relationToAdd);

            //Assert
            var redirectToActionResult = Assert.IsType <CreatedAtRouteResult>(result.Result);

            Assert.Equal(ConstIds.ExampleUserId, redirectToActionResult.RouteValues["userId"].ToString());
            Assert.Equal(ConstIds.ExampleFromWhoId, redirectToActionResult.RouteValues["friendId"].ToString());
            Assert.Equal("GetRelation", redirectToActionResult.RouteName);
            Assert.IsType <FriendsRelationDto>(redirectToActionResult.Value);
            _mockUserService.Verify();
            _mockRelationService.Verify();
        }
コード例 #3
0
 public ActionResult <FriendsRelationDto> GetRelation(string userId, string friendId)
 {
     if (Guid.TryParse(userId, out Guid gUserId) && Guid.TryParse(friendId, out Guid gFriendId))
     {
         try
         {
             FriendsRelationDto friendsRelation = _relationService.GetFriendRelation(gUserId, gFriendId);
             return(Ok(friendsRelation));
         }
         catch (Exception ex)
         {
             _logger.LogError(ex, "Error occured during getting the friends relation. Users id: {userId} and {friendId}", userId, friendId);
             return(StatusCode(StatusCodes.Status500InternalServerError));
         }
     }
     else
     {
         return(BadRequest($"{userId} or {friendId} is not valid guid."));
     }
 }