public HttpResponseMessage PostMessageThread(MessageThreadPostRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            string UserId = UserService.GetCurrentUserId();

            model.UserId = UserId;

            int threadId = MessageThreadsService.PostMessageThread(model);
            ItemResponse <int> response = new ItemResponse <int>();

            response.Item = threadId;

            //insert into GroupThreads mapping table
            GroupThreadsRequest mapping = new GroupThreadsRequest();

            mapping.GroupId  = model.GroupId;
            mapping.ThreadId = threadId;
            MessageThreadsService.PostGroupThreadsMapping(mapping);

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
        public HttpResponseMessage GetMsgThreads()                                       //no parameters
        {
            List <MessageThreads> threadData = MessageThreadsService.GetAllMsgThreads(); //no parameters

            ItemsResponse <MessageThreads> response = new ItemsResponse <MessageThreads>();

            response.Items = threadData;

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
        public HttpResponseMessage GetThreadsByEventId(int eventId)
        {
            //string senderId = UserService.GetCurrentUserId();

            List <MessageThreads> threadInfo = MessageThreadsService.GetThreadsByEventId(eventId);

            ItemsResponse <MessageThreads> response = new ItemsResponse <MessageThreads>();

            response.Items = threadInfo;

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
        public HttpResponseMessage GetThreadById(int threadId)
        {
            //string senderId = UserService.GetCurrentUserId();

            MessageThreads ThreadInfo = MessageThreadsService.getThreadById(threadId);

            ItemResponse <MessageThreads> response = new ItemResponse <MessageThreads>();

            response.Item = ThreadInfo;


            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
        public HttpResponseMessage GetThreadsByGroupId(int groupId, int pageNumber = 1, int pageSize = 10)
        {
            //string senderId = UserService.GetCurrentUserId();

            List <MessageThreads> threadInfo = MessageThreadsService.GetThreadsByGroupId(groupId, pageNumber, pageSize);

            //for pagination
            PagedItemsResponse <MessageThreads> response = new PagedItemsResponse <MessageThreads>();

            response.Items = threadInfo;

            response.PageNumber = pageNumber;

            response.PageSize = pageSize;

            response.TotalItems = MessageThreadsService.GetPageThreads(groupId);


            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }