示例#1
0
        public IActionResult GetAllAccessories([FromQuery] int pageNumber = 0,
                                               [FromQuery] int pageSize   = 25)
        {
            _logger.LogInformation("Returning the list of accessories");
            IEnumerable <AccessoryModel> accessoryModels;

            try
            {
                var tenantDomain = _currentTenant.DomainId;
                _logger.LogDebug($"Looking up all accessory data for data tenant: {tenantDomain})");
                var accessories = _repo.Filter(Accessory.IsMatching(tenantDomain), out int total, pageNumber, pageSize);
                _logger.LogDebug("Pagination accessory models (count): " + total);
                accessoryModels = JobAssistantMapper.MapObjects <AccessoryModel>(accessories);

                var paginationMetadata = new
                {
                    totalCount = total,
                    pageSize,
                    pageNumber,
                    totalPages = total / pageSize
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(paginationMetadata));
            }
            catch (Exception e)
            {
                _logger.LogError(1, e, "Failed to get all accessories in DB repository");
                throw;
            }

            return(Ok(accessoryModels.AsEnumerable()));
        }