Ejemplo n.º 1
0
        public async Task <ActionResult> GetPayments()
        {
            logger.LogInformation(LoggingEvents.ListItems, "List payments");

            var payments = await paymentService.GetAllAsync();

            var wrapper = new LinkedCollectionResourceWrapper <PaymentModel>(payments);

            return(Ok(CreateLinksForPayment(wrapper)));
        }
Ejemplo n.º 2
0
        private LinkedCollectionResourceWrapper <BookDto> CreateLinksForBooks(
            LinkedCollectionResourceWrapper <BookDto> booksWrapper)
        {
            booksWrapper.Links.Add(
                new Link(_urlHelper.Link("GetBooks", new { }),
                         "self",
                         "GET"));

            return(booksWrapper);
        }
Ejemplo n.º 3
0
        private LinkedCollectionResourceWrapper <PhotographerDto> CreateLinksForPhotographers(
            LinkedCollectionResourceWrapper <PhotographerDto> photographersWrapper)
        {
            photographersWrapper.Links.Add(
                new Link(_urlHelper.Link("GetPhotographer", new { }),
                         "self",
                         "GET"));

            return(photographersWrapper);
        }
Ejemplo n.º 4
0
        private LinkedCollectionResourceWrapper <PaymentModel> CreateLinksForPayment(LinkedCollectionResourceWrapper <PaymentModel> wrapper)
        {
            wrapper.Links.Add(
                new Link()
            {
                Rel    = "self",
                Href   = urlHelper.Link(nameof(GetPayments), new { }),
                Action = "GET",
                Types  = new string[] { "application/json" }
            });

            return(wrapper);
        }
Ejemplo n.º 5
0
        public IActionResult GetBooksForAuthor(Guid authorId)
        {
            if (!_libraryRepository.AuthorExists(authorId))
            {
                return(NotFound());
            }
            var books = _libraryRepository.GetBooksForAuthor(authorId);


            var results = Mapper.Map <IEnumerable <Book> >(books);

            results = results.Select(book =>
            {
                book = CreateLinks(book);
                return(book);
            });

            var wrapper = new LinkedCollectionResourceWrapper <Book>(results);

            return(Ok(CreateLinks(wrapper)));
        }
Ejemplo n.º 6
0
        public IActionResult GetBooks(Guid photographerId)
        {
            if (!_magnumPhotosRepository.PhotographerExists(photographerId))
            {
                return(NotFound());
            }

            var booksFromRepo = _magnumPhotosRepository.GetBooks(photographerId);

            var books = Mapper.Map <IEnumerable <BookDto> > (booksFromRepo);

            books = books.Select(book =>
            {
                book = CreateLinksForBook(book);
                return(book);
            });

            var wrapper = new LinkedCollectionResourceWrapper <BookDto> (books);

            return(Ok(CreateLinksForBooks(wrapper)));
        }
Ejemplo n.º 7
0
        public IActionResult GetPhotographers(PhotographersResourceParameters photographersResourceParameters)
        {
            if (!_propertyMappingService.ValidMappingExistsFor <PhotographerDto, Photographer>
                    (photographersResourceParameters.OrderBy))
            {
                return(BadRequest());
            }

            var photographersFromRepo = _magnumPhotosRepository.GetPhotographers(photographersResourceParameters);

            var previousPageLink = photographersFromRepo.HasPrevious ?
                                   CreatePhotographersResourceUri(photographersResourceParameters,
                                                                  ResourceUriType.PreviousPage) : null;

            var nextPageLink = photographersFromRepo.HasNext ?
                               CreatePhotographersResourceUri(photographersResourceParameters,
                                                              ResourceUriType.NextPage) : null;

            var paginationMetadata = new
            {
                totalCount       = photographersFromRepo.TotalCount,
                pageSize         = photographersFromRepo.PageSize,
                currentPage      = photographersFromRepo.CurrentPage,
                totalPages       = photographersFromRepo.TotalPages,
                previousPageLink = previousPageLink,
                nextPageLink     = nextPageLink
            };

            Response.Headers.Add("X-Pagination",
                                 Newtonsoft.Json.JsonConvert.SerializeObject(paginationMetadata));

            var photographers = Mapper.Map <IEnumerable <PhotographerDto> > (photographersFromRepo);

            var wrapper = new LinkedCollectionResourceWrapper <PhotographerDto> (photographers);

            return(Ok(CreateLinksForPhotographers(wrapper)));
        }
Ejemplo n.º 8
0
 private LinkedCollectionResourceWrapper <Book> CreateLinks(LinkedCollectionResourceWrapper <Book> booksWrapper)
 {
     booksWrapper.Links.Add(new Link(_urlHelper.Link(nameof(GetBookForAuthor), new { }), "self", "GET"));
     return(booksWrapper);
 }