public async Task <UserDTO> CreateUser([FromBody] CreateUserInputDTO input) { var message = new CreateSingleUserCommand(input); var result = await _commandDispatcher.Execute(message); return(result); }
public async void given_CreateSingleUserCommand_handler_should_have_correct_command_type() { // Assemble CreateUserInputDTO input = new CreateUserInputDTO { FirstName = "test", LastName = "testLastName", Email = "testEmail", Position = "testPosition", Department = "testDepartment", IsAdmin = true, IsActive = true, PermissionList = new Dictionary <Guid, PermissionDetails>() }; var command = new CreateSingleUserCommand(input); var mockAgg = new CreateSingleUserCommandHandlerMockAggregate(); mockAgg.setup_session_to_ensure_addAndCommit_are_called(); var handler = mockAgg.HandlerFactory(); // Apply var result = await handler.Handle(command); // Assert Assert.True(mockAgg.SessionAddWasCalled); Assert.True(mockAgg.SessionCommitWasCalled); }
public async void given_create_user_command_command_dispatcher_should_get_same_command_created_in_controller() { //Assemble var mockAgg = new UserControllerMockAggregate(); var input = new CreateUserInputDTO() { FirstName = "testFName", LastName = "testLName" }; var command = new CreateSingleUserCommand(input); mockAgg.setup_dispatcher_to_verify_createUserCommands_are_the_same(command); var controller = mockAgg.CreateUserController(); //Apply var result = await controller.CreateUser(input); //Assert Assert.IsType <UserDTO>(result); Assert.Equal(result.FirstName, input.FirstName); Assert.Equal(result.LastName, input.LastName); }
public UserCreatedEvent(CreateUserInputDTO dto) { if (dto.PermissionList == null) { PermissionList = new Dictionary <Guid, PermissionDetails>(); } if (dto.PermissionList != null && dto.PermissionList.Any()) { foreach (var permission in dto.PermissionList) { permission.Value.EventType = JsonConvert.SerializeObject(typeof(UserPermissionGrantedEvent).FullName); } } ById = dto.ById == Guid.Empty ? Guid.Empty : dto.ById; FirstName = dto.FirstName; LastName = dto.LastName; Email = dto.Email; Position = dto.Position; Department = dto.Department; IsAdmin = dto.IsAdmin; IsActive = dto.IsActive; PermissionList = dto.PermissionList; }
public void given_create_user_with_bad_input_should_throw_CreateUserDataNotFoundException() { // Assemble CreateUserInputDTO input = new CreateUserInputDTO(); UserAggregate agg; // Apply / Assert Assert.Throws <CreateUserDataNotFoundException>(() => agg = UserAggregate.CreateNewUser(input)); }
public static UserAggregate CreateNewUser(CreateUserInputDTO dto) { //dont create a user without anyof these fields if (string.IsNullOrWhiteSpace(dto.FirstName) || string.IsNullOrWhiteSpace(dto.LastName) || string.IsNullOrWhiteSpace(dto.Email) || string.IsNullOrWhiteSpace(dto.Department) || string.IsNullOrWhiteSpace(dto.Position) ) { throw new CreateUserDataNotFoundException("One of the fields for creating a user was null or whitespace!"); } return(new UserAggregate(dto)); }
public int CreateUser(CreateUserInputDTO userInputDTO) { using (var uow = UnitOfWorkFactory.Create(_userRepo)) { var user = userInputDTO.Map <User>(); _userRepo.Insert(user); uow.SaveChanges(); //集成Dapper var count = _userRepo.GetDbConnection().ExecuteScalar <int>("select count(*) from emms_system_user"); System.Diagnostics.Trace.WriteLine($"user count:{count}"); return(user.Id); } }
public void given_create_user_should_have_user_created_event_with_non_empty_id() { // Assemble CreateUserInputDTO input = new CreateUserInputDTO { FirstName = "test", LastName = "testLastName", Email = "testEmail", Position = "testPosition", Department = "testDepartment", IsAdmin = true, IsActive = true, PermissionList = new Dictionary <Guid, PermissionDetails>() }; // Apply var agg = UserAggregate.CreateNewUser(input); // Assert var changes = agg.FlushUncommitedChanges(); Assert.Single(changes); Assert.Collection(changes, (e) => { Assert.IsType <UserCreatedEvent>(e); var @event = (UserCreatedEvent)e; Assert.Equal(1, @event.Version); Assert.NotEqual(Guid.Empty, @event.Id); Assert.Equal(input.FirstName, @event.FirstName); Assert.Equal(input.LastName, @event.LastName); Assert.Equal(input.Email, @event.Email); Assert.Equal(input.Position, @event.Position); Assert.Equal(input.Department, @event.Department); Assert.True(@event.IsAdmin); Assert.True(@event.IsActive); }); Assert.NotEqual(Guid.Empty, agg.Id); Assert.Equal(input.FirstName, agg.FirstName); Assert.Equal(input.LastName, agg.LastName); Assert.Equal(input.Email, agg.Email); Assert.Equal(input.Position, agg.Position); Assert.Equal(input.Department, agg.Department); Assert.True(agg.IsAdmin); Assert.True(agg.IsActive); }
public UserAggregate SetupAdminUser() { var dto = new CreateUserInputDTO { FirstName = "test", LastName = "testLastName", Email = "testEmail", Position = "testPosition", Department = "testDepartment", IsAdmin = true, IsActive = true, PermissionList = new Dictionary <Guid, PermissionDetails>() }; var agg = UserAggregate.CreateNewUser(dto); return(agg); }
public static UserAggregate SetupAdminUser() { var dto = new CreateUserInputDTO { FirstName = "Stephen", LastName = "Lomangino", Email = "*****@*****.**", Position = "API Lead", Department = "Development", IsAdmin = true, IsActive = true, PermissionList = { } }; var agg = UserAggregate.CreateNewUser(dto); return(agg); }
public CreateSingleUserCommand(CreateUserInputDTO input) { Input = input; }
protected UserAggregate(CreateUserInputDTO dto) { Id = Guid.NewGuid(); ApplyChange(new UserCreatedEvent(dto)); }
public int CreateUser(CreateUserInputDTO createUserInputDTO) { return(userService.CreateUser(createUserInputDTO)); }