public ActionResult Booking1(AppointmentBookingViewModel ViewModel) { ViewModel.advisor = db.StudentAdvisors.FirstOrDefault(a => a.student_id == User.Identity.Name); ViewModel.hostList = db.AppointmentHosts.Where(h => h.booking && !h.Appointments.Any(o => o.student_id == User.Identity.Name && o.start_time > DateTime.Now) && h.Appointments.Count() > 0).ToList(); if (ViewModel.advisor != null) { string email = ViewModel.advisor.advisor_email; var advisorhost = db.AppointmentHosts.FirstOrDefault(h => h.SystemUsers.Any(u => u.UserName == email.Substring(0, email.IndexOf("@"))) && !h.Appointments.Any(o => o.student_id == User.Identity.Name && o.start_time > DateTime.Now)); if (advisorhost != null) { ViewModel.hostList.Add(advisorhost); } } return View(ViewModel); }
public ActionResult Booking2(AppointmentBookingViewModel ViewModel) { ViewModel.host = db.AppointmentHosts.Find(ViewModel.host_id); ViewModel.appointmentList = db.Appointments.Where(o => o.AppointmentStatus.name == "Opened" && o.host_id == ViewModel.host_id && o.student_id == null).ToList(); return View(ViewModel); }
public ActionResult BookingConfirm(AppointmentBookingViewModel ViewModel) { ViewModel.host = db.AppointmentHosts.Find(ViewModel.host_id); ViewModel.appointment = db.Appointments.Find(ViewModel.appointment_id); ViewModel.concerns = db.AppointmentConcerns.Where(c => ViewModel.concern_ids.Contains(c.id)).ToList(); return View(ViewModel); }
public ActionResult BookingSubmit(AppointmentBookingViewModel ViewModel) { ViewModel.host = db.AppointmentHosts.Find(ViewModel.host_id); ViewModel.appointment = db.Appointments.Find(ViewModel.appointment_id); ViewModel.concerns = db.AppointmentConcerns.Where(c => ViewModel.concern_ids.Contains(c.id)).ToList(); ViewModel.appointment.AppointmentConcerns.Clear(); if (!String.IsNullOrEmpty(ViewModel.other_concern)) { var otherconcern = new AppointmentConcern { name = ViewModel.other_concern, custom = true }; db.AppointmentConcerns.Add(otherconcern); ViewModel.appointment.AppointmentConcerns.Add(otherconcern); } foreach (var concern in ViewModel.concerns) { ViewModel.appointment.AppointmentConcerns.Add(concern); } var student = db.StudentProfiles.Find(User.Identity.Name); if (student != null) { ViewModel.appointment.student_id = student.id; } try { db.SaveChanges(); Session["FlashMessage"] = "Appointment has been successfully booked."; return RedirectToAction("MyAppointment", "Appointment"); } catch (Exception e) { Session["FlashMessage"] = "Failed to make the appointment booking.<br/><br/>" + e.Message; return RedirectToAction("Booking", "Appointment"); } }
public ActionResult Booking3(AppointmentBookingViewModel ViewModel) { ViewModel.host = db.AppointmentHosts.Find(ViewModel.host_id); ViewModel.appointment = db.Appointments.Find(ViewModel.appointment_id); ViewModel.concernList = db.AppointmentConcerns.Where(c => !c.custom && c.program_id == null).ToList(); if (ViewModel.concern_ids == null && ViewModel.appointment.AppointmentConcerns.Count() > 0) { ViewModel.concern_ids = ViewModel.appointment.AppointmentConcerns.Select(c => c.id).ToArray(); } return View(ViewModel); }