/// <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); }
/// <summary> /// This handles the Edit patient /// </summary> /// <param name="assignedNurseId"></param> /// <param name="patientAccountUser"></param> /// <param name="patient"></param> /// <returns></returns> public Patient SavePatient(int assignedNurseId, ApplicationUser patientAccountUser, Patient patient) { var appUser = _repo.Query <ApplicationUser>().Where(au => au.Email == patientAccountUser.Email).FirstOrDefault(); if (patient.Id == 0) { patient.CheckInDate = patient.CheckInDate.ToUniversalTime(); patient.Dependency = patient.Dependency; patient.IsActive = true; patient.DateModifiedIfActive = DateTime.UtcNow; patient.ApplicationUser = appUser; patient.ApplicationUserId = appUser.Id; patient.NurseId = assignedNurseId; patient.FirebasePatientKey = patient.FirebasePatientKey; _repo.Add(patient); } else { var patientToEdit = _repo.Query <Patient>().Where(p => p.Id == patient.Id).Include(p => p.ApplicationUser).FirstOrDefault(); patientToEdit.ApplicationUser.FirstName = patient.ApplicationUser.FirstName; patientToEdit.ApplicationUser.LastName = patient.ApplicationUser.LastName; patientToEdit.RoomNumber = patient.RoomNumber; patientToEdit.BedNumber = patient.BedNumber; patientToEdit.Dependency = patient.Dependency; patientToEdit.IsActive = true; patientToEdit.CheckInDate = patient.CheckInDate.ToUniversalTime(); patientToEdit.CheckOutDate = patient.CheckOutDate.ToUniversalTime(); patientToEdit.NurseId = assignedNurseId; patientToEdit.Notes = patient.Notes; patientToEdit.FirebasePatientKey = patient.FirebasePatientKey; } //saves in the nurse patient join table if a nurse is selected if (assignedNurseId != 0 || patient.NurseId != 0) { //adds to the join table for new or redit var assignedNurse = _repo.Query <Nurse>().Include(n => n.ApplicationUser).Where(n => n.Id == assignedNurseId).FirstOrDefault(); var patientAssignedNurse = new NursePatient(); patientAssignedNurse.Patient = patient; patientAssignedNurse.PatientId = patient.Id; patientAssignedNurse.Nurse = assignedNurse; patientAssignedNurse.NurseId = assignedNurseId; var nursePatient = _repo.Query <NursePatient>().Where(np => np.PatientId == patient.Id).Include(np => np.Nurse).ThenInclude(n => n.ApplicationUser).FirstOrDefault(); if (nursePatient == null) { _repo.Add <NursePatient>(patientAssignedNurse); } else { _repo.Delete <NursePatient>(nursePatient); _repo.Add <NursePatient>(patientAssignedNurse); } } _repo.SaveChanges(); return(patient); }
public async static Task Initialize(IServiceProvider serviceProvider) { var db = serviceProvider.GetService <ApplicationDbContext>(); if (db.Users.Any()) { return; } var userManager = serviceProvider.GetService <UserManager <ApplicationUser> >(); //db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var nurseUser1 = await userManager.FindByNameAsync("*****@*****.**"); if (nurseUser1 == null) { nurseUser1 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Nurse Rosie", LastName = "Whitney", IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; await userManager.CreateAsync(nurseUser1, "Secret123!"); await userManager.AddClaimAsync(nurseUser1, new Claim("IsNurse", "true")); } var nurseUser2 = await userManager.FindByNameAsync("*****@*****.**"); if (nurseUser2 == null) { nurseUser2 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Nurse Jess", LastName = "Hunter", IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; await userManager.CreateAsync(nurseUser2, "Secret123!"); await userManager.AddClaimAsync(nurseUser2, new Claim("IsNurse", "true")); } var patientUser1 = await userManager.FindByNameAsync("*****@*****.**"); if (patientUser1 == null) { patientUser1 = new ApplicationUser { Email = "*****@*****.**", UserName = "******", FirstName = "Jackie", LastName = "Ross", IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; await userManager.CreateAsync(patientUser1, "Secret123!"); await userManager.AddClaimAsync(patientUser1, new Claim("IsPatient", "true")); } var patientUser2 = await userManager.FindByNameAsync("*****@*****.**"); if (patientUser2 == null) { patientUser2 = new ApplicationUser { Email = "*****@*****.**", UserName = "******", FirstName = "Aaron", LastName = "Mikluscak", IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; await userManager.CreateAsync(patientUser2, "Secret123!"); await userManager.AddClaimAsync(patientUser2, new Claim("IsPatient", "true")); } db.SaveChanges(); var nurseUserId = db.Users.Where(u => u.LastName == nurseUser1.LastName).FirstOrDefault().Id; var patientUserId = db.Users.Where(u => u.LastName == patientUser1.LastName).FirstOrDefault().Id; var nurse2UserId = db.Users.Where(u => u.LastName == nurseUser2.LastName).FirstOrDefault().Id; var patient2UserId = db.Users.Where(u => u.LastName == patientUser2.LastName).FirstOrDefault().Id; //add Nurse nurse if (!db.Nurses.Any()) { var nurse1 = new Nurse { ApplicationUserId = nurseUserId, Messages = new List <Message>() }; var nurse2 = new Nurse { ApplicationUserId = nurse2UserId, Messages = new List <Message>() }; db.Nurses.AddRange(nurse1, nurse2); db.SaveChanges(); } ; //add Patient patient if (!db.Patients.Any()) { var patient1 = new Patient { ApplicationUserId = patientUserId, RoomNumber = 1, BedNumber = 1, CheckInDate = new DateTime(2016, 7, 11, 12, 45, 15), Notes = "Grumpy person, needs lots of patient", Dependency = 2, IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; var patient2 = new Patient { ApplicationUserId = patient2UserId, RoomNumber = 1, BedNumber = 2, CheckInDate = new DateTime(2016, 7, 11, 12, 45, 15), Notes = "Very independent, easy to work with", Dependency = 3, IsActive = true, DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15) }; db.Patients.AddRange(patient1, patient2); db.SaveChanges(); } var hunter = db.Users.Where(u => u.LastName == "Hunter").FirstOrDefault().Id; var nurseWhitney = db.Nurses.Where(n => n.ApplicationUserId == hunter).FirstOrDefault(); var mikluscak = db.Users.Where(u => u.LastName == "Mikluscak").FirstOrDefault().Id; var whitneyCreated = db.Users.Where(u => u.LastName == "Whitney").FirstOrDefault().Id; var nurse = db.Nurses.Where(n => n.ApplicationUserId == whitneyCreated).FirstOrDefault(); var rossCreated = db.Users.Where(u => u.LastName == "Ross").FirstOrDefault().Id; var patientId1 = db.Patients.Where(p => p.ApplicationUserId == mikluscak).FirstOrDefault(); var patientId2 = db.Patients.Where(p => p.ApplicationUserId == rossCreated).FirstOrDefault(); if (!db.NursePatients.Any()) { var nurseId1 = db.Nurses.Where(n => n.ApplicationUserId == hunter).FirstOrDefault().Id; //var patientId1 = db.Patients.Where(p => p.ApplicationUserId == mikluscak).FirstOrDefault(); var nurseId2 = db.Nurses.Where(n => n.ApplicationUserId == whitneyCreated).FirstOrDefault().Id; //var patientId2 = db.Patients.Where(p => p.ApplicationUserId == rossCreated).FirstOrDefault(); patientId1.NurseId = nurseId1; patientId2.NurseId = nurseId2; var nursePatients = new NursePatient[] { new NursePatient { NurseId = nurseId1, PatientId = patientId1.Id }, new NursePatient { NurseId = nurseId2, PatientId = patientId2.Id } }; db.NursePatients.AddRange(nursePatients); db.SaveChanges(); } if (!db.Messages.Any()) { var nurse1Messages = new List <Message> { new Message { Patient = patientId1, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 12, 45, 15) }, new Message { Patient = patientId1, MessageString = "Food", TimeRequested = new DateTime(2016, 7, 11, 1, 36, 40) }, new Message { Patient = patientId1, MessageString = "Emergency", TimeRequested = new DateTime(2016, 7, 11, 2, 03, 55) } }; var nurse2Messages = new List <Message> { new Message { Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 10, 00, 00) }, new Message { Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 10, 15, 02) }, new Message { Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 08, 30, 04) } }; nurseWhitney.Messages.AddRange(nurse1Messages); nurse.Messages.AddRange(nurse2Messages); db.SaveChanges(); } // Ensure db db.Database.EnsureCreated(); // Ensure Stephen (IsAdmin) var stephen = await userManager.FindByNameAsync("*****@*****.**"); if (stephen == null) { // create user stephen = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Stephen", LastName = "Walther", IsActive = true, DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15) }; await userManager.CreateAsync(stephen, "Secret123!"); // add claims await userManager.AddClaimAsync(stephen, new Claim("IsAdmin", "true")); await userManager.AddClaimAsync(stephen, new Claim("IsNurse", "true")); } // Ensure Jerry (IsAdmin) var jerry = await userManager.FindByNameAsync("*****@*****.**"); if (jerry == null) { // create user jerry = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Jerry", LastName = "Morris", IsActive = true, DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15) }; await userManager.CreateAsync(jerry, "Secret123!"); // add claims await userManager.AddClaimAsync(jerry, new Claim("IsAdmin", "true")); await userManager.AddClaimAsync(jerry, new Claim("IsNurse", "true")); } // Ensure Sharon (IsAdmin) var sharon = await userManager.FindByNameAsync("*****@*****.**"); if (sharon == null) { // create user sharon = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Sharon", LastName = "Kuan", IsActive = true, DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15) }; await userManager.CreateAsync(sharon, "Secret123!"); // add claims await userManager.AddClaimAsync(sharon, new Claim("IsAdmin", "true")); await userManager.AddClaimAsync(sharon, new Claim("IsNurse", "true")); } // Ensure Reno (IsAdmin) var reno = await userManager.FindByNameAsync("*****@*****.**"); if (reno == null) { // create user reno = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Reno", LastName = "McGalla", IsActive = true, DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15) }; await userManager.CreateAsync(reno, "Secret123!"); // add claims await userManager.AddClaimAsync(reno, new Claim("IsAdmin", "true")); await userManager.AddClaimAsync(reno, new Claim("IsNurse", "true")); } // Ensure Mike (not IsAdmin) var mike = await userManager.FindByNameAsync("*****@*****.**"); if (mike == null) { // create user mike = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Mike", LastName = "White", IsActive = true, DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15) }; await userManager.CreateAsync(mike, "Secret123!"); } }