Beispiel #1
0
 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));
 }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #3
0
        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);
 }
Beispiel #6
0
 public void AddUser(PMAUser user)
 {
     context.Users.Add(user);
 }