Ejemplo n.º 1
0
        public async Task <IActionResult> RegisterPatient([FromBody] RegisterPatientVm 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("IsPatient", "true"));

                    var userViewModel = _service.CreateRegisteredPatient(model);
                    return(Ok(userViewModel));
                }
                AddErrors(result);
            }
            // If we got this far, something failed
            return(BadRequest(this.ModelState));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the nurse
        /// </summary>
        /// <param name="registeredUser"></param>
        /// <returns></returns>
        public Patient CreateRegisteredPatient(RegisterPatientVm registeredUser)
        {
            var newPatient = new Patient();
            var appUser    = _repo.Query <ApplicationUser>().Where(au => au.Email == registeredUser.Email).FirstOrDefault();

            newPatient.CheckInDate          = registeredUser.CheckInDate.ToUniversalTime();
            newPatient.RoomNumber           = registeredUser.RoomNumber;
            newPatient.BedNumber            = registeredUser.BedNumber;
            newPatient.Notes                = registeredUser.Notes;
            newPatient.NurseId              = registeredUser.NurseId;
            newPatient.Dependency           = registeredUser.Dependency;
            newPatient.IsActive             = true;
            newPatient.DateModifiedIfActive = DateTime.UtcNow;
            newPatient.ApplicationUser      = appUser;
            newPatient.ApplicationUserId    = appUser.Id;
            newPatient.FirebasePatientKey   = registeredUser.FirebasePatientKey;
            _repo.Add(newPatient);
            _repo.SaveChanges();

            if (registeredUser.NurseId != 0)
            {
                var assignedNurse = _repo.Query <Nurse>().Include(n => n.ApplicationUser).Where(n => n.Id == newPatient.NurseId).FirstOrDefault();

                var patientAssignedNurse = new NursePatient();
                patientAssignedNurse.Patient   = newPatient;
                patientAssignedNurse.PatientId = newPatient.Id;
                patientAssignedNurse.Nurse     = assignedNurse;
                patientAssignedNurse.NurseId   = assignedNurse.Id;

                _repo.Add <NursePatient>(patientAssignedNurse);
            }
            _repo.SaveChanges();
            return(newPatient);
        }