} = false; // this prevents it from applying to every item public override List <HateoasLink> GetLinks(JToken item) { return(new List <HateoasLink> { HateoasLinkBuilder.BuildSelfLink(Context) .AddHreflang("nl-be") .AddTitle("Link to self") .AddType("json"), }); }
public override List <HateoasLink> GetLinks(JToken item) { return(new List <HateoasLink> { HateoasLinkBuilder.Build(Context, "default", "City", "List", "list", HttpMethod.Get) .AddHreflang("nl-be") .AddTitle("List of cities") .AddType("application/json+hal"), HateoasLinkBuilder.Build(Context, "default", "City", "Details", "details", HttpMethod.Get) .AddHreflang("nl-be") .AddTitle("Details of this city") .AddType("application/json+hal") .ExtendQueryString("name", item["Name"].ToString()), }); }
public LinkBuilderFixture() { // "We all know how painful it is to mock a HttpContext" _mockContext = new ActionContext { HttpContext = new DefaultHttpContext() }; _routeData = new RouteData(); _mockContext.RouteData = _routeData; // var routes = new RouteCollection(); // routes.MapRoute( // name: "default", // template: "api/{controller=Home}/{action=Index}/{id?}"); _urlHelper = new UrlHelper(_mockContext); _linkBuilder = new HateoasLinkBuilder(_urlHelper); }
public override List <HateoasLink> GetLinks(JToken item) { return(new List <HateoasLink> { HateoasLinkBuilder.Build(Context, "default", "Person", string.Empty, "list", HttpMethod.Get) .AddHreflang("nl-be") .AddTitle("List of persons") .AddType("application/json+hal"), HateoasLinkBuilder.Build(Context, "default", "Person", "Edit", "edit", HttpMethod.Post, item["Id"]) .AddHreflang("nl-be") .AddTitle("Edit this person") .AddType("application/json+hal"), HateoasLinkBuilder.Build(Context, "default", "Person", "Delete", "delete", HttpMethod.Delete, item["Id"]) .AddHreflang("nl-be") .AddTitle("Delete this person") .AddType("application/json+hal"), }); // Tip: if the API method returns a List<Person>, one could access the ID of the Person in said list via: // Parameters.GetValueOrDefault("RD-ListId"); }
public void AddLinks(ResultExecutingContext context) { var currentObjectValue = (context.Result as OkObjectResult).Value; _urlHelper = new UrlHelper(context); _hateoasLinkBuilder = new HateoasLinkBuilder(_urlHelper); var value = (context.Result as OkObjectResult).Value; var settings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver(), }; var valueSerialized = JsonConvert.SerializeObject(JToken.FromObject(value), settings); dynamic valueToProcess = JsonConvert.DeserializeObject(valueSerialized); (context.Result as OkObjectResult).Value = valueToProcess; var val = (JToken)(context.Result as OkObjectResult).Value; this.RecursiveSearchAndProcessObject(ref val, context, 0); (context.Result as OkObjectResult).Value = val; }
public void SetHelpers(ResultExecutingContext context) { Context = context; UrlHelper = new UrlHelper(context); HateoasLinkBuilder = new HateoasLinkBuilder(UrlHelper); }
public HateoasLinkBuilderShould() { _sut = new HateoasLinkBuilder <HateoasSample>("test"); }