public Patient GetPatientByUser(PMAUser user) { return(context.Patients .Include(p => p.Doctor) .Include(p => p.Record) .ThenInclude(r => r.Appointments) .FirstOrDefault(p => p.User == user)); }
public async Task SeedAsync() { context.Database.EnsureCreated(); PMAUser user = await userManager.FindByEmailAsync("*****@*****.**"); PMAUser adminUser = await userManager.FindByEmailAsync("*****@*****.**"); if (user == null) { var roleExist = await roleManager.RoleExistsAsync("Patient"); if (!roleExist) { var role = new IdentityRole(); role.Name = "Patient"; await roleManager.CreateAsync(role); } user = new PMAUser() { FirstName = "Testy", LastName = "Westy", Email = "*****@*****.**", UserName = "******" }; var result = await userManager.CreateAsync(user, "TestP@ss!1"); if (result != IdentityResult.Success) { throw new InvalidOperationException("Could not create new user in seeder"); } else { await userManager.AddToRoleAsync(user, "Patient"); } } if (adminUser == null) { var roleExist = await roleManager.RoleExistsAsync("Admin"); if (!roleExist) { var role = new IdentityRole(); role.Name = "Admin"; await roleManager.CreateAsync(role); } adminUser = new PMAUser() { FirstName = "Tad", LastName = "Min", Email = "*****@*****.**", UserName = "******" }; var result = await userManager.CreateAsync(adminUser, "TestP@ss!1"); if (result != IdentityResult.Success) { throw new InvalidOperationException("Could not create new user in seeder"); } else { await userManager.AddToRoleAsync(adminUser, "Admin"); } } if (!context.Doctors.Any()) { //Create sample data var filepath = Path.Combine(hosting.ContentRootPath, "Data/data.json"); var json = File.ReadAllText(filepath); var data = JArray.Parse(json); var doctors = JsonConvert.DeserializeObject <IEnumerable <Doctor> >(data[0].ToString()); var procedures = JsonConvert.DeserializeObject <IEnumerable <Procedure> >(data[1].ToString()); var patients = JsonConvert.DeserializeObject <IEnumerable <Patient> >(data[2].ToString()); var patient = patients.FirstOrDefault(p => p.FirstName == "Testy"); if (patient != null) { patient.User = user; patient.Doctor = doctors.First(); } foreach (var p in patients) { p.Doctor = doctors.First(); p.Record = new Record() { Appointments = new List <Appointment>() }; } context.Doctors.AddRange(doctors); context.Procedures.AddRange(procedures); context.Patients.AddRange(patients); try { context.SaveChanges(); } catch (Exception e) { string msg = e.Message; } } }
public async Task <IActionResult> AddPatient(AdminViewModel model, int doctorId) { if (ModelState.IsValid) { var patient = mapper.Map <PatientViewModel, Patient>(model.Patient); var doctor = repository.GetDoctorById(doctorId); if (doctor != null) { patient.Doctor = doctor; } patient.Record = new Record() { Appointments = new List <Appointment>() }; var user = new PMAUser() { FirstName = model.Patient.FirstName, LastName = model.Patient.LastName, Email = model.Patient.EmailAddress, PhoneNumber = model.Patient.PhoneNumber, UserName = model.Patient.FirstName.Substring(0, 1) + model.Patient.LastName }; //To Do: Add random generation of password, then after successful creation //send email to patient informing them of their login info. var result = await userManager.CreateAsync(user, "TestP@ss!1"); if (!result.Succeeded) { logger.Log(LogLevel.Error, $"Failed to create user account. {result.Errors.ToString()}"); } else { await userManager.AddToRoleAsync(user, "Patient"); patient.User = user; } try { repository.AddPatient(patient); } catch (Exception ex) { logger.Log(LogLevel.Error, $"Failed to add patient to db: {ex}"); } try { repository.SaveAll(); } catch (Exception ex) { logger.Log(LogLevel.Error, $"Failed to save added patient to db: {ex}"); } return(RedirectToAction("PatientInfo", new { id = patient.Id })); } TempData["FormError"] = "Patient data is invalid"; return(View(model)); }
public Patient GetPatientByUser(PMAUser user) { return(testPatients.FirstOrDefault(p => p.User == user)); }
public void AddUser(PMAUser user) { testUsers.Add(user); }
public void AddUser(PMAUser user) { context.Users.Add(user); }