// Converts list of domain objects into C+J media type DOM // Static so it can be re-used by multiple controllers ( e.g. Sessions?topicid={topicid} and topic/{id}/sessions) public static Collection GetSessionsCollection(IEnumerable<Session> sessions, DataService dataService, HttpRequestMessage request) { var eventsCollection = new Collection(); foreach (var session in sessions) { var item = new Item(); item.Href = SessionLinkHelper.CreateLink(request,session).Target; item.Data.Add(new Data { Name = "Title", Value = session.Title }); item.Data.Add(new Data { Name = "Timeslot", Value = session.TimeslotDescription }); if (session.SpeakerId != 0) { item.Data.Add(new Data { Name = "Speaker", Value = dataService.SpeakerRepository.Get(session.SpeakerId).Name }); item.Links.Add(SpeakerLinkHelper.CreateLink(request, dataService.SpeakerRepository.Get(session.SpeakerId)).ToCJLink()); } item.Links.Add(TopicsLinkHelper.CreateLink(request, session).ToCJLink()); eventsCollection.Items.Add(item); } return eventsCollection; }
public static IHttpActionResult CreateResponse(IEnumerable<Session> sessions, DataService _dataService, HttpRequestMessage Request) { Collection collection = GetSessionsCollection(sessions, _dataService, Request); return new OkResult(Request) .WithContent(new CollectionJsonContent(collection)); }
public SessionsController(DataService dataService) { _dataService = dataService; }
public TopicsController(DataService dataService) { _dataService = dataService; }
public SpeakerController(DataService dataService) { _dataService = dataService; }
public DaysController(DataService dataService) { _dataService = dataService; }