AccountsController.Post C# (CSharp) Method

Post() private method

private Post ( RegisterModel model ) : Task
model RegisterModel
return Task
            public async Task<IActionResult> Post([FromBody]RegisterModel model)
            {
                var newUser = new IdentityUser { UserName = model.Email, Email = model.Email };
    
                var result = await _userManager.CreateAsync(newUser, model.Password);
    
                if (!result.Succeeded)
                {
                    var errors = result.Errors.Select(x => x.Description);
    
                    return BadRequest(new RegisterResult { Successful = false, Errors = errors });
                }
    
                // Add all new users to the User role
                await _userManager.AddToRoleAsync(newUser, "User");
    
                // Add new users whose email starts with 'admin' to the Admin role
                if (newUser.Email.StartsWith("admin"))
                {
                    await _userManager.AddToRoleAsync(newUser, "Admin");
                }
    
                return Ok(new RegisterResult { Successful = true });
            }
        }

Usage Example

        public void Post_Test()
        {
            #region === ARRANGE ===

            Mock <IApplicationServicesFactory>   mockApplicationServicesFactory = new Mock <IApplicationServicesFactory>();
            Mock <IUserCommandsService>          mockUserCommandsService        = new Mock <IUserCommandsService>();
            Mock <ILogger <AccountsController> > mockLoger = new Mock <ILogger <AccountsController> >();
            AccountsController usersController             = new AccountsController(mockLoger.Object, mockApplicationServicesFactory.Object);

            mockApplicationServicesFactory.Setup(x => x.CreateUserCommandsService()).Returns(mockUserCommandsService.Object);

            #endregion

            #region === ACT ===

            usersController.Post(new SignUpUser());

            #endregion

            #region === ASSERT ===

            mockUserCommandsService.Verify(mock => mock.SignUpNewUser(It.IsAny <SignUpUser>()), Times.Once());

            #endregion
        }
All Usage Examples Of AccountsController::Post
AccountsController