예제 #1
0
 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);
                }
            }
        }
예제 #3
0
 public AccountsController(UserManager <Account> userManager, GrowDbContext dbContext, IOptions <AppSettings> appSettings, ILogger logger) : base(dbContext, appSettings, logger)
 {
     _userManager = userManager;
     _mapper      = new AccountVmMapper(userManager, DbContext);
 }