public void Register(HealthcareProviderRegisterRequest model, string origin) { // validate if (_context.HealthcareProviders.Any(x => x.Email == model.Email)) { // send already registered error in email to prevent account enumeration sendAlreadyRegisteredEmail(model.Email, origin); return; } // map model to new healthcareProvider object var account = _mapper.Map <HealthcareProvider>(model); // first registered account is an admin //var isFirstAccount = _context.HealthcareProviders.Count() == 0; //account.Role = isFirstAccount ? Role.Admin : Role.User; //All registered accounts are given the healthcareprovider role account.Role = Role.HealthcareProvider; account.Created = DateTime.UtcNow; account.VerificationToken = randomTokenString(); // hash password account.PasswordHash = BC.HashPassword(model.Password); // save account _context.HealthcareProviders.Add(account); _context.SaveChanges(); // send email sendVerificationEmail(account, origin); }
public IActionResult Register(HealthcareProviderRegisterRequest model) { _accountService.Register(model, Request.Headers["origin"]); return(Ok(new { message = "Registration successful, please check your email for verification instructions" })); }