private async Task <HttpResponseMessage> GetUserCommunities(string id, string type)
        {
            IStateFactory <community, CommunitiesCollectionState> _stateFactory = new CommunitiesCollectionFactory(new CommunityLinkFactory(Request));
            var instance = CommunityService.GetInstance();

            OperationResult <IEnumerable <community> > communities = null;

            if (type == "member")
            {
                communities = await instance.GetCommunitiesFromUserByRole(id, Services.Models.Roles.Role.Member);
            }
            else if (type == "admin")
            {
                communities = await instance.GetCommunitiesFromUserByRole(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 (communities.Success)
            {
                var res = communities.Result.Select <community, CommunitiesCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, new { communities = res }, "application/json"));
            }
            return(Request.CreateResponse(HttpStatusCode.NotFound, new NotFound(Request.RequestUri, communities.Message), "application/problem+json"));
        }
Exemplo n.º 2
0
 public EventSingleFactory(HttpRequestMessage request)
 {
     _links           = new EventLinkFactory(request);
     communityFactory = new CommunitiesCollectionFactory(new CommunityLinkFactory(request));
     userFactory      = new UsersCollectionFactory(new UserLinkFactory(request));
     sessionFactory   = new SessionsCollectionFactory(new SessionLinkFactory(request));
     commentFactory   = new CommentsCollectionFactory(request);
     surveyFactory    = new SurveySingleFactory(request);
 }
        public async Task <HttpResponseMessage> Get()
        {
            IStateFactory <community, CommunitiesCollectionState> _stateFactory = new CommunitiesCollectionFactory(new CommunityLinkFactory(Request));
            var instance = CommunityService.GetInstance();

            var communities = await instance.GetAllAsync();

            if (communities.Success)
            {
                var res = communities.Result.Select <community, CommunitiesCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, new { communities = res }, "application/json"));
            }
            return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, new ServiceUnvailable(Request.RequestUri, communities.Message), "application/problem+json"));
        }
        public async Task <HttpResponseMessage> PostSearch([FromBody]  CommunitySearch body)
        {
            var instance = CommunityService.GetInstance();
            IStateFactory <community, CommunitiesCollectionState> _stateFactory = new CommunitiesCollectionFactory(new CommunityLinkFactory(Request));

            if (body.isEmpty())
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BadRequest(Request.RequestUri, "The body must not be null"), "application/problem+json"));
            }

            var communities = await instance.Search(body.location, body.name, body.tags);

            if (communities.Success)
            {
                var res = communities.Result.Select <community, CommunitiesCollectionState>(i => _stateFactory.Create(i));
                return(Request.CreateResponse(HttpStatusCode.OK, res, "application/json"));
            }

            return(Request.CreateResponse(HttpStatusCode.Conflict, new Conflict(Request.RequestUri, communities.Message), "application/problem+json"));
        }
        public async Task <HttpResponseMessage> PutUser([FromBody] InputModel body, int id)
        {
            IStateFactory <community, CommunitiesCollectionState> _stateFactory = new CommunitiesCollectionFactory(new CommunityLinkFactory(Request));
            var instance = CommunityService.GetInstance();

            var token = GetToken();

            if (token == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, new Forbidden(Request.RequestUri, "token not present in authorization header or not valid"), "application/problem+json"));
            }
            if (body == null || body.Type == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BadRequest(Request.RequestUri, "The body must have a type with value:'member' or 'admin'"), "application/problem+json"));
            }
            string type = body.Type;

            if (type == "member")
            {
                var res = await instance.InsertMember(id, token);

                if (res.Success)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, new { }, "application/json"));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.Conflict, new Conflict(Request.RequestUri, res.Message), "application/problem+json"));
                }
            }
            else if (type == "organizer")
            {
                var res = await instance.InsertAdmin(id, GetToken(), body.UserId);
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest, new BadRequest(Request.RequestUri, "The body must have a type with value:'member' or 'admin'"), "application/problem+json"));
        }