public async Task <ActionResult <LinkedCollectionResourceWrapperDto <ConditionIdentifierDto> > > GetConditionsByIdentifier( [FromQuery] ConditionResourceParameters conditionResourceParameters) { if (!_typeHelperService.TypeHasProperties <ConditionIdentifierDto> (conditionResourceParameters.OrderBy)) { return(BadRequest()); } var query = new ConditionsIdentifierQuery( conditionResourceParameters.OrderBy, conditionResourceParameters.Active, conditionResourceParameters.PageNumber, conditionResourceParameters.PageSize); _logger.LogInformation( "----- Sending query: ConditionsIdentifierQuery"); var queryResult = await _mediator.Send(query); if (queryResult == null) { return(BadRequest("Query not created")); } // Prepare pagination data for response var paginationMetadata = new { totalCount = queryResult.RecordCount, pageSize = conditionResourceParameters.PageSize, currentPage = conditionResourceParameters.PageNumber, totalPages = queryResult.PageCount }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(paginationMetadata)); return(Ok(queryResult)); }
public string CreateConditionsResourceUri(ResourceUriType type, ConditionResourceParameters conditionResourceParameters) { switch (type) { case ResourceUriType.PreviousPage: return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetConditionsByIdentifier", new { orderBy = conditionResourceParameters.OrderBy, pageNumber = conditionResourceParameters.PageNumber - 1, pageSize = conditionResourceParameters.PageSize, Active = conditionResourceParameters.Active })); case ResourceUriType.NextPage: return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetConditionsByIdentifier", new { orderBy = conditionResourceParameters.OrderBy, pageNumber = conditionResourceParameters.PageNumber + 1, pageSize = conditionResourceParameters.PageSize, Active = conditionResourceParameters.Active })); case ResourceUriType.Current: default: return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetConditionsByIdentifier", new { orderBy = conditionResourceParameters.OrderBy, pageNumber = conditionResourceParameters.PageNumber, pageSize = conditionResourceParameters.PageSize, Active = conditionResourceParameters.Active })); } }