public async Task <IActionResult> AddStaff([FromBody] StaffInfoDTO staffInfoDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _repository.AddStaff(staffInfoDto, User.FindFirst(ClaimTypes.NameIdentifier).Value); if (result.Succeeded) { return(StatusCode(201, "Staff has been added successfully!")); } throw new Exception("Add new user failed"); }
public async Task <IdentityResult> AddStaff(StaffInfoDTO staff, string adminId) { if (await FindUserByUserName(staff.Email) == null) { var newStaff = new ApplicationUser { UserName = staff.Email, Email = staff.Email, FullName = staff.FullName }; var result = await _userManager.CreateAsync(newStaff, staff.Password); if (result.Succeeded) { var newUser = await FindUserByUserName(staff.Email); var currentAdmin = adminId; await _context.Staff.AddAsync(new Staff { StaffId = newUser.Id, AddBy = currentAdmin, AddDate = staff.AddDate, Address = staff.Address, Phone = staff.Phone, Salary = staff.Salary }); await _context.SaveChangesAsync(); return(await _userManager.AddToRoleAsync(newStaff, staff.Role)); } } return(IdentityResult.Failed()); }