Ejemplo n.º 1
0
        protected override void OnException(ExceptionContext filterContext)
        {
            LogHelper.ErrorLog("", filterContext.Exception);

            filterContext.ExceptionHandled = true;

            base.OnException(filterContext);
            JsonSimpleResponse response = new JsonSimpleResponse();

            if (filterContext.Exception is AbhsException && (filterContext.Exception as AbhsException).ErrorCode < 10000)
            {
                response.ErrorCode = (filterContext.Exception as AbhsException).ErrorCode;
                response.ErrorMsg  = (filterContext.Exception as AbhsException).Message;
            }
            else
            {
                response.ErrorCode = 10000;
                response.ErrorMsg  = "出错了,请联系管理员";
            }

            if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
            {
                //do something
                //filterContext.Result = new Json(new JsonSimpleResponse() { State = false, ErrorMsg = "服务器异常" });

                filterContext.HttpContext.Response.Headers.Add(AbhsProtocolConst.ERROR_HEADER_NAME, response.ErrorCode.ToString());
                filterContext.HttpContext.Response.StatusCode = 500;
                //filterContext.HttpContext.Response.Write(JsonConvert.SerializeObject(response));

                //filterContext.ExceptionHandled = true;
                filterContext.Result = new JsonResult()
                {
                    Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
            else
            {
                if (IsNoLoginError(filterContext))
                {
                    filterContext.Result = new RedirectResult(Url.Action("index", "Login"));
                }
                else
                {
                    filterContext.Result = new RedirectResult(Url.Action("index", "error"));
                }
            }
        }
Ejemplo n.º 2
0
        public ActionResult AddRelation(int subjectId, int relationSubjectId)
        {
            JsonSimpleResponse response = null;

            try
            {
                new SubjectGroupBll().AddRelation(subjectId, relationSubjectId, CurrentUserID);
                response = new SuccessJsonResponse();
            }
            catch (AbhsException ex)
            {
                response           = new JsonSimpleResponse();
                response.State     = false;
                response.ErrorCode = ex.ErrorCode;
                response.ErrorMsg  = ex.Message;
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        public JsonResult SavePracticeResult(string dataStr, StudyTaskTypeEnum taskType)
        {
            try
            {
                JObject data = JsonConvert.DeserializeObject(dataStr) as JObject;

                int studyTaskId = data["id"].Value <int>();
                int useTime     = data["useTime"].Value <int>();
                List <StudentAnswerBase> answers = new List <StudentAnswerBase>();

                JArray jAnswers = data["answers"] as JArray;
                foreach (var jAnswer in jAnswers)
                {
                    var answer = SubjectAnswerObjectBuilder.TranslateAnswer(jAnswer.ToString());
                    answers.Add(answer);
                }

                StudentPracticeBll bll = new StudentPracticeBll();
                bll.SaveResult(
                    GetCurrentUser().StudentId,
                    studyTaskId,
                    useTime,
                    answers,
                    taskType);
                return(Json(new SuccessJsonResponse()));
            }
            catch (AbhsException ex)
            {
                if (ex.ErrorCode == (int)ErrorCodeEnum.StudentTaskStatusInvalid)
                {
                    JsonSimpleResponse res = new JsonSimpleResponse();
                    res.State    = false;
                    res.ErrorMsg = "你已经完成该练习";
                    return(Json(res));
                }
                else
                {
                    throw;
                }
            }
        }
Ejemplo n.º 4
0
        protected override void OnException(ExceptionContext filterContext)
        {
            LogHelper.ErrorLog("", filterContext.Exception);

            filterContext.ExceptionHandled = true;

            base.OnException(filterContext);

            JsonSimpleResponse response = new JsonSimpleResponse();

            response.State = false;
            if (filterContext.Exception is AbhsException && (filterContext.Exception as AbhsException).ErrorCode < 10000)
            {
                response.ErrorCode = (filterContext.Exception as AbhsException).ErrorCode;
                response.ErrorMsg  = (filterContext.Exception as AbhsException).Message;
            }
            else
            {
                response.ErrorCode = 10000;
                response.ErrorMsg  = "出错了,请联系管理员";
            }

            if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
            {
                filterContext.HttpContext.Response.Headers.Add(AbhsProtocolConst.ERROR_HEADER_NAME, response.ErrorCode.ToString());
                filterContext.HttpContext.Response.StatusCode = 500;
                filterContext.Result = new JsonResult()
                {
                    Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
            else
            {
                filterContext.Result = new RedirectResult(Url.Action("index", "error", new { code = response.ErrorCode, msg = response.ErrorMsg }));
            }
        }