public IActionResult GetBands([FromQuery] BandResourceParameters bandResourceParameters) { if (!_propertyMappingService.ValidMappingExist <BandDto, entities.Band>(bandResourceParameters.OrderBy)) { return(BadRequest()); } if (!_propertyValidationService.HasValidProperties <BandDto>(bandResourceParameters.Fields)) { return(BadRequest()); } var bandsFromRepo = _bandAlbumResponsitory.GetBands(bandResourceParameters); var previousPageLink = bandsFromRepo.HasPrevious ? CreateBandsUri(bandResourceParameters, UriType.PreviousPage) : null; var nextPageLink = bandsFromRepo.HasNext ? CreateBandsUri(bandResourceParameters, UriType.NextPage) : null; var metaData = new { totalCount = bandsFromRepo.TotalCount, pageSize = bandsFromRepo.PageSize, currentPage = bandsFromRepo.CurrentPage, totalPages = bandsFromRepo.TotalPages, previousPageLink = previousPageLink, nextPageLink = nextPageLink, }; Response.Headers.Add("Pagination", JsonSerializer.Serialize(metaData)); return(Ok(_mapper.Map <IEnumerable <BandDto> >(bandsFromRepo).ShapeData(bandResourceParameters.Fields))); }
public IActionResult GetBandCollection([FromRoute] [ModelBinder(BinderType = typeof(ArrayModelBinder))] IEnumerable <Guid> ids) { if (ids == null) { return(BadRequest()); } var bandEntities = _bandAlbumResponsitory.GetBands(ids); if (ids.Count() != bandEntities.Count()) { return(NotFound()); } var bandToReturn = _mapper.Map <IEnumerable <BandDto> >(bandEntities); return(Ok(bandToReturn)); }