Example #1
0
        private int ScoreCallBack(IntPtr usrdata, string record_id, int type, byte[] message, int size)
        {
            string resultStr = String.Empty;

            try
            {
                if (type == SKEGN_MESSAGE_TYPE_JSON)
                {
                    resultStr = Encoding.UTF8.GetString(message);

                    if (!string.IsNullOrEmpty(resultStr))
                    {
                        Log4NetHelper.Info("-----------------------------评分解析-----------------------------");
                        Log4NetHelper.Info(resultStr);
                        Log4NetHelper.Info("-----------------------------评分结束-----------------------------");
                        //6.保存答案
                        UpdateAnswer(resultStr);
                    }
                }
                return(1);
            }
            catch (Exception ex)
            {
                Log4NetHelper.ErrorFormat($"评分失败,ScoreCallBack 异常,Json:{resultStr}", ex);
                Log4NetHelper.Error("再评一次");
                //todo
                if (_isAgain)
                {
                    AutoScore();
                    _isAgain = false;
                }
                else
                {
                    GlobalUser.DoneScore = ScoreType.ScoreFailure; //提交评分 失败了
                }
            }
            finally
            {
                if (OnScoreFinished != null)
                {
                    OnScoreFinished.Invoke();
                }

                //DelEngine();
            }
            return(0);
        }
Example #2
0
        private int ScoreCallBack(IntPtr usrdata, string record_id, int type, byte[] message, int size)
        {
            string resultStr = String.Empty;

            try
            {
                if (type == SKEGN_MESSAGE_TYPE_JSON)
                {
                    resultStr = Encoding.UTF8.GetString(message);

                    if (!string.IsNullOrEmpty(resultStr))
                    {
                        Log4NetHelper.Info("-----------------------------评分解析-----------------------------");
                        Log4NetHelper.Info(resultStr);
                        Log4NetHelper.Info("-----------------------------评分结束-----------------------------");
                        //6.保存答案
                        UpdateAnswer(resultStr);
                    }
                }
                return(1);
            }
            catch (Exception ex)
            {
                ErrMsgLog msgInfo = new ErrMsgLog();
                msgInfo.user      = GlobalUser.USER.Mobile;
                msgInfo.msginfo   = "评分Callback异常";
                msgInfo.error     = ex;
                msgInfo.scoreJson = resultStr;
                msgInfo.isErr     = true;

                //var errStr = $"[user:{GlobalUser.USER?.Mobile},error:{ex},scoreJson: {resultStr}]";
                Log4NetHelper.ErrorFormat(msgInfo.ToJson());
                Log4NetHelper.Error("再评一次");
                //todo
                if (_isAgain)
                {
                    AutoScore();
                    _isAgain = false;
                }
                else
                {
                    GlobalUser.DoneScore = ScoreType.ScoreFailure; //提交评分 失败了

                    if (!GlobalUser.ErrScoreInfo.ContainsKey(ExamScore.WaveFileName))
                    {
                        ExamScore.SubmitNum++;
                        GlobalUser.ErrScoreInfo.Add(ExamScore.WaveFileName, ExamScore);
                    }

                    Log_Data log = new Log_Data();
                    log.log_desc   = Log_Type.PC_Score.ToString();
                    log.log_text   = msgInfo.ToJson();
                    log.log_device = JsonHelper.ToJson(GlobalUser.MACHINEINFO.GetDevice());
                    WebApiProxy.GetHtmlRespInfo(log, ApiType.SysLog, null, "Post");
                }
            }
            finally
            {
                if (OnScoreFinished != null)
                {
                    OnScoreFinished.Invoke();
                }

                //DelEngine();
            }
            return(0);
        }