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)); }
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)); }
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); }
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)); }
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)); }
public static IActionResult HAL(this ControllerBase controller, HALResponse hyperMedia, HttpStatusCode statuscode = HttpStatusCode.OK) { return(hyperMedia.ToActionResult(controller, statuscode)); }