Example #1
0
        public async Task <IActionResult> GetTasksAsync(int pageSize = 10, int pageNumber = 1)
        {
            Logger?.LogDebug("'{0}' has been invoked", nameof(GetTaskAsync));

            var response = new PagedResponse <Task>();

            try
            {
                //Get the "propose" query from repository
                var query = DbContext.GetTasks();

                //Set pagins values
                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

                //Get the total rows
                response.ItemsCount = await query.CountAsync();

                //Get the specific page from database
                response.Model = await query.Paging(pageSize, pageNumber).ToListAsync();

                response.Message = string.Format("Page {0} of {1}, total of tasks: {2}.", pageNumber,
                                                 response.PageCount, response.ItemsCount);
                Logger?.LogInformation("The tasks have been retrieved successfully");
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error, please contact to technical support.";

                Logger?.LogCritical("There was an error on '{0}' invocation: {1}", nameof(GetTaskAsync), ex);
            }

            return(response.ToHttpResponse());
        }