public async Task <IActionResult> RegisterNurse([FromBody] RegisteredNurseVm model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, IsActive = true, DateModifiedIfActive = DateTime.UtcNow }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _userManager.AddClaimAsync(user, new Claim("IsNurse", "true")); var userViewModel = _service.CreateRegisteredNurse(model); return(Ok(userViewModel)); } AddErrors(result); } // If we got this far, something failed return(BadRequest(this.ModelState)); }
/// <summary> /// creates the registered nurse based on the vm info passed from client side /// </summary> /// <param name="registeredUser"></param> /// <returns></returns> public Nurse CreateRegisteredNurse(RegisteredNurseVm registeredUser) { var newNurse = new Nurse(); var appUser = _repo.Query <ApplicationUser>().Where(au => au.Email == registeredUser.Email).FirstOrDefault(); newNurse.IsActive = true; newNurse.DateModifiedIfActive = DateTime.UtcNow; newNurse.ApplicationUser = appUser; newNurse.ApplicationUserId = appUser.Id; //newNurse.FirebaseNurseKey = registeredUser.FirebaseNurseKey; _repo.Add(newNurse); _repo.SaveChanges(); return(newNurse); }