// GET: Doctors public async Task <IActionResult> Index(int?id, int?serviceID) { var viewModel = new DoctorIndexData(); viewModel.Doctors = await _context.Doctors .Include(i => i.DoctorServices) .ThenInclude(i => i.Service) .ThenInclude(i => i.Appointments) .ThenInclude(i => i.User) .AsNoTracking() .OrderBy(i => i.DoctorName) .ToListAsync(); if (id != null) { ViewData["DoctorID"] = id.Value; Doctor doctor = viewModel.Doctors.Where( i => i.ID == id.Value).Single(); viewModel.Services = doctor.DoctorServices.Select(s => s.Service); } if (serviceID != null) { ViewData["serviceID"] = serviceID.Value; viewModel.Appointments = viewModel.Services.Where( x => x.ID == serviceID).Single().Appointments; } return(View(viewModel)); }
// GET: Doctors public ActionResult Index(int?id, int?courseID, string sortOrder, string firstname, string lastname, string pesel) { /*ViewBag.LastNameSort = String.IsNullOrEmpty(sortOrder) ? "Lastname_DESC" : ""; * ViewBag.FirstNameSort = sortOrder == "Firstname" ? "Firstname_DESC" : "Firstname"; * ViewBag.PeselSort = sortOrder == "Pesel" ? "Pesel_DESC" : "Pesel"; * var doctors = from d in db.Doctors * select d; * if (!String.IsNullOrEmpty(firstname)) * { * doctors = doctors.Where(d => d.Firstname.Contains(firstname)); * } * if (!String.IsNullOrEmpty(lastname)) * { * doctors = doctors.Where(d => d.Lastname.Contains(lastname)); * } * if (!String.IsNullOrEmpty(pesel)) * { * doctors = doctors.Where(d => d.Pesel.Contains(pesel)); * } * switch (sortOrder) * { * case "Lastname_DESC": * doctors = doctors.OrderByDescending(d => d.Lastname); * break; * case "Firstname": * doctors = doctors.OrderBy(d => d.Firstname); * break; * case "Firstname_DESC": * doctors = doctors.OrderByDescending(d => d.Firstname); * break; * case "Pesel": * doctors = doctors.OrderBy(d => d.Pesel); * break; * case "Pesel_DESC": * doctors = doctors.OrderByDescending(d => d.Pesel); * break; * default: * doctors = doctors.OrderBy(d => d.Lastname); * break; * }*/ var viewModel = new DoctorIndexData(); viewModel.Doctors = db.Doctors.Include(d => d.Visits); if (id != null) { ViewBag.DoctorID = id.Value; viewModel.Visits = viewModel.Doctors.Where( d => d.Id == id.Value).Single().Visits; } return(View(viewModel)); }