public SortOptions ToggleIfSameCriterium(ReportSortCriterium criterium)
 {
     if (this.Criterium == criterium) {
         if (this.Direction == SortDirection.Ascending)
             return new SortOptions(criterium, SortDirection.Descending);
         else
             return new SortOptions(criterium, SortDirection.Ascending);
     } else return this;
 }
 public SortOptions ToggleIfSameCriterium(ReportSortCriterium criterium)
 {
     if (this.Criterium == criterium)
     {
         if (this.Direction == SortDirection.Ascending)
         {
             return(new SortOptions(criterium, SortDirection.Descending));
         }
         else
         {
             return(new SortOptions(criterium, SortDirection.Ascending));
         }
     }
     else
     {
         return(this);
     }
 }
        public ActionResult List(ReportSortCriterium sortBy = ReportSortCriterium.ByDate, SortDirection orderBy = SortDirection.Ascending, string dateAfter = null)
        {
            IQueryable <Report> reports =
                sortBy == ReportSortCriterium.ByDate
                                ? _context.Reports.OrderByOperator(orderBy).ThenByDescending(report => report.CreateDate)
                                : _context.Reports.OrderByDate(orderBy);

            if (dateAfter != null)
            {
                DateTime time = DateTime.Parse(dateAfter);
                reports = reports.CreatedAfter(time);
            }
            ViewBag.OrderBy = orderBy;
            ViewBag.SortBy  = sortBy;
            ViewData.Model  = reports;
            if (Request.IsAjaxRequest())
            {
                return(PartialView("ReportTableBodyPartial"));
            }
            else
            {
                return(View());
            }
        }
 public SortOptions(ReportSortCriterium criterium, SortDirection direction = SortDirection.Ascending)
 {
     this.Criterium = criterium;
     this.Direction = direction;
 }
 public SortOptions(ReportSortCriterium criterium, SortDirection direction = SortDirection.Ascending)
 {
     this.Criterium = criterium;
     this.Direction = direction;
 }
 public ActionResult List(ReportSortCriterium sortBy = ReportSortCriterium.ByDate, SortDirection orderBy = SortDirection.Ascending, string dateAfter = null)
 {
     IQueryable<Report> reports =
         sortBy == ReportSortCriterium.ByDate
         ? _context.Reports.OrderByOperator(orderBy).ThenByDescending(report=> report.CreateDate)
         : _context.Reports.OrderByDate(orderBy);
     if (dateAfter != null) {
         DateTime time = DateTime.Parse(dateAfter);
         reports = reports.CreatedAfter(time);
     }
     ViewBag.OrderBy = orderBy;
     ViewBag.SortBy = sortBy;
     ViewData.Model = reports;
     if (Request.IsAjaxRequest()) {
         return PartialView("ReportTableBodyPartial");
     } else {
         return View();
     }
 }