private IQueryable <Task> QueryTasks(Filters.TaskFilterOptions options, PagingSettings paging = null) { var tasks = Context.Task .Include("AssignedUser") .Where(q => !q.Deleted.HasValue); if (options != null) { if (options.Order == "desc") { tasks = tasks.OrderByDescending(x => x.CreatedDate); } if (options.HasDeadline.HasValue) { tasks = tasks.Where(t => t.DueDate.HasValue == options.HasDeadline.Value); } if (options.FutureOnly.HasValue) { if (options.FutureOnly.Value) { tasks = tasks.Where(t => t.DueDate.HasValue && t.DueDate.Value >= DateTime.Now); } else { tasks = tasks.Where(t => t.DueDate.HasValue && t.DueDate.Value <= DateTime.Now); } } if (options.StartDate.HasValue) { tasks = tasks.Where(t => t.DueDate.HasValue && t.DueDate.Value >= options.StartDate.Value); } if (options.EndDate.HasValue) { tasks = tasks.Where(t => t.DueDate.HasValue && t.DueDate.Value <= options.EndDate.Value); } if (options.Area.HasValue) { tasks = tasks.Where(t => t.AreaType == options.Area.Value); } if (options.AssignedID.HasValue) { tasks = tasks.Where(t => t.AssignedByID == options.AssignedID.Value); } } if (paging != null) { tasks = tasks.Distinct().OrderByDescending(l => l.CreatedDate).ToPagedQueryable(paging); } return(tasks); }
public List <Task> GetAll(Filters.TaskFilterOptions options = null, PagingSettings paging = null) { var tasks = QueryTasks(options, paging); return(tasks.ToList()); }
public int Total(Filters.TaskFilterOptions options) { return(Repository.Total(options)); }
public int Total(Filters.TaskFilterOptions options) { return(QueryTasks(options).Count()); }
public List <Task> GetAll(Filters.TaskFilterOptions options = null, PagingSettings paging = null) { return(Repository.GetAll(options, paging)); }