public List <Task> GetByDate(DateTime from, DateTime to) { var subtasks = subtaskDao.GetUpdates(from, to).ToDictionary(x => x.Task, x => x); var ids = subtasks.Select(x => x.Value.Task).Distinct().ToList(); var tasks = taskDao.GetById(ids); foreach (var task in tasks) { Subtask subtask; subtasks.TryGetValue(task.ID, out subtask); task.SubTasks.Add(subtask); } return(tasks); }
/// <summary> /// Get subtasks created during time interval attached to parent task /// </summary> /// <param name="from"></param> /// <param name="to"></param> /// <returns></returns> public List <Task> GetSubtaskUpdates(DateTime from, DateTime to) { var subtasks = _subtaskDao.GetUpdates(from, to); var ids = subtasks.Select(x => x.Task).Distinct().ToList(); var tasks = _taskDao.GetById(ids).ToDictionary(x => x.ID, x => x); foreach (var subtask in subtasks) { Task task; tasks.TryGetValue(subtask.Task, out task); task.SubTasks.Add(subtask); } return(tasks.Select(x => x.Value).Where(CanRead).ToList()); }