示例#1
0
        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)));
        }
示例#2
0
        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));
        }