Example #1
0
        public BeerListRepresentation Get([FromQuery] string searchTerm, [FromQuery] int page = 1)
        {
            if (string.IsNullOrEmpty(searchTerm))
            {
                var beers = repository.Find(new GetBeersQuery(), page, PageSize);

                var resourceList = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages,
                                                              page, LinkTemplates.Beers.GetBeers);

                return(resourceList);
            }
            else
            {
                var beers = repository.Find(new GetBeersQuery(b => b.Name.Contains(searchTerm)), page, PageSize);

                // snap page back to actual page found
                if (page > beers.TotalPages)
                {
                    page = beers.TotalPages;
                }

                //var link = LinkTemplates.Beers.SearchBeers.CreateLink(new { searchTerm, page });
                var beersResource = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages,
                                                               page,
                                                               LinkTemplates.Beers.SearchBeers,
                                                               new { searchTerm })
                {
                    Page         = page,
                    TotalResults = beers.TotalResults
                };

                return(beersResource);
            }
        }
Example #2
0
        // GET beers
        public BeerListRepresentation Get(int page = 1)
        {
            var beers = repository.Find(new GetBeersQuery(), page, PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages, page, LinkTemplates.Beers.GetBeers);

            return resourceList;
        }
Example #3
0
        // GET beers
        public BeerListRepresentation Get(int page = 1)
        {
            var beers = repository.Find(new GetBeersQuery(), page, PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages, page, LinkTemplates.Beers.GetBeers);

            return(resourceList);
        }
 public BeerListRepresentation Get(int id, int page)
 {
     var beers = repository.Find(new GetBeersQuery(b => b.Style.Id == id), page, BeersController.PageSize);
     var resourceList = new BeerListRepresentation(
         beers.ToList(), beers.TotalResults, beers.TotalPages, page,
         LinkTemplates.BeerStyles.AssociatedBeers.CreateLink(new {id}));
     return resourceList;
 }
        public BeerListRepresentation Get(int id, int page = 1)
        {
            var beers        = repository.Find(new GetBeersQuery(b => b.Style.Id == id), page, BeersController.PageSize);
            var resourceList = new BeerListRepresentation(
                beers.ToList(), beers.TotalResults, beers.TotalPages, page,
                LinkTemplates.BeerStyles.AssociatedBeers, new { id });

            return(resourceList);
        }
        public BeerListRepresentation AssociatedBeers(int id, int page)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Style.Id == id), page, BeersController.PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList())
            {
                Total = beers.TotalResults
            };

            return resourceList;
        }
Example #7
0
        public BeerListRepresentation AssociatedBeers(int id, int page)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Style.Id == id), page, BeersController.PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList())
            {
                Total = beers.TotalResults
            };

            return(resourceList);
        }
Example #8
0
        public BeerListRepresentation GetPage(int page)
        {
            var beers = repository.Find(new GetBeersQuery(), page, PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList()) { Total = beers.TotalResults, Page = page };

            if (page > 1)
                resourceList.Links.Add(LinkTemplates.Beers.GetBeers.CreateLink("prev", _page => page - 1));
            if (page < beers.TotalPages)
                resourceList.Links.Add(LinkTemplates.Beers.GetBeers.CreateLink("next", _page => page + 1));

            return resourceList;
        }
Example #9
0
        public BeerListRepresentation Search(string searchTerm, int page = 1)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Name.Contains(searchTerm)), page, PageSize);

            // snap page back to actual page found
            if (page > beers.TotalPages) page = beers.TotalPages;

            //var link = LinkTemplates.Beers.SearchBeers.CreateLink(new { searchTerm, page });
            var beersResource = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages, page,
                                                           LinkTemplates.Beers.SearchBeers,
                                                           new { searchTerm })
            {
                Page = page,
                TotalResults = beers.TotalResults
            };

            return beersResource;
        }
        public BeerListRepresentation Search(string searchTerm, int page)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Name.Contains(searchTerm)), page, PageSize);

            var link = LinkTemplates.Beers.SearchBeers.CreateLink(new{searchTerm, page});
            var beersResource = new BeerListRepresentation(beers.ToList(), beers.TotalResults, beers.TotalPages, page, link)
            {
                Page = 1,
                TotalResults = beers.TotalResults,
                Rel = link.Rel,
                Href = link.Href
            };

            if (page > 1)
                beersResource.Links.Add(LinkTemplates.Beers.SearchBeers.CreateLink("prev", new{searchTerm, page = page - 1}));
            if (page < beers.TotalPages)
                beersResource.Links.Add(LinkTemplates.Beers.SearchBeers.CreateLink("next", new{searchTerm, page = page + 1}));

            return beersResource;
        }
Example #11
0
        public BeerListRepresentation GetPage(int page)
        {
            var beers = repository.Find(new GetBeersQuery(), page, PageSize);

            var resourceList = new BeerListRepresentation(beers.ToList())
            {
                Total = beers.TotalResults, Page = page
            };

            if (page > 1)
            {
                resourceList.Links.Add(LinkTemplates.Beers.GetBeers.CreateLink("prev", _page => page - 1));
            }
            if (page < beers.TotalPages)
            {
                resourceList.Links.Add(LinkTemplates.Beers.GetBeers.CreateLink("next", _page => page + 1));
            }

            return(resourceList);
        }
Example #12
0
        public ActionResult <BeerListRepresentation> Search(string searchTerm, int page = 1)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Name.Contains(searchTerm)), page, PageSize);

            // snap page back to actual page found
            if (page > beers.TotalPages)
            {
                page = beers.TotalPages;
            }

            //var link = LinkTemplates.Beers.SearchBeers.CreateLink(new { searchTerm, page });
            var beersResource = new BeerListRepresentation(beers.ToList(),
                                                           beers.TotalResults,
                                                           beers.TotalPages,
                                                           page,
                                                           LinkTemplates.Beers.SearchBeers,
                                                           new { searchTerm })
            {
                Page         = page,
                TotalResults = beers.TotalResults
            };

            return(beersResource);
        }
Example #13
0
        public BeerListRepresentation Search(string searchTerm, int page)
        {
            var beers = repository.Find(new GetBeersQuery(b => b.Name.Contains(searchTerm)), page, PageSize);

            var link          = LinkTemplates.Beers.SearchBeers.CreateLink(_searchTerm => searchTerm, _page => page);
            var beersResource = new BeerListRepresentation(beers.ToList())
            {
                Page  = 1,
                Total = beers.TotalResults,
                Rel   = link.Rel,
                Href  = link.Href
            };

            if (page > 1)
            {
                beersResource.Links.Add(LinkTemplates.Beers.SearchBeers.CreateLink("prev", _searchTerm => searchTerm, _page => page - 1));
            }
            if (page < beers.TotalPages)
            {
                beersResource.Links.Add(LinkTemplates.Beers.SearchBeers.CreateLink("next", _searchTerm => searchTerm, _page => page + 1));
            }

            return(beersResource);
        }