public ActionResult ManageStaff()
        {
            var listUserVms = new List <UserViewModel>();

            var context   = new iHospitalDataContext();
            var listUsers = context.AspNetUsers.ToList();

            foreach (var user in listUsers)
            {
                var role = user.AspNetUserRoles.FirstOrDefault();

                var userVM = new UserViewModel()
                {
                    Id       = user.Id,
                    Username = user.UserName,
                    Role     = role != null ? role.AspNetRole.Name : "",
                    FName    = user.FirstName,
                    LName    = user.LastName,
                    Email    = user.Email,
                    Phone    = user.PhoneNumber
                };

                listUserVms.Add(userVM);
            }

            return(View(listUserVms));
        }
        public ActionResult ChangeProfile(UserViewModel model)
        {
            try
            {
                var userId = model.Id;

                var context = new iHospitalDataContext();

                var user = context.AspNetUsers.FirstOrDefault(u => u.Id == userId);

                user.FirstName   = model.FName;
                user.LastName    = model.LName;
                user.PhoneNumber = model.Phone;

                context.SubmitChanges();

                return(Json(new { success = true }));
                //return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                return(Json(new
                {
                    success = false,
                    error = e.Message
                }));
            }
        }
        public ActionResult EditStaff(string Id)
        {
            try
            {
                var context = new iHospitalDataContext();

                var user = context.AspNetUsers.FirstOrDefault(u => u.Id == Id);

                var userVM = new UserViewModel()
                {
                    Id       = user.Id,
                    Username = user.UserName,
                    Email    = user.Email,
                    FName    = user.FirstName,
                    LName    = user.LastName,
                    Phone    = user.PhoneNumber
                };

                return(View(userVM));
            }
            catch (Exception e)
            {
                return(View());
            }
        }
        public ActionResult SetAppointment()
        {
            var context = new iHospitalDataContext();

            var listDoctors = context.AspNetUsers.ToList().Where(u =>
            {
                var aspNetUserRole = u.AspNetUserRoles.FirstOrDefault();
                return(aspNetUserRole != null && aspNetUserRole.AspNetRole.Name == "MedicalStaff");
            }).ToList();

            return(View(listDoctors));
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, LockoutEnabled = false
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    //Assign Patient role to user. Only Patient can be register. Other roles should be created inside portal
                    await this.UserManager.AddToRoleAsync(user.Id, "Patient");

                    //Create Patient record
                    var p = new Patient()
                    {
                        Id    = user.Id,
                        Email = user.Email,

                        DateCreated  = DateTime.Now,
                        DateModified = DateTime.Now,
                    };
                    var dbcontext = new iHospitalDataContext();
                    dbcontext.Patients.InsertOnSubmit(p);
                    dbcontext.SubmitChanges();


                    //Redirect to home page of Patient Portal after created user successfully
                    return(RedirectToAction("Index", "PatientPortal"));

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    //return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async System.Threading.Tasks.Task <ActionResult> AddStaffAsync(UserViewModel model)
        {
            try
            {
                var userApp = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, LockoutEnabled = false
                };
                var result = await UserManager.CreateAsync(userApp, model.NewPwd);

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(userApp.Id, model.Role);

                    var context = new iHospitalDataContext();

                    var user = context.AspNetUsers.FirstOrDefault(u => u.Id == userApp.Id);
                    user.FirstName   = model.FName;
                    user.LastName    = model.LName;
                    user.PhoneNumber = model.Phone;

                    var s = new Staff()
                    {
                        Id           = user.Id,
                        FirstName    = user.FirstName,
                        LastName     = user.LastName,
                        Phone        = user.PhoneNumber,
                        DepartmentId = "test",
                        Email        = user.Email,
                        DateModified = DateTime.Now,
                        DateCreated  = DateTime.Now
                    };
                    context.Staffs.InsertOnSubmit(s);
                    context.SubmitChanges();

                    return(Json(new { success = true }));
                }

                return(Json(new { success = false, error = result.Errors.FirstOrDefault() }));
            }
            catch (Exception e)
            {
                return(Json(new { success = false, error = e.Message }));
            }
        }
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();

            var context = new iHospitalDataContext();

            var user = context.AspNetUsers.FirstOrDefault(u => u.Id == userId);

            var userVM = new UserViewModel()
            {
                Username = user.UserName,
                Email    = user.Email,
                FName    = user.FirstName,
                LName    = user.LastName,
                Phone    = user.PhoneNumber
            };

            return(View(userVM));
        }
        public ActionResult ManageAppointment()
        {
            var listAppoitmentVms = new List <AppointmentViewModel>();

            var context          = new iHospitalDataContext();
            var listAppointments = context.Appointments.ToList();

            if (!User.IsInRole("Admin"))
            {
                var userId = User.Identity.GetUserId();
                listAppointments = listAppointments.Where(a => a.DoctorId == userId).ToList();
            }

            foreach (var apm in listAppointments)
            {
                var apmVM = new AppointmentViewModel()
                {
                    Id = apm.Id,

                    PatientFName = apm.Patient.FirstName,
                    PatientLName = apm.Patient.LastName,
                    PatientPhone = apm.Patient.Phone,

                    DoctorFName = apm.Staff.FirstName,
                    DoctorLName = apm.Staff.LastName,
                    DoctorPhone = apm.Staff.Phone,

                    TimeStart = apm.TimeStart.HasValue ? apm.TimeStart.Value.ToString("mm/dd/yyyy hh:mm") : "",
                    TimeEnd   = apm.TimeEnd.HasValue ? apm.TimeEnd.Value.ToString("mm/dd/yyyy hh:mm") : "",

                    MedicalProblem = apm.MedicalProblem,

                    DateModified = apm.DateModified.ToString("mm/dd/yyyy hh:mm")
                };

                listAppoitmentVms.Add(apmVM);
            }

            return(View(listAppoitmentVms));
        }
        public ActionResult SetAppointment(string doctor, string date, string time, string problem)
        {
            try
            {
                var userId = User.Identity.GetUserId();

                var datetime = Convert.ToDateTime(date + " " + time);

                var apm = new Appointment()
                {
                    Id             = Guid.NewGuid().ToString(),
                    PatientId      = userId,
                    DoctorId       = doctor,
                    SpecialtyId    = "test",
                    TimeStart      = datetime,
                    TimeEnd        = datetime.AddMinutes(30),
                    MedicalProblem = problem,
                    DateCreated    = DateTime.Now,
                    DateModified   = DateTime.Now,
                };

                var context = new iHospitalDataContext();
                context.Appointments.InsertOnSubmit(apm);
                context.SubmitChanges();

                return(Json(new { success = true }));
                //return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                return(Json(new
                {
                    success = false,
                    error = e.Message
                }));
            }
        }
Example #10
0
        //Create default User roles and Admin user for login
        private void CreateRolesandUsers()
        {
            ApplicationDbContext context = new ApplicationDbContext();

            var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context));
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));

            //Creat Admin role and 1st Admin user
            if (!roleManager.RoleExists("Admin"))
            {
                //Create Admin role
                var roleAdmin = new IdentityRole
                {
                    Id   = "0ded18bc-cead-489a-b107-0fadb1cdf962",
                    Name = "Admin"
                };
                roleManager.Create(roleAdmin);

                //Define 1st Admin super user who will maintain the website
                var user = new ApplicationUser
                {
                    UserName = "******",
                    Email    = "*****@*****.**"
                };
                var userPWD = "Pwd!23";

                //Create 1st Admin user
                var chkUser = userManager.Create(user, userPWD);

                //Add user to role Admin
                if (chkUser.Succeeded)
                {
                    var result = userManager.AddToRole(user.Id, "Admin");
                }
            }

            //Create AdministrativeStaff role
            if (!roleManager.RoleExists("AdministrativeStaff"))
            {
                var role = new IdentityRole
                {
                    Id   = "dd9bd5de-674d-4f55-b526-d945d9456da7",
                    Name = "AdministrativeStaff"
                };
                roleManager.Create(role);
            }

            //Create MedicalStaff role
            if (!roleManager.RoleExists("MedicalStaff"))
            {
                var role = new IdentityRole
                {
                    Id   = "90f71088-0b87-43d1-8b69-d3fce07cac72",
                    Name = "MedicalStaff"
                };
                roleManager.Create(role);
            }

            //Create Patient role
            if (!roleManager.RoleExists("Patient"))
            {
                var role = new IdentityRole
                {
                    Id   = "3929b37d-88ba-45db-b727-cba789fd2833",
                    Name = "Patient"
                };
                roleManager.Create(role);
            }

            var dbcontext = new iHospitalDataContext();

            if (dbcontext.Departments.FirstOrDefault(d => d.Id == "test") == null)
            {
                var d = new Department()
                {
                    Id           = "test",
                    DateModified = DateTime.Now,
                    DateCreated  = DateTime.Now,
                    Name         = "test"
                };
                dbcontext.Departments.InsertOnSubmit(d);
                dbcontext.SubmitChanges();
            }
        }