public CommunitySingleState Create(community model)
        {
            var community = new CommunitySingleState
            {
                id             = model.id,
                name           = model.name,
                local          = model.local,
                description    = model.description,
                avatar         = model.avatar,
                foundationDate = model.foundationDate.Value,

                events   = [email protected] <@event, EventsCollectionState>(i => eventFactory.Create(i)),
                notices  = model.notice.Select <notice, NoticesCollectionState>(i => noticeFactory.Create(i)),
                admins   = model.admins.Select <userInfo, UsersCollectionState>(i => userFactory.Create(i)),
                members  = model.members.Select <userInfo, UsersCollectionState>(i => userFactory.Create(i)),
                comments = model.comment.Select <comment, CommentsCollectionState>(i => commentFactory.Create(i)),
                tags     = model.tag.Select <tag, string>(i => i.name),
                _Links   = new CommunitySingleState.Link()
            };

            //Add hyperMedia
            community._Links.Self         = _links.Self(model.id);
            community._Links.Events       = _links.Events(model.id);
            community._Links.PastEvents   = _links.PastEvents(model.id);
            community._Links.FutureEvents = _links.FutureEvents(model.id);
            community._Links.Members      = _links.Members(model.id);
            community._Links.Admins       = _links.Admins(model.id);
            community._Links.Notices      = _links.Notices(model.id);
            community._Links.Comments     = _links.Comments(model.id);


            return(community);
        }
Example #2
0
        public async Task <HttpResponseMessage> GetFromCommunity(int id, string type = "member")
        {
            IStateFactory <userInfo, UsersCollectionState> _stateFactory = new UsersCollectionFactory(new UserLinkFactory(Request));
            var instance = UserService.GetInstance();

            OperationResult <IEnumerable <userInfo> > users = null;

            if (type == "member")
            {
                users = await instance.GetUserFromCommunityByRole(id, Services.Models.Roles.Role.Member);
            }
            else if (type == "admin")
            {
                users = await instance.GetUserFromCommunityByRole(id, Services.Models.Roles.Role.Admin);
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BadRequest(Request.RequestUri, "The values of query string must be 'member' or 'admin"), "application/problem+json"));
            }

            if (users.Success)
            {
                var res = users.Result.Select <userInfo, UsersCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, new { users = res }, "application/json"));
            }
            return(Request.CreateResponse(HttpStatusCode.NotFound, new NotFound(Request.RequestUri, users.Message), "application/problem+json"));
        }
Example #3
0
        public async Task <HttpResponseMessage> GetFromEvent(int id, string isCheckedIn = "false")
        {
            IStateFactory <userInfo, UsersCollectionState> _stateFactory = new UsersCollectionFactory(new UserLinkFactory(Request));
            var instance = UserService.GetInstance();

            OperationResult <IEnumerable <userInfo> > users = null;

            if (isCheckedIn == "false")
            {
                users = await instance.GetUsersSubscribedOnEvent(id, Services.Services.UserService.Check_in.False);
            }
            else if (isCheckedIn == "true")
            {
                users = await instance.GetUsersSubscribedOnEvent(id, Services.Services.UserService.Check_in.True);
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BadRequest(Request.RequestUri, "The values of query string must be 'true' or 'false"), "application/problem+json"));
            }

            if (users.Success)
            {
                var res = users.Result.Select <userInfo, UsersCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, new { users = res }, "application/json"));
            }
            return(Request.CreateResponse(HttpStatusCode.NotFound, new NotFound(Request.RequestUri, users.Message), "application/problem+json"));
        }
Example #4
0
        public async Task <HttpResponseMessage> Get()
        {
            IStateFactory <userInfo, UsersCollectionState> _stateFactory = new UsersCollectionFactory(new UserLinkFactory(Request));
            var instance = UserService.GetInstance();

            var users = await instance.GetAllAsync();

            if (users.Success)
            {
                var res = users.Result.Select <userInfo, UsersCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, new { users = res }, "application/json"));
            }
            return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, new ServiceUnvailable(Request.RequestUri, users.Message), "application/problem+json"));
        }
Example #5
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);
        }