public async Task <object> Register([FromBody] RegisterEmployeeVM model) { var token = Request.Headers["Authorization"].ToString().Replace("Bearer ", ""); if (!PatManagerVerify.CheckIfManager(token, context)) { //if the user isn't a manager then quit the method. Only managers are able to hire new people return(null); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { //add the user to the role of employee straight after being added by the manager UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(model.Email, "employee"); //now add the user details UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user.Id, model.FirstName, model.LastName); //The user is never signed in when they are registered. As they are only ever registered through the manager //creating the new user //await signInManager.SignInAsync(user, false); return(await GenerateJwtToken(model.Email, user)); } throw new ApplicationException("UNKNOWN_ERROR"); }
public async Task SeedDataAsync() { var users = context.Users; if (users.Count() > 0) { return; } string password = "******"; var manager = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result = await userManager.CreateAsync(manager, password); if (result.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(manager.Email, "Manager"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(manager.Id, "Default", "Manager"); } var user1 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result1 = await userManager.CreateAsync(user1, password); if (result1.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user1.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user1.Id, "Jack", "Employee"); } var user2 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result2 = await userManager.CreateAsync(user2, password); if (result2.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user2.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user2.Id, "Matthew", "Employee"); } var user3 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result3 = await userManager.CreateAsync(user3, password); if (result3.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user3.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user3.Id, "Chris", "Employee"); } }