public ActionResult DeleteConfirmed(int id)
        {
            AppointmentHost appointmenthost = db.AppointmentHosts.Find(id);

            appointmenthost.SystemUsers.Clear();
            db.AppointmentHosts.Remove(appointmenthost);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(AppointmentHost appointmenthost)
        {
            if (ModelState.IsValid)
            {
                db.AppointmentHosts.Add(appointmenthost);
                db.SaveChanges();
                return(RedirectToAction("Edit", new { id = appointmenthost.id }));
            }

            return(View(appointmenthost));
        }
        //
        // GET: /AppointmentHost/Details/5

        public ActionResult Details(int id = 0)
        {
            AppointmentHost appointmenthost = db.AppointmentHosts.Find(id);

            if (appointmenthost == null)
            {
                Session["FlashMessage"] = "Appointment Host not found.";
                return(RedirectToAction("Index"));
            }
            return(View(appointmenthost));
        }
        //
        // GET: /AppointmentHost/Edit/5

        public ActionResult Edit(int id = 0)
        {
            AppointmentHost appointmenthost = db.AppointmentHosts.Find(id);

            ViewBag.userList = new SelectList(db.SystemUsers.Where(u => !u.UserRoles.Any(r => r.RoleName.StartsWith("Student"))), "UserId", "UserName");
            if (appointmenthost == null)
            {
                Session["FlashMessage"] = "Appointment Host not found.";
                return(RedirectToAction("Index"));
            }
            AppointmentHostViewModel ViewModel = new AppointmentHostViewModel();

            ViewModel.host  = appointmenthost;
            ViewModel.users = appointmenthost.SystemUsers.ToList();
            return(View(ViewModel));
        }
        //
        // GET: /AppointmentHost/Delete/5

        public ActionResult Delete(int id = 0)
        {
            AppointmentHost appointmenthost = db.AppointmentHosts.Find(id);

            if (appointmenthost == null)
            {
                Session["FlashMessage"] = "Appointment Host not found.";
                return(RedirectToAction("Index"));
            }
            if (appointmenthost.Appointments != null && appointmenthost.Appointments.Count() > 0)
            {
                Session["FlashMessage"] = "Appointment Host is attached to existing Appointment(s).";
                return(RedirectToAction("Index"));
            }
            return(View(appointmenthost));
        }
 public ActionResult Edit(AppointmentHostViewModel ViewModel)
 {
     if (ModelState.IsValid)
     {
         AppointmentHost appointmenthost = db.AppointmentHosts.Find(ViewModel.host.id);
         db.Entry(appointmenthost).CurrentValues.SetValues(ViewModel.host);
         appointmenthost.SystemUsers.Clear();
         if (ViewModel.users != null)
         {
             foreach (var user in ViewModel.users)
             {
                 appointmenthost.SystemUsers.Add(db.SystemUsers.Find(user.UserId));
             }
         }
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(ViewModel));
 }