示例#1
0
        // 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));
        }