private object BuidlListHal(Promise<int> total, IEnumerable<Place> places, SearchPlacesParameters parameters) { var totalPages = total/parameters.PageSize; var builder = new HalBuilder(Request.Url.ToString()) .AddProperty("pages", totalPages) .AddProperty("page", parameters.Page) .EmbedListResourceWithProperties( "places", places, place => Settings.ToAbsolute(string.Format("/places/{0}", place.Id)), place => place.Id, place => place.EnglishName, place => place.CornishName, place => place.Type, place => place.Parish); if (parameters.Page < totalPages) builder.AddLink("next", new SearchUrlBuilder(parameters).NextPage().Build()); if (parameters.Page > 1) builder.AddLink("prev", new SearchUrlBuilder(parameters).PreviousPage().Build()); return builder.Build(); }
private static IEnumerable <Place> SearchPlaces(SearchPlacesParameters searchParameters, out Promise <int> total) { var db = Database.Open(); SimpleQuery query = null; if (searchParameters.IsEnglishSearch) { query = db.Places.FindAll(db.Places.EnglishName.Like(searchParameters.Keyword.WithWildcards())).OrderByEnglishName(); } if (searchParameters.IsCornishSearch) { query = db.Places.FindAll(db.Places.CornishName.Like(searchParameters.CornishKeyword.WithWildcards())) .OrderByCornishName(); } var places = query.Skip((searchParameters.Page.Value - 1) * searchParameters.PageSize.Value) .Take(searchParameters.PageSize.Value) .WithTotalCount(out total) .ToList <Place>(); return(places); }
private object BuidlListHal(Promise <int> total, IEnumerable <Place> places, SearchPlacesParameters parameters) { var totalPages = total / parameters.PageSize; var builder = new HalBuilder(Request.Url.ToString()) .AddProperty("pages", totalPages) .AddProperty("page", parameters.Page) .EmbedListResourceWithProperties( "places", places, place => Settings.ToAbsolute(string.Format("/places/{0}", place.Id)), place => place.Id, place => place.EnglishName, place => place.CornishName, place => place.Type, place => place.Parish); if (parameters.Page < totalPages) { builder.AddLink("next", new SearchUrlBuilder(parameters).NextPage().Build()); } if (parameters.Page > 1) { builder.AddLink("prev", new SearchUrlBuilder(parameters).PreviousPage().Build()); } return(builder.Build()); }
public SearchPlacesParameters(SearchPlacesParameters old) { Keyword = old.Keyword; CornishKeyword = old.CornishKeyword; Page = old.Page; PageSize = old.PageSize; }
private static IEnumerable<Place> SearchPlaces(SearchPlacesParameters searchParameters, out Promise<int> total) { var db = Database.Open(); SimpleQuery query = null; if (searchParameters.IsEnglishSearch) query = db.Places.FindAll(db.Places.EnglishName.Like(searchParameters.Keyword.WithWildcards())).OrderByEnglishName(); if (searchParameters.IsCornishSearch) query = db.Places.FindAll(db.Places.CornishName.Like(searchParameters.CornishKeyword.WithWildcards())) .OrderByCornishName(); var places = query.Skip((searchParameters.Page.Value - 1) * searchParameters.PageSize.Value) .Take(searchParameters.PageSize.Value) .WithTotalCount(out total) .ToList<Place>(); return places; }
public SearchUrlBuilder(SearchPlacesParameters parameters) { _params = new SearchPlacesParameters(parameters); }