public UserUpdateOutputData Handle(UserUpdateInputData inputData) { using var transaction = new TransactionScope(); var id = new UserId(inputData.Id); var user = userRepository.Find(id); if (user == null) { throw new UserNotFoundException(id); } if (inputData.Name != null) { var name = new UserName(inputData.Name); user.ChangeName(name); if (userService.Exists(user)) { throw new CanNotRegisterUserException(user, "ユーザは既に存在しています。"); } } userRepository.Save(user); transaction.Complete(); return(new UserUpdateOutputData()); }
public void Put(string id, [FromBody] UserPutRequestModel request) { var inputData = new UserUpdateInputData(id, request.Name); bus.Handle(inputData); }