// GET: Projects public async Task <ActionResult> Index(string sortOrder, string startDate, string endDate) { IEnumerable <Project> project; ViewBag.StartDateParam = startDate; ViewBag.EndDateParam = endDate; ViewBag.PrioritySortParm = sortOrder == "Priority" ? "Priority desc" : "Priority"; if (string.IsNullOrEmpty(startDate) || string.IsNullOrEmpty(endDate)) { project = await projectRepo.GetAllAsync(); } else { project = from p in await projectRepo.GetAllAsync() where p.StartDate >= Convert.ToDateTime(startDate) && p.StartDate <= Convert.ToDateTime(endDate) select p; } if (project == null) { return(HttpNotFound()); } switch (sortOrder) { case "Priority": project = project.OrderBy(p => p.Priority).ToList(); break; case "Priority desc": project = project.OrderByDescending(p => p.Priority).ToList(); break; default: project = project.OrderBy(p => p.Id).ToList(); break; } return(View(project)); }