public EventSingleState Create(@event model) { var eve = new EventSingleState { id = model.id, title = model.title, local = model.local, initDate = model.initDate, endDate = model.endDate, description = model.description, nrOfTickets = model.nrOfTickets.Value, community = communityFactory.Create(model.community), subscribers = model.eventSubscribers.Select <eventSubscribers, UsersCollectionState>(i => userFactory.Create(i.userInfo)), session = model.session.Select <session, SessionsCollectionState>(i => sessionFactory.Create(i)), comments = model.comment.Select <comment, CommentsCollectionState>(i => commentFactory.Create(i)), survey = surveyFactory.Create(model.survey), tag = model.tag.Select <tag, string>(i => i.name), _links = new EventSingleState.Link() }; //add hypermedia eve._links.self = _links.Self(model.id); eve._links.sessions = _links.Sessions(model.id); eve._links.community = _links.Community(model.communityId.Value); eve._links.comments = _links.Comments(model.id); eve._links.subscribers = _links.Subscribers(model.id); eve._links.subscriberCheckedIn = _links.SubscribersCheckedIn(model.id); return(eve); }
public async Task <HttpResponseMessage> GetAll(int id) { IStateFactory <session, SessionsCollectionState> _stateFactory = new SessionsCollectionFactory(new SessionLinkFactory(Request)); var instance = SessionService.GetInstance(); var sessions = await instance.GetSessionsFromEvent(id); if (sessions.Success) { var res = sessions.Result.Select <session, SessionsCollectionState>(i => _stateFactory.Create(i)); return(Request.CreateResponse(HttpStatusCode.OK, new { sessions = res }, "application/json")); } return(Request.CreateResponse(HttpStatusCode.NotFound, new NotFound(Request.RequestUri, sessions.Message), "application/problem+json")); }