Ejemplo n.º 1
0
        public static IActionResult HAL(this ControllerBase controller, IEnumerable <Link> links, string relativeLinkBase = "~/", HttpStatusCode statuscode = HttpStatusCode.OK)
        {
            string linkBase = GetLinkBase(controller, relativeLinkBase);

            var hyperMedia = new HALResponse(new HALModelConfig {
                ForceHAL = true, // If we're only returning links, always return them
                LinkBase = linkBase
            });

            hyperMedia.AddLinks(links);

            return(hyperMedia.ToActionResult(controller, statuscode));
        }
Ejemplo n.º 2
0
        public static IActionResult HAL <T, E>(this ControllerBase controller, T model, IEnumerable <Link> modelLinks, string embeddedName, IEnumerable <E> embeddedModel, IEnumerable <Link> embeddedLinks, string relativeLinkBase = "~/", HttpStatusCode statuscode = HttpStatusCode.OK)
        {
            string linkBase = GetLinkBase(controller, relativeLinkBase);

            var hyperMedia = new HALResponse(model, new HALModelConfig {
                LinkBase = linkBase
            });

            hyperMedia
            .AddLinks(modelLinks)
            .AddEmbeddedCollection(embeddedName, embeddedModel, embeddedLinks);

            return(hyperMedia.ToActionResult(controller, statuscode));
        }
Ejemplo n.º 3
0
        public void To_Action_Result(HttpStatusCode statuscode)
        {
            var halModel = new HALResponse(null);

            var result = halModel.ToActionResult(this.controller, statuscode) as NegotiatedContentResult <HALResponse>;

            Assert.NotNull(result);
            Assert.Equal(statuscode, result.StatusCode);

            var response = result.Content;

            Assert.NotNull(response);
            Assert.Same(halModel, response);
        }
Ejemplo n.º 4
0
        public static IActionResult HAL <T>(this ControllerBase controller, T model, IEnumerable <Link> links, string relativeLinkBase = "~/", bool addSelfLinkIfNotExists = true, HttpStatusCode statuscode = HttpStatusCode.OK)
        {
            string linkBase = GetLinkBase(controller, relativeLinkBase);

            var response = new HALResponse(model, new HALModelConfig {
                LinkBase = linkBase
            })
                           .AddLinks(links);

            if (addSelfLinkIfNotExists)
            {
                response.AddSelfLinkIfNotExists(controller.Request);
            }

            return(response.ToActionResult(controller, statuscode));
        }
Ejemplo n.º 5
0
        public static IActionResult HAL <T>(this Controller controller, T model, IEnumerable <Link> links, string relativeLinkBase = "~/", HttpStatusCode statuscode = HttpStatusCode.OK)
        {
            if (!links.Any())
            {
                return(new ObjectResult(model)
                {
                    StatusCode = (int)statuscode
                });
            }

            string linkBase = GetLinkBase(controller, relativeLinkBase);

            var hyperMedia = new HALResponse(model, new HALModelConfig {
                LinkBase = linkBase
            })
                             .AddLinks(links);

            return(hyperMedia.ToActionResult(controller, statuscode));
        }
Ejemplo n.º 6
0
 public static IActionResult HAL(this ControllerBase controller, HALResponse hyperMedia, HttpStatusCode statuscode = HttpStatusCode.OK)
 {
     return(hyperMedia.ToActionResult(controller, statuscode));
 }