コード例 #1
0
 public IHttpActionResult updateresult(updateResult updatemodel)
 {
     using (TouNaoEntities tn = new TouNaoEntities())
     {
         if (updatemodel.data.yes)
         {
             TNWZ model = tn.TNWZ.Where(t => t.Num == updatemodel.data.num).OrderByDescending(t => t.CreateDate).ToList()[0];
             model.Result = "正确";
             if (tn.SaveChanges() > 0)
             {
                 return(Json(new { code = 200, msg = "保存成功!" }));
             }
         }
         else
         {
             TNWZ model = tn.TNWZ.Where(t => t.Num == updatemodel.data.num).OrderByDescending(t => t.CreateDate).ToList()[0];
             model.Result        = "正确";
             model.Answer        = AnswerList[updatemodel.data.answer - 1];
             model.HistoryAnswer = model.HistoryAnswer.Trim() + AnswerList[updatemodel.data.answer - 1].Trim();
             if (tn.SaveChanges() > 0)
             {
                 return(Json(new { code = 200, msg = "保存成功!" }));
             }
         }
         return(Json(new { code = 200 }));
     }
 }
コード例 #2
0
        public IHttpActionResult GetAnswerFromBaidu(TNModel paras)
        {
            List <TNWZ> list = new List <TNWZ>();

            using (TouNaoEntities tnwz = new TouNaoEntities())
            {
                list = tnwz.TNWZ.ToList();
                TNWZ dbmodel = list.FirstOrDefault(p => p.Quiz == paras.data.quiz);
                if (dbmodel != null && dbmodel.Result == "正确")
                {
                    saveAnswer(dbmodel.Answer);
                    return(Json(new { code = 200 }));
                }
                if (dbmodel != null)
                {
                    dbmodel.Answer        = GetNewAnswer(dbmodel);
                    dbmodel.HistoryAnswer = dbmodel.HistoryAnswer.Trim() + dbmodel.Answer.Trim();
                    saveAnswer(dbmodel.Answer);
                    if (tnwz.SaveChanges() > 0)
                    {
                        return(Json(new { code = 200, msg = "更新答案成功!" }));
                    }
                }
            }

            #region 清除答案文件
            DirectoryInfo    dir      = new DirectoryInfo("d:\\daan");
            FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //返回目录中所有文件和子目录
            foreach (FileSystemInfo i in fileinfo)
            {
                if (i is DirectoryInfo)            //判断是否文件夹
                {
                    DirectoryInfo subdir = new DirectoryInfo(i.FullName);
                    subdir.Delete(true);          //删除子目录和文件
                }
                else
                {
                    File.Delete(i.FullName);      //删除指定文件
                }
            }
            #endregion

            #region 双答案处理
            var doubleOptions = paras.data.options.ToList().Where(o => o.Contains("、")).ToList();
            if (doubleOptions.Any())
            {
                IsdDoubleOptions = true;
                foreach (string item in paras.data.options)
                {
                    if (item.Contains("、"))
                    {
                        string[] splitList = item.Split('、');
                        SpiltCount.Add(splitList.Length);
                        MultipleOptions.AddRange(splitList);
                    }
                    else
                    {
                        SpiltCount.Add(1);
                        MultipleOptions.Add(item);
                    }
                }
            }
            #endregion

            #region 百度搜索\360搜索--》词频锁定答案
            string[] Searchurl = new[] { "http://www.baidu.com/s?wd={0}&timeout=2", "https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&q={0}" };
            if (!string.IsNullOrEmpty(paras.data.quiz))
            {
                for (int i = 0; i < Searchurl.Length; i++)
                {
                    Searchurl[i] = string.Format(Searchurl[i], paras.data.quiz);
                }
            }
            else
            {
                for (int i = 0; i < Searchurl.Length; i++)
                {
                    Searchurl[i] = string.Format(Searchurl[i], "中国位于哪个大洲?");
                }
            }
            foreach (string items in Searchurl)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(items);
                request.Method      = "Get";
                request.ContentType = "text/html;charset=utf-8";

                string str = "";
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    Stream        stream = response.GetResponseStream();
                    StreamReader  sr     = new StreamReader(stream, Encoding.UTF8);
                    StringBuilder sb     = new StringBuilder();
                    sb.Append(sr.ReadToEnd());
                    str = sb.ToString();
                }
                int strLength = str.Length;
                if (!string.IsNullOrEmpty(str) && paras.data.options.Length > 0)
                {
                    if (!IsdDoubleOptions)
                    {
                        foreach (var item in paras.data.options)
                        {
                            int    result;
                            string strReplace       = str.Replace(item, "");
                            int    strReplaceLength = strReplace.Length;
                            int    diffrent         = strLength - strReplaceLength;
                            int    itemLength       = item.ToString().Length;
                            result = diffrent > 0 ? diffrent / itemLength : 0;
                            if (Is360Search && items.Contains("www.so.com"))
                            {
                                _360Count.Add(result);
                            }
                            else
                            {
                                BaiduCount.Add((result));
                            }
                        }
                    }
                    else
                    {
                        int SpiltSpiltCountLength = 0;
                        for (int j = 0; j < SpiltCount.Count; j++)
                        {
                            int result = 0;
                            for (int i = 0; i < SpiltCount[j]; i++)
                            {
                                string Smallitem        = MultipleOptions[SpiltSpiltCountLength + i];
                                string strReplace       = str.Replace(Smallitem, "");
                                int    strReplaceLength = strReplace.Length;
                                int    diffrent         = strLength - strReplaceLength;
                                int    itemLength       = MultipleOptions[i].ToString().Length;
                                result = (diffrent > 0 ? diffrent / itemLength : 0) + result;
                            }
                            if (Is360Search && items.Contains("www.so.com"))
                            {
                                _360Count.Add(result);
                            }
                            else
                            {
                                BaiduCount.Add((result));
                            }
                            SpiltSpiltCountLength = SpiltCount[j] + SpiltSpiltCountLength;
                        }
                    }
                }
            }
            BaiduMaxIndex = BaiduCount.FindIndex(c => c.Equals(BaiduCount.Max()));
            _360MaxIndex  = _360Count.FindIndex(c => c.Equals(_360Count.Max()));
            #endregion

            #region 百度搜索结果不等于360搜索结果处理
            bool IsEqual = BaiduMaxIndex == _360MaxIndex;
            if (!IsEqual)
            {
                for (int i = 0; i < 4; i++)
                {
                    HebingCount.Add(BaiduCount[i] + _360Count[i]);
                }
                HebingMaxIndes = HebingCount.FindIndex(c => c.Equals(HebingCount.Max()));
            }
            #endregion

            string Answer = IsEqual ? AnswerList[BaiduMaxIndex] : AnswerList[HebingMaxIndes];
            saveAnswer(Answer);


            using (TouNaoEntities tn = new TouNaoEntities())
            {
                var dbmodel = list.FirstOrDefault(p => p.Quiz == paras.data.quiz);
                if (dbmodel == null)
                {
                    TNWZ model = new TNWZ();
                    model.Answer        = Answer;
                    model.Options       = string.Join(",", paras.data.options);
                    model.Quiz          = paras.data.quiz;
                    model.CreateDate    = DateTime.Now;
                    model.Num           = paras.data.num;
                    model.HistoryAnswer = Answer;

                    tn.TNWZ.Add(model);
                    if (tn.SaveChanges() > 0)
                    {
                        return(Json(new { code = 200, msg = "保存成功!" }));
                    }
                }
            }
            return(Json(new { code = 200 }));
        }