Exemple #1
0
        } = 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"),
            });
        }
Exemple #2
0
 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()),
     });
 }
Exemple #3
0
        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);
 }
Exemple #7
0
 public HateoasLinkBuilderShould()
 {
     _sut = new HateoasLinkBuilder <HateoasSample>("test");
 }