public async Task <IActionResult> GetClientsAsync(string filter = "", int page = 1, int pageSize = 15)
        {
            var response = new PagedResponse <Client>();

            try
            {
                List <Client> clients;
                long          totalResults;

                if (!string.IsNullOrEmpty(filter))
                {
                    foreach (string item in filter.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        clients = await _context.Clients
                                  .Where(c => c.Name.ToLower().StartsWith(item))
                                  .Skip((page - 1) * pageSize)
                                  .Take(pageSize)
                                  .ToListAsync();

                        totalResults = await _context.Clients
                                       .Where(c => c.Name.ToLower().StartsWith(item))
                                       .LongCountAsync();

                        response.CurrentFilter    = filter;
                        response.CurrentPage      = page;
                        response.RegisterPerPages = pageSize;
                        response.TotalRegister    = totalResults;
                        response.TotalPages       = (int)Math.Ceiling((double)response.TotalRegister / pageSize);
                        response.Model            = clients;

                        return(response.ToHttpResponse());
                    }
                }

                clients = await _context.Clients.Skip((page - 1) *pageSize)
                          .Take(pageSize)
                          .ToListAsync();

                totalResults = await _context.Clients.LongCountAsync();

                response.CurrentFilter    = filter;
                response.CurrentPage      = page;
                response.RegisterPerPages = pageSize;
                response.TotalRegister    = totalResults;
                response.TotalPages       = (int)Math.Ceiling((double)response.TotalRegister / pageSize);
                response.Model            = clients;
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = ex.ToString();
            }

            return(response.ToHttpResponse());
        }
Esempio n. 2
0
        public async Task <IActionResult> GetProviders(int pageSize = 10, int pageNumber = 1)
        {
            var response = new PagedResponse <Provider>();

            try
            {
                var query = _context.Providers.AsQueryable <Provider>();

                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

                response.ItemsCount = await query.CountAsync();

                response.Model = await query.Paging(pageSize, pageNumber).ToListAsync();

                response.Message = string.Format("Page {0} of {1}, Total of providers: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error, please contact to technical support. : " + ex.Message;
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> GetJobsAsync(int pageSize = 10, int pageNumber = 1, string location = null)
        {
            var response = new PagedResponse <Job>();

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

                // Set paging 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 Number of Jobs: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error" + ex;
            }
            return(response.ToHttpResponse());
        }
Esempio n. 4
0
        public async Task <IActionResult> SearchAccount([FromBody] SearchAccountRequest request)
        {
            string method = nameof(SearchAccount);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method, request);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var query = await DbContext.GetAccounts(request).Paging(response, request.page_start, request.page_size)
                            .Include(x => x.fund).Include(x => x.accounter)
                            .ToListAsync();

                var entity_list = query
                                  .Select(x => new
                {
                    x.id,
                    x.name,
                    x.fund_id,
                    x.fund_name,
                    x.accounter_id,
                    x.accounter_name
                });
                response.Model     = entity_list;
                response.ErrorCode = (int?)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }
            return(response.ToHttpResponse(Logger, method));
        }
        public async Task <IActionResult> GetStockItemsAsync(int pageSize = 10, int pageNumber       = 1, int?lastEditedBy  = null, int?
                                                             colorID      = null, int?outerPackageID = null, int?supplierID = null, int?unitPackageID = null)
        {
            Logger?.LogDebug("'{0}' has been invoked", nameof(GetStockItemsAsync));
            var response = new PagedResponse <StockItem>();

            try
            {
                //Get the propsoed query from repository
                var query = DbContext.GetStockItems();

                //Set paging 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 products: '{2}' ",
                                                 response.PageNumber, response.PageCount, response.ItemsCount);

                Logger?.LogInformation("The stock items have been retrived successfully");
            } catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error, please contact technical support.";
                Logger?.LogCritical("There was an error on '{0}' invocation: '{1}'", nameof(GetStockItemsAsync), ex);
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> GetProducts(int?providerId, bool toUpdate = false, int pageSize = 10, int pageNumber = 1)
        {
            var response = new PagedResponse <Product>();

            try
            {
                IQueryable <Product> query = _context.Products.AsQueryable <Product>().Include(p => p.Family).Include(p => p.Provider);
                if (providerId != null)
                {
                    query = query.Where(p => p.ProviderId == providerId);
                }
                if (toUpdate)
                {
                    query = query.Where(p => p.Quantity <= p.MinStockAvailable);
                }

                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

                response.ItemsCount = await query.CountAsync();

                response.Model = await query.Paging(pageSize, pageNumber).ToListAsync();

                response.Message = string.Format("Page {0} of {1}, Total of families: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error, please contact to technical support. : " + ex.Message;
            }

            return(response.ToHttpResponse());
        }
Esempio n. 7
0
        public async Task <IActionResult> FindAsync(int pageSize = 10, int pageNumber = 1, string name = "")
        {
            var response = new PagedResponse <CategoryResource>();

            try
            {
                // Set paging values
                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

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

                // Get the specific page from database
                var categories = await categoryService.FindAsync(pageSize, pageNumber, name);

                response.Model = this.mapper.Map <IEnumerable <Category>, IEnumerable <CategoryResource> >(categories);

                response.Message = string.Format("Page {0} of {1}, Total of products: {2}.", pageNumber, response.PageCount, response.ItemsCount);

                logger?.LogInformation("The stock items 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(FindAsync), ex);
            }
            return(response.ToHttpResponse());
        }
Esempio n. 8
0
        public async Task <IActionResult> GetProductsAsync(int pageSize = 10, int pageNumber = 1)
        {
            var response = new PagedResponse <Product>();

            try
            {
                // Get the "proposed" query from repository
                var query = DbContext.GetProducts();
                // Set paging 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 products: {2}.", pageNumber, response.PageCount, response.ItemsCount);

                Logger?.LogInformation("The stock items have been retrieved successfully.");
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error: " + ex.Message;
            }

            return(response.ToHttpResponse());
        }
Esempio n. 9
0
        public async Task <IActionResult> SearchSetting()
        {
            string method = nameof(SearchSetting);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var query = await DbContext.GetSettings()
                            //  .Include(x=>x.fund)
                            .ToListAsync();

                var entity_list = query
                                  .Select(x => new
                {
                    x.id,
                    x.type,
                    x.key,
                    x.value
                });
                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }

            return(response.ToHttpResponse(Logger, method));
        }
        public async Task <IActionResult> GetApplicantsAsync(int pageSize = 10, int pageNumber = 1)
        {
            Logger?.LogDebug("'{0}' has been invoked", nameof(GetApplicantsAsync));

            var response = new PagedResponse <Applicants>();

            try
            {
                // Get the "proposed" query from repository
                var query = DbContext_.GetApplicants();

                // Set paging 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 products: {2}.", pageNumber, response.PageCount, response.ItemsCount);

                Logger?.LogInformation("The stock items 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(GetApplicantsAsync), ex);
            }

            return(response.ToHttpResponse());
        }
Esempio n. 11
0
        public async Task <IActionResult> GetFamilies(int pageSize = 100, int pageNumber = 1)
        {
            var response = new PagedResponse <Family>();

            try
            {
                // Get the "proposed" query from repository
                var query = _context.Families.AsQueryable <Family>();

                // Set paging 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 products: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "There was an internal error, please contact to technical support. : " + ex.Message;
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> GetProviderOrders(int?providerId, bool lastProviderOrder = false, int pageSize = 10, int pageNumber = 1)
        {
            var response = new PagedResponse <ProviderOrder>();

            try
            {
                IQueryable <ProviderOrder> query = _context.ProviderOrders.AsQueryable <ProviderOrder>().Include(c => c.ProviderOrderItems).ThenInclude(c => c.Product).Include(c => c.Provider).OrderBy(c => c.Status);
                if (providerId != null)
                {
                    query = query.Where(c => c.ProviderId == providerId);
                }
                if (lastProviderOrder)
                {
                    query = query.Where(po => po.Status == Models.Utils.OrderStatus.NONE).OrderByDescending(po => po.CreatedAt).Take(1);
                }

                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

                response.ItemsCount = await query.CountAsync();

                response.Model = await query.Paging(pageSize, pageNumber).ToListAsync();

                response.Message = string.Format("Page {0} of {1}, Total of providerorders: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = ex.StackTrace;
                response.Message      = ex.Message;
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> GetClientOrders(int?clientId, int pageSize = 10, int pageNumber = 1)
        {
            var response = new PagedResponse <ClientOrder>();

            try
            {
                IQueryable <ClientOrder> query = _context.ClientOrders.AsQueryable <ClientOrder>().Include(c => c.ClientOrderItems).ThenInclude(ci => ci.Product).Include(c => c.Client).OrderBy(c => c.Status);
                if (clientId != null)
                {
                    query = query.Where(c => c.ClientId == clientId);
                }

                // Set paging 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 products: {2}.", pageNumber, response.PageCount, response.ItemsCount);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = ex.StackTrace;
                response.Message      = ex.Message;
            }

            return(response.ToHttpResponse());
        }
Esempio n. 14
0
        public async Task <IActionResult> GetServicesAsync(string filter = "", int page = 1, int pageSize = 15)
        {
            var response = new PagedResponse <Service>();

            try
            {
                List <Service> services;
                long           totalResults;

                if (!string.IsNullOrEmpty(filter))
                {
                    foreach (string item in filter.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        services = await _context.Services
                                   .Where(c => c.Name.ToLower().StartsWith(item))
                                   .Skip((page - 1) * pageSize)
                                   .Take(pageSize)
                                   .ToListAsync();

                        totalResults = await _context.Services
                                       .Where(c => c.Name.ToLower().StartsWith(item))
                                       .LongCountAsync();

                        response = await createResponsePaginated(filter, page, pageSize, totalResults, services);

                        return(response.ToHttpResponse());
                    }
                }

                services = await _context.Services.Skip((page - 1) *pageSize)
                           .Take(pageSize)
                           .ToListAsync();

                totalResults = await _context.Services.LongCountAsync();

                response = await createResponsePaginated(filter, page, pageSize, totalResults, services);
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = ex.ToString();
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> SearchDeposit([FromBody] SearchDepositRequest request)
        {
            string method = nameof(SearchDeposit);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method, request);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var query = await DbContext.GetDeposits(request).Paging(response, request.page_start, request.page_size)
                            .Include(x => x.account).ThenInclude(x => x.fund)
                            .Include(x => x.unit_cost)
                            .Include(x => x.purchases).ThenInclude(x => x.buyer)
                            .Include(x => x.purchases).ThenInclude(x => x.bank_copartner)
                            .ToListAsync();

                var entity_list = query
                                  .Select(x => new
                {
                    x.account_id,
                    x.account_name,
                    x.cancel_cost,
                    x.count,
                    x.date,
                    x.fund_name,
                    x.id,
                    x.issue_cost,
                    x.purchases_count,
                    x.status,
                    x.unit_cost_id,
                    x.amount,
                    purchases = x.purchases.Select(i => new Purchase {
                        id = i.id, buyer_id = i.buyer_id, buyer = new User {
                            first_name = i.buyer.first_name, last_name = i.buyer.last_name
                        }, bank_copartner = new User {
                            first_name = i.bank_copartner?.first_name, last_name = i.bank_copartner?.last_name
                        }
                    }),
                    x.fund_id
                }).OrderByDescending(x => x.date);
                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }

            return(response.ToHttpResponse(Logger, method));
        }
Esempio n. 16
0
        public async Task <IActionResult> UserProfitLostDashboardSearch()
        {
            string method = nameof(UserProfitLostDashboardSearch);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var user_purchases = DbContext.GetPurchases();

                var query = (await user_purchases
                             .Include(x => x.deposit).ThenInclude(x => x.unit_cost).ThenInclude(x => x.fund)
                             .Include(x => x.buyer)
                             // .Include(x => x.deposits).ThenInclude(x => x.account).ThenInclude(x => x.fund)
                             .GroupBy(x => new { x.buyer_id }).ToListAsync())
                            .Select(x => new
                {
                    x.First().buyer_id,
                    x.First().buyer.first_name,
                    x.First().buyer.last_name,
                    total_amount_investment  = x.Sum(y => y.amount),
                    current_investment_value = x.Sum(y => y.deposit.value_of_shares),
                    net_profit_to_loss_share_without_commission = x.Sum(y => y.deposit.profit_rate),
                    expected_bank_interest = x.Where(y => y.bank_copartner_id == x.First().buyer_id).Sum(z => z.expected_bank_interest)
                });
                var entity_list = query
                                  .Select(x => new
                {
                    x.buyer_id,
                    x.first_name,
                    x.last_name,
                    x.total_amount_investment,                     //کل مبلغ سرمایه‌گذاری
                    x.current_investment_value,                    //ارزش کنونی سرمایه‌گذاری
                    x.net_profit_to_loss_share_without_commission, //سهم خالص سود به زیان بدون کارمزد
                    x.expected_bank_interest                       //سود انتظاری بانکی
                });
                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }

            return(response.ToHttpResponse(Logger, method));
        }
        public async Task <IActionResult> TestNoDb()
        {
            string method = nameof(TestNoDb);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method);
            PagedResponse <Deposit> response = new PagedResponse <Deposit>();

            try
            {
                response.ErrorCode = (int?)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }
            return(response.ToHttpResponse(Logger, method));
        }
        public async Task <IActionResult> GetProductsPaged([FromQuery] PagedRequestModel filter)
        {
            var response = new PagedResponse <ProductResponseModel>();

            try
            {
                var result = await _productService.GetPagedAsync(filter);

                response.Data       = result.Items;
                response.ItemsCount = result.TotalCount;
            }
            catch (Exception ex)
            {
                response.Meta.Code         = -1;
                response.Meta.ErrorMessage = "Internal server error.";
                _logger.Error("There was an error on 'GetProductsPaged' invocation.", ex);
            }

            return(response.ToHttpResponse());
        }
Esempio n. 19
0
        public async Task <IActionResult> Get(int pageIndex = 1, int pageSize = 100, int id = 0, int workState = 0, int gender = -1)
        {
            GlobalParamFilter filters = new GlobalParamFilter
            {
                Status    = Constants.Status.Active,
                PageIndex = pageIndex,
                PageSize  = pageSize > 0 ? pageSize : int.MaxValue,
                WorkState = workState,
                Gender    = gender
            };
            var response = new PagedResponse <MISA.Common.Models.Employee> {
                Success = true
            };

            try
            {
                if (id != 0)
                {
                    var data = await _employeeService.GetById(id);

                    response.Data = data;
                }
                else
                {
                    var entities = await _employeeService.GetAll(filters);

                    response.Data       = entities.ToList();
                    response.PageIndex  = pageIndex;
                    response.PageSize   = pageSize;
                    response.TotalPages = entities.TotalPages;
                    response.TotalCount = entities.TotalCount;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response.ToHttpResponse());
        }
        public async Task <IActionResult> SearchPurchase([FromBody] SearchPurchaseRequest request)
        {
            string method = nameof(SearchPurchase);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method, request);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var entity_list = await DbContext.GetPurchaseList(response, request);

                response.Model     = entity_list;
                response.ErrorCode = (int)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }

            return(response.ToHttpResponse(Logger, method));
        }
        public async Task <IActionResult> Test()
        {
            string method = nameof(Test);

            LogHandler.LogMethod(LogHandler.EventType.Call, Logger, method);
            PagedResponse <object> response = new PagedResponse <object>();

            try
            {
                var            entity_query = DbContext.GetDeposits().Paging(response, 0, 100);
                List <Deposit> entity_list  = await entity_query.ToListAsync();

                response.Model     = entity_list;
                response.ErrorCode = (int?)ErrorHandler.ErrorCode.OK;
            }
            catch (Exception ex)
            {
                LogHandler.LogError(Logger, response, method, ex);
            }
            return(response.ToHttpResponse(Logger, method));
        }
Esempio n. 22
0
        public async Task <IActionResult> GetProductsAsync(int?pageSize = 10, int?pageNumber = 1, string name = "", string sortBy = "popularity")
        {
            Logger?.LogDebug("'{0}' has been invoked", nameof(GetProductsAsync));

            var response = new PagedResponse <Product>();

            try
            {
                // Get query from repository
                var query = Service.DbContext.GetProducts(name);

                // Sorting list
                if (sortBy == "popularity")
                {
                    query = query.OrderByDescending(item => item.Likes);
                }
                else
                {
                    query = query.OrderBy(item => item.ProductName);
                }

                // Set paging's information
                response.PageSize   = (int)pageSize;
                response.PageNumber = (int)pageNumber;
                response.ItemsCount = await query.CountAsync();

                // Retrieve items by page size and page number, set model for response
                response.Model = await query.Paging(response.PageSize, response.PageNumber).ToListAsync();

                response.Message = string.Format("Page {0} of {1}, Total of products: {2}.", pageNumber, response.PageCount, response.ItemsCount);

                Logger?.LogInformation(response.Message);
            }
            catch (Exception ex)
            {
                response.SetError(Logger, nameof(GetProductsAsync), ex);
            }

            return(response.ToHttpResponse());
        }
Esempio n. 23
0
        public async Task <IActionResult> GetAllBinsAsync([FromQuery] PagingParams pageParams = null)
        {
            var response = new PagedResponse <BinViewModel>();

            try
            {
                var bins = await _binRepository.ReadAllAsync(pageParams);

                response.Model      = _mapper.Map <List <BinViewModel> >(bins);
                response.PageNumber = pageParams.PageNumber;
                response.PageSize   = pageParams.PageSize;
                response.ItemsCount = await _binRepository.GetCount();
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "Server Error";
                response.ErrorDetails = $"{ex.Message}\n{ex.InnerException?.Message}\n{ex.InnerException?.InnerException?.Message}";
            }

            return(response.ToHttpResponse());
        }
Esempio n. 24
0
        public async Task <IActionResult> GetStockItemsAsync(int pageSize = 10, int pageNumber       = 1, int?lastEditedBy  = null,
                                                             int?colorID  = null, int?outerPackageID = null, int?supplierID = null, int?unitPackageID = null)
        {
            Logger?.LogDebug("'{0}' foi chamada", nameof(GetStockItemsAsync));

            var response = new PagedResponse <StockItem>();

            try
            {
                // Get da query "proposta" do repositório
                var query = _context.GetStockItems();

                // Seta o valor das páginas
                response.PageSize   = pageSize;
                response.PageNumber = pageNumber;

                // Get o total de linhas
                response.ItemsCount = await query.CountAsync();

                // Get a página expecífica do banco
                response.Model = await query.Paging(pageSize, pageNumber).ToListAsync();

                response.Message = string.Format("Página {0} de {1}, Total de produtos: {2}.", pageNumber, response.PageCount, response.ItemsCount);

                Logger?.LogInformation("Os itens foram trazidos com sucesso.");
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = "Houve um erro interno, por favor contate o suporte.";

                Logger?.LogCritical("Houve um erro na chamada '{0}' invocando: {1} ", nameof(GetStockItemsAsync), ex);
            }

            return(response.ToHttpResponse());
        }