public AccountController(GrowDbContext dbContext, IOptions <AppSettings> appSettings, SignInManager <Account> signInManager, UserManager <Account> userManager, ILogger logger) : base(dbContext, appSettings, logger) { _signInManager = signInManager; _userManager = userManager; _mapper = new AccountVmMapper(_userManager, DbContext); }
public async Task CreateAccounts(GrowDbContext context, AccountVmMapper mapper) { var errors = new List <string>(); var random = new Random(); TemporaryPasswords = new Dictionary <string, string>(); foreach (var(email, teamName) in Emails) { var teamId = context.Teams.FirstOrDefault(t => t.Name.Equals(teamName, StringComparison.InvariantCultureIgnoreCase))?.Id; if (teamId == null) { errors.Add($"Email {email} was skipped since corresponding team was not found in the database"); continue; } var account = new AccountEditViewModel() { Email = email, Name = email, Password = random.Next(268435456, int.MaxValue).ToString("X"), //produces 8-char hex string IsAdmin = false, IsSuperAdmin = false, IsActive = true, TeamId = teamId }; var result = await mapper.CreateAccountAsync(account).ConfigureAwait(false); if (!result.Succeeded) { errors.Add(result.Errors.First().Description); } else { TemporaryPasswords.Add(email, account.Password); } } }
public AccountsController(UserManager <Account> userManager, GrowDbContext dbContext, IOptions <AppSettings> appSettings, ILogger logger) : base(dbContext, appSettings, logger) { _userManager = userManager; _mapper = new AccountVmMapper(userManager, DbContext); }