public async Task <IActionResult> CreateAccountManager(AccountManagerInputViewModel accountManager)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(accountManager));
            }

            await this.administratorService.CreateAccountManagerAsync(accountManager);

            return(this.RedirectToAction(nameof(this.Index)));
        }
        public async Task CreateAccountManagerAsyncShouldCallUserManagerCreate()
        {
            var manager = new AccountManagerInputViewModel
            {
                Username = "******",
                Email    = "[email protected]",
                Password = "******",
            };

            var result = await this.administratorService.CreateAccountManagerAsync(manager);

            this.userManager.Verify(u => u.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once);
        }
        public void CreateAccountManagerAsyncShouldReturnSuccess()
        {
            var manager = new AccountManagerInputViewModel
            {
                Username = "******",
                Email    = "[email protected]",
                Password = "******",
            };

            var result = this.administratorService.CreateAccountManagerAsync(manager);

            Assert.IsTrue(result.IsCompletedSuccessfully);
        }
        public async Task <bool> CreateAccountManagerAsync(AccountManagerInputViewModel accountManager)
        {
            var user = new ApplicationUser
            {
                Email          = accountManager.Email,
                EmailConfirmed = true,
                UserName       = accountManager.Username,
            };

            var result = await this.userManager.CreateAsync(
                user,
                accountManager.Password);

            if (result.Succeeded)
            {
                result = await this.userManager.AddToRoleAsync(
                    user,
                    GlobalConstants.AccountManagerRoleName);
            }

            await this.userRepository.SaveChangesAsync();

            return(result.Succeeded);
        }