public async Task <IActionResult> Register(RegisterModel model) { var existing = await _context.Users .FirstOrDefaultAsync(u => u.EmailAddress == model.EmailAddress); if (existing != null) { return(Generate(HttpStatusCode.BadRequest, $"User name \"{model.EmailAddress}\" is already taken.")); } var user = new User { EmailAddress = model.EmailAddress, Password = _hashService.GenerateHash(model.Password), FirstName = model.FirstName, LastName = model.LastName, DateOfBirth = model.DateOfBirth.Value.ToUniversalTime() }; _context.Users.Add(user); await _context.SaveChangesAsync(); var result = new UserCreatedResponse { UserId = user.Id }; return(Generate(HttpStatusCode.OK, result, "User successfully registered.")); }
public async Task <IActionResult> CreateUser(CreateUserModel model) { var existing = await _context.Users .FirstOrDefaultAsync(u => u.EmailAddress == model.EmailAddress); if (existing != null) { return(Generate(HttpStatusCode.BadRequest, $"User name \"{model.EmailAddress}\" is already taken.")); } var user = new User { EmailAddress = model.EmailAddress, Password = _hashService.GenerateHash(model.Password), FirstName = model.FirstName, LastName = model.LastName, DateOfBirth = model.DateOfBirth.Value.ToUniversalTime() }; user.UserRoles.Clear(); var roles = await _context.Roles .Where(r => model.Roles.Contains(r.Name)) .ToListAsync(); foreach (var role in roles) { user.UserRoles.Add(new UserRole { RoleId = role.Id }); } _context.Users.Add(user); await _context.SaveChangesAsync(); var result = new UserCreatedResponse { UserId = user.Id }; return(Generate(HttpStatusCode.OK, result, "User successfully created.")); }
public async Task <IActionResult> SeedData() { await _context.Database.MigrateAsync(); var roleIds = new List <int>(); foreach (Roles role in Enum.GetValues(typeof(Roles))) { var name = role.GetAttributeOfType <DisplayAttribute>().Name; var roleId = await AddRoleAsync(name); roleIds.Add(roleId); } var userId = await AddSystemUserAsync(roleIds); var result = new UserCreatedResponse { UserId = userId }; return(Generate(HttpStatusCode.OK, result, "User successfully created.")); }