コード例 #1
0
        public async Task <PaginationMetaModel <TodoItem> > GetAllTodoItemsAsync(GetAllTodoItemRequestModel request)
        {
            using (var conn = Connection)
            {
                var result = new Dictionary <int, TodoItem>();
                using (var reader = await conn.QueryMultipleAsync(
                           "TodoItem_GetAll", new
                {
                    @page = request.Page,
                    @pageSize = request.PageSize,
                    @filter = request.Filter
                }, commandType: CommandType.StoredProcedure))
                {
                    //read the first query (total)
                    var total = reader.Read <int>().FirstOrDefault();

                    //read the second query (todoItems)
                    var todoItems = reader.Read <TodoItem>().ToList();

                    var todoItemMeta = new PaginationMetaModel <TodoItem>()
                    {
                        Total = total,
                        Items = todoItems
                    };

                    return(todoItemMeta);
                }
            }
        }
コード例 #2
0
        public async Task <PaginatedResponseModel <TodoItem> > GetAllTodoItems(GetAllTodoItemRequestModel request)
        {
            var response = new PaginatedResponseModel <TodoItem>();

            try
            {
                if (request.Page <= 0)
                {
                    response.Status  = ResponseCodes.ValidationError;
                    response.Message = "Page must be a number greater than 0";

                    return(response);
                }

                if (request.PageSize <= 0)
                {
                    response.Status  = ResponseCodes.ValidationError;
                    response.Message = "Page size must be a number greater than 0";

                    return(response);
                }

                response.Data = await _todoItemProvider.GetAllTodoItemsAsync(request);

                response.Status  = ResponseCodes.Success;
                response.Message = "Success";

                return(response);
            }
            catch (Exception e)
            {
                response.Status = ResponseCodes.ProcessError;
                var logMessage = response.Message = "Failed to get todo items.";

                _logger.LogError(e, logMessage + " | Request: {@0}", request);

                return(response);
            }
        }
コード例 #3
0
 public async Task <PaginatedResponseModel <TodoItem> > GetAllTodoItems([FromQuery] GetAllTodoItemRequestModel request)
 {
     return(await _todoItemService.GetAllTodoItems(request));
 }