Пример #1
0
        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"));
        }