Пример #1
0
 public async Task <IEnumerable <TodoItem> > Get(ToDoItemFilter filter)
 {
     using (var sqlConnection = _connectionFactory.OpenSqlConnection())
     {
         return(await sqlConnection.QueryAsync <TodoItem>(
                    "[dbo].[TodoItems_get]",
                    param : new
         {
             @userAccountId = filter.UserAccountId,
             @projectId = filter.ProjectId,
             @isCurrent = filter.IsCurrentItem,
             @statusId = filter.StatusId,
             @todoItemId = filter.TodoItemId
         },
                    commandType : CommandType.StoredProcedure));
     }
 }
Пример #2
0
        public async Task <IEnumerable <TodoItem> > Get(ToDoItemFilter filter)
        {
            using (var sqlConnection = _connectionFactory.OpenSqlConnection())
            {
                var reader = await sqlConnection.QueryMultipleAsync(
                    "[dbo].[TodoItems_get]",
                    param : new
                {
                    @userAccountId = filter.UserAccountId,
                    @projectId     = filter.ProjectId,
                    @isCurrent     = filter.IsCurrentItem,
                    @statusId      = filter.StatusId
                },
                    commandType : CommandType.StoredProcedure);

                var res = reader.Read <TodoItem, Project, TodoItem>((todoItem, project) =>
                {
                    todoItem.Project = project;
                    return(todoItem);
                },
                                                                    splitOn: "ProjectId");

                var tags        = reader.Read <Tag>();
                var groupedTags = tags.GroupBy(p => p.TodoItemId);

                foreach (var group in groupedTags)
                {
                    var todoItem = res.FirstOrDefault(p => p.Id == group.Key);
                    if (todoItem != null)
                    {
                        todoItem.Tags = group.ToList();
                    }
                }

                return(res);
            }
        }