예제 #1
0
        public async Task <IActionResult> Put([FromBody] GroupManageModel value)
        {
            var userId = _validateHelper.GetUserId(HttpContext);

            if (value != null && !value.Users.Any(u => u.Id.Equals(userId)))
            {
                return(Forbid());
            }

            try
            {
                var model = await _groupService.UpdateAsync(value);

                if (model == null)
                {
                    return(BadRequest());
                }

                return(Ok(model));
            }
            catch (KeyNotFoundException)
            {
                return(NotFound());
            }
        }
예제 #2
0
        public async Task <GroupManageModel> UpdateAsync(GroupManageModel model)
        {
            _unitOfWork.BeginTransaction();
            var updatedModel = await _repository.UpdateAsync(_mapper.Map <GroupModel>(model));

            var result = await _unitOfWork.CommitAsync();

            return(result > 0 ? _mapper.Map <GroupManageModel>(updatedModel) : null);
        }
        public async Task Group_PutWithInvalidGroup_ShouldReturnNotFound()
        {
            var model = new GroupManageModel
            {
                Id    = DefaultInvalidGroup,
                Name  = "New user",
                Users = new List <UserModelBase>()
                {
                    new UserModelBase {
                        Id = DefaultUser
                    }
                }
            };
            var results = await _controller.Put(model);

            results.Should().BeOfType <NotFoundResult>();
        }
        public async Task Group_PutWithInvalidUser_ShouldReturnForbid()
        {
            MockUser(_controller, DefaultInvalidUser);

            var model = new GroupManageModel
            {
                Id    = DefaultGroup,
                Name  = "New user",
                Users = new List <UserModelBase>()
                {
                    new UserModelBase {
                        Id = DefaultUser
                    }
                }
            };
            var results = await _controller.Put(model);

            results.Should().BeOfType <ForbidResult>();
        }
        public async Task Group_Put_ShouldReturnData()
        {
            var model = new GroupManageModel
            {
                Id    = DefaultGroup,
                Name  = "New name",
                Users = new List <UserModelBase>()
                {
                    new UserModelBase {
                        Id = DefaultUser
                    }
                }
            };
            var results = await _controller.Put(model);

            results
            .Should().BeOfType <OkObjectResult>()
            .Which.Value.Should().BeAssignableTo <GroupManageModel>()
            .Which.Should().NotBeNull();
        }