public async Task <AnswerResult> AnswerAsync(String accessToken, Int32 questionId, String answer)
        {
            var api    = new QuestionApi();
            var result = await api.AnswerAsync(accessToken, questionId, answer);

            return(result);
        }
        public async Task <AnonymousResult> AnonymousAsync(String access, Int32 questionId)
        {
            var api    = new QuestionApi();
            var result = await api.AnonymousAsync(access, questionId);

            return(result);
        }
        public async Task <FollowingResult> UnFollowAsync(String accessToken, Int32 questionId, String userId)
        {
            var api    = new QuestionApi();
            var result = await api.UnFollowAsync(accessToken, questionId, userId);

            return(result);
        }
        public async Task <InviteResult> Invite(String access, Int32 questionId, String personId)
        {
            var api    = new QuestionApi();
            var result = await api.Invite(access, questionId, personId);

            return(result);
        }
        public async Task <CommentsResult> GetCommentsAsync(String accessToken, String requestUri,
                                                            Boolean autoCache = false)
        {
            var api    = new QuestionApi();
            var result = await api.GetCommentsAsync(accessToken, requestUri, autoCache);

            return(result);
        }
        public async Task <TopicsResult> GetTopicsAsync(String accessToken, Int32 questionId,
                                                        Boolean autoCache = false)
        {
            var api    = new QuestionApi();
            var result = await api.GetTopicsAsync(accessToken, questionId, autoCache);

            return(result);
        }
        public async Task <CreateQuesResult> CreateAsync(String accessToken, Boolean isAnonymous, String topicIds,
                                                         String title, String detail)
        {
            var api    = new QuestionApi();
            var result = await api.CreateAsync(accessToken, isAnonymous, topicIds, title, detail);

            return(result);
        }
        public BaseResponse Deactivate(int id)
        {
            var questions = QuestionApi.Deactivate(id);

            if (questions != null)
            {
                return new BaseResponse()
                       {
                           Data       = questions,
                           StatusCode = (int)HttpStatusCode.OK
                       }
            }
            ;

            return(new BaseResponse()
            {
                Message = QuestionMsg.NotFound,
                StatusCode = (int)HttpStatusCode.NotFound
            });
        }
        public BaseResponse GetAllQuestionsOfUserId(int id)
        {
            var questions = QuestionApi.GetAllQuestionsOfUserId(id);

            if (questions != null)
            {
                return new BaseResponse()
                       {
                           Data       = questions,
                           StatusCode = (int)HttpStatusCode.OK
                       }
            }
            ;

            return(new BaseResponse()
            {
                Message = GlobalMsg.InternalError,
                StatusCode = (int)HttpStatusCode.InternalServerError
            });
        }
        public BaseResponse GetQuestionById(int id)
        {
            var quetion = QuestionApi.GetQuestionById(id);

            if (quetion != null)
            {
                return new BaseResponse()
                       {
                           Data       = quetion,
                           StatusCode = (int)HttpStatusCode.OK
                       }
            }
            ;

            return(new BaseResponse()
            {
                Message = QuestionMsg.NotFound,
                StatusCode = (int)HttpStatusCode.NotFound
            });
        }
        public BaseResponse CreateQuestion(ClientQuestionViewModel newQuestion)
        {
            newQuestion.PostedTime = DateTime.Now;
            var question = QuestionApi.CreateQuestion(newQuestion);

            try
            {
                return(new BaseResponse()
                {
                    Data = question,
                    StatusCode = (int)HttpStatusCode.OK
                });
            }
            catch (Exception e)
            {
                return(new BaseResponse()
                {
                    Message = e.Message,
                    StatusCode = (int)HttpStatusCode.InternalServerError
                });
            }
        }