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 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 object GetPlace(dynamic parameters) { var place = (Place)Database.Open().Places.FindById((int)parameters.id); OSRef gridRef = null; if (!string.IsNullOrEmpty(place.GridReference)) { try { gridRef = new OSRef(Regex.Replace(place.GridReference, @"\s+", "")); } catch { //dont care } } var representation = new HalBuilder(Request.Url.ToString()) .AddPublicPropertiesOf(place) .ConditionallyAddProperty("longitude", gridRef != null, () => gridRef.ToLatLng().Longitude) .ConditionallyAddProperty("latitude", gridRef != null, () => gridRef.ToLatLng().Latitude) .Build(); return(Response.AsJson(representation)); }
private object Home(dynamic parameters) { var representation = new HalBuilder(Settings.ToAbsolute("/")) .AddLink("places-english", Settings.ToAbsolute("/places?keyword={keyword}&page={page}&pageSize={pageSize}"), templated: true) .AddLink("places-cornish", Settings.ToAbsolute("/places?cornishKeyword={keyword}&page={page}&pageSize={pageSize}"), templated: true) .AddLink("license", "http://creativecommons.org/licenses/by/3.0/") .AddProperty("description", "Welcome to the Cornish Places Names API") .Build(); return Response.AsJson(representation); }
private object Home(dynamic parameters) { var representation = new HalBuilder(Settings.ToAbsolute("/")) .AddLink("places-english", Settings.ToAbsolute("/places?keyword={keyword}&page={page}&pageSize={pageSize}"), templated: true) .AddLink("places-cornish", Settings.ToAbsolute("/places?cornishKeyword={keyword}&page={page}&pageSize={pageSize}"), templated: true) .AddLink("license", "http://creativecommons.org/licenses/by/3.0/") .AddProperty("description", "Welcome to the Cornish Places Names API") .Build(); return(Response.AsJson(representation)); }
private object GetPlace(dynamic parameters) { var place = (Place)Database.Open().Places.FindById((int)parameters.id); OSRef gridRef = null; if(!string.IsNullOrEmpty(place.GridReference)) try { gridRef = new OSRef(Regex.Replace(place.GridReference, @"\s+", "")); } catch { //dont care } var representation = new HalBuilder(Request.Url.ToString()) .AddPublicPropertiesOf(place) .ConditionallyAddProperty("longitude", gridRef != null, ()=>gridRef.ToLatLng().Longitude) .ConditionallyAddProperty("latitude", gridRef != null, ()=>gridRef.ToLatLng().Latitude) .Build(); return Response.AsJson(representation); }