예제 #1
0
        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));
        }
예제 #2
0
        /// <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);
        }