public IActionResult Respond(IModelServiceResponse <T> modelServiceResponse)
 {
     if (_responses.ContainsKey(modelServiceResponse.HttpStatusCode))
     {
         return(_responses[modelServiceResponse.HttpStatusCode](modelServiceResponse));
     }
     else
     {
         return(Default(modelServiceResponse));
     }
 }
        protected IActionResult GetResponse(IModelServiceResponse <T> modelServiceResponse, string responseType)
        {
            switch (responseType)
            {
            case ResponseTypes.AJAX:
                return(_AJAXresponder.Respond(modelServiceResponse));

            case ResponseTypes.JSON:
                return(_JSONresponder.Respond(modelServiceResponse));

            default:
                return(_responder.Respond(modelServiceResponse));
            }
        }
        public async Task <IActionResult> DeleteConfirmed(int id, string response = "")
        {
            IModelServiceResponse <Comment> modelServiceResponse = await _commentService.Delete(ControllerContext, id);

            return(GetResponse(modelServiceResponse, response));
        }
        public async Task <IActionResult> Reply([Bind("Text, ParentID")] Comment comment, string response = "")
        {
            IModelServiceResponse <Comment> modelServiceResponse = await _commentService.Reply(ControllerContext, comment);

            return(GetResponse(modelServiceResponse, response));
        }
        public async Task <IActionResult> Edit(int id, string Text, string response = "")
        {
            IModelServiceResponse <Comment> modelServiceResponse = await _commentService.Edit(ControllerContext, id, Text);

            return(GetResponse(modelServiceResponse, response));
        }