示例#1
0
        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);
        }
示例#2
0
        public List <Task> GetAll(Filters.TaskFilterOptions options = null, PagingSettings paging = null)
        {
            var tasks = QueryTasks(options, paging);

            return(tasks.ToList());
        }
示例#3
0
 public int Total(Filters.TaskFilterOptions options)
 {
     return(Repository.Total(options));
 }
示例#4
0
 public int Total(Filters.TaskFilterOptions options)
 {
     return(QueryTasks(options).Count());
 }
示例#5
0
 public List <Task> GetAll(Filters.TaskFilterOptions options = null, PagingSettings paging = null)
 {
     return(Repository.GetAll(options, paging));
 }