public IEnumerable <DbTaskList> GetTaskLists() { var readTasksSql = "SELECT title, id_list, id, description, deadline, is_done FROM task"; var tasksGrouped = ReadEntities(readTasksSql, r => { var task = new DbTask(); task.Title = r.GetString(0); task.ListId = r.GetInt32(1); task.Id = r.GetInt32(2); task.Description = r.GetValue(3).ToString(); task.Date = r.GetValue(4).ToString(); task.IsDone = r.GetBoolean(5); return(task); }).ToArray().GroupBy(x => x.ListId); var readTaskListsSql = "SELECT title, id FROM tasks_list"; var taskListsSeq = ReadEntities(readTaskListsSql, r => { var taskList = new DbTaskList(); taskList.Name = r.GetString(0); taskList.Id = r.GetInt32(1); return(taskList); }).ToArray(); return(taskListsSeq.Select(lst => { var tasksGroup = tasksGrouped.FirstOrDefault(x => x.Key == lst.Id); lst.Tasks = tasksGroup == null? new DbTask[] { } : tasksGroup.ToArray(); return lst; }).ToArray()); }
public static TaskList ToTaskList(DbTaskList tasklist) { return new TaskList(tasklist.Name, tasklist.Uid) { DbId = tasklist.Id }; }