private static HttpContent CreateHalContent(Session session, HttpRequestMessage request) { dynamic jsession = new JObject(); jsession.title = session.Title; jsession.description = session.Description; jsession.timeslot = session.TimeslotDescription; dynamic links = new JObject(); dynamic speakerLink = new JObject(); speakerLink.href = SpeakerLinkHelper.CreateLink(request,session.SpeakerId).Target; links[LinkHelper.GetLinkRelationTypeName<SpeakerLink>()] = speakerLink; jsession["_links"] = links; return new DynamicHalContent(jsession); }
public static IHttpActionResult CreateResponse(Session session, HttpRequestMessage request) { IHttpActionResult response = new OkResult(request); if (request.Headers.Accept.Contains(new MediaTypeWithQualityHeaderValue("application/hal+json"))) { response = response.WithContent(CreateHalContent(session,request)); } else { response = response .WithContent(new StringContent(session.Title + Environment.NewLine + session.Description)) .WithLinkHeaders(new List<Link> {SpeakerLinkHelper.CreateLink(request, session.SpeakerId)}); } return response; }
public static SessionLink CreateLink(HttpRequestMessage request, Session session) { return request.ResolveLink<SessionLink>(SessionByIdRoute, new { id = session.Id}); }
public static TopicsLink CreateLink(HttpRequestMessage request, Session session) { return request.ResolveLink<TopicsLink>(SessionTopicsRoute, new { id = session.Id }); }