/// <summary> /// 插入问题 /// </summary> /// <param name="question"></param> /// <returns></returns> public int Insert(TalQuestionSort questionSort) { return(sortDB.Insert <TalQuestionSort>(questionSort)); }
public JsonResult ImportResultConfig() { try { var file = Request.Files[0]; if (file == null || file.ContentLength == 0) { return(Json(new { result = 0, msg = RetechWing.LanguageResources.Notes.NoteLanguage.PleaseChoose + "Excel" + RetechWing.LanguageResources.TalnetUI.CdeQuestion.File }, "text/html", JsonRequestBehavior.DenyGet)); } string suffix = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower(); if (!(suffix.EndsWith(".xls") || file.FileName.EndsWith(".xlsx"))) { //不是Excel文件 return(Json(new { result = 0, msg = RetechWing.LanguageResources.Notes.NoteLanguage.PleaseChoose + "Excel" + RetechWing.LanguageResources.TalnetUI.CdeQuestion.File }, "text/html", JsonRequestBehavior.DenyGet)); } string path = Server.MapPath("~/UploadFiles/tmp/"); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } var filename = path + Guid.NewGuid() + suffix; file.SaveAs(filename); IWorkbook workbook = Factory.GetWorkbook(filename, System.Globalization.CultureInfo.CurrentCulture); DataSet ds = workbook.GetDataSet(GetDataFlags.FormattedText); if ((ds.Tables.Count < 1) || (!ds.Tables[0].TableName.StartsWith("Sheet1"))) { return(Json(new { result = 0, msg = "Excel" + RetechWing.LanguageResources.TalnetUI.CdeQuestion.LongStr1 }, "text/html", JsonRequestBehavior.DenyGet)); } DataTable dt = ds.Tables[0]; var rows = GetRows(dt); var sorts = _sortManager.GetAllQuestionSortList(); var fsortnames = rows.Select(p => p.FirstSort).Distinct(); foreach (var sortname in fsortnames) { var sortCode = sortname.Substring(0, sortname.IndexOf("-")); var sortName = sortname.Substring(sortname.IndexOf("-") + 1); var sort = sorts.FirstOrDefault(p => (p.SortCode + "-" + p.Title) == sortname); if (sort == null) { sort = new TalQuestionSort() { FatherID = 0, Description = "", IsOther = 0, SortCode = sortCode, LevelPath = sortName, Title = sortName, Status = 0, Weight = 0, SortShow = sortname }; _sortManager.Insert(sort); sorts.Add(sort); } //找一级指标的特征 #region 一级指标的特征 var fsort = rows.FirstOrDefault( p => p.FirstSort == sort.SortCode + "-" + sort.Title && string.IsNullOrEmpty(p.SecondSort) && !string.IsNullOrEmpty(p.HScore) ); if (fsort != null) { TalEvalResultConfig config = new TalEvalResultConfig(); config.QuestionSortId = sort._id; config.Status = 0; config.HightScoreLine = float.Parse(fsort.HScore); config.LowScoreLine = float.Parse(fsort.LScore); config.HightScoreDesc = fsort.HDesc; config.LowScoreDesc = fsort.LDesc; config.TenantId = 0; var oldconfig = _resultConfigManager.GetConfigBySort(sort._id); if (oldconfig == null) { _resultConfigManager.AddConfig(config); } else { config._id = oldconfig._id; _resultConfigManager.UpdateConfig(config); } } //找一级特征的区间 var fintervals = rows.Where(p => p.FirstSort == sort.SortCode + "-" + sort.Title && string.IsNullOrEmpty(p.SecondSort) && string.IsNullOrEmpty(p.HScore) && !string.IsNullOrEmpty(p.IStart) ); var intervals = new List <TalEvalResultInterval>();//记录所有区间 foreach (var finterval in fintervals) { var iv = new TalEvalResultInterval(); iv.QuestionSortId = sort._id; iv.Status = 0; iv.IntervalStart = float.Parse(finterval.IStart); iv.IntervalEnd = float.Parse(finterval.IEnd); iv.Comment = finterval.Comment; iv.Recommend = finterval.Recomm; intervals.Add(iv); } _resultConfigManager.AddIntervals(sort._id, intervals); intervals.Clear(); #endregion #region 二级指标 var ssorts = rows.Where(p => p.FirstSort == sort.SortCode + "-" + sort.Title && !string.IsNullOrEmpty(p.SecondSort) && !string.IsNullOrEmpty(p.HScore)); foreach (var row in ssorts) { var namearr = row.SecondSort.Split('-'); var sort2Code = namearr[1]; var sort2Name = namearr[2]; var sort2 = sorts.FirstOrDefault(p => sort.SortCode + "-" + p.SortCode + "-" + p.Title == row.SecondSort); if (sort2 == null) { sort2 = new TalQuestionSort() { FatherID = sort._id, Description = "", IsOther = 0, SortCode = sort2Code, LevelPath = sort.Title + "\\" + sort2Name, Title = sort2Name, Status = 0, Weight = 0, SortShow = sort2Code + "-" + sort2Name }; _sortManager.Insert(sort2); sorts.Add(sort2); } //二级指标配置 //nsorts.Add(sort2); //找二级指标的区间 var sort2ShowText = sort.SortCode + "-" + sort2.SortCode + "-" + sort2.Title; var fsecondsort = rows.FirstOrDefault(p => p.SecondSort == sort2ShowText && !string.IsNullOrEmpty(p.HScore) ); if (fsecondsort != null) { TalEvalResultConfig config = new TalEvalResultConfig(); config.QuestionSortId = sort2._id; config.Status = 0; config.HightScoreLine = float.Parse(fsecondsort.HScore); config.LowScoreLine = float.Parse(fsecondsort.LScore); config.HightScoreDesc = fsecondsort.HDesc; config.LowScoreDesc = fsecondsort.LDesc; config.TenantId = 0; var oldconfig = _resultConfigManager.GetConfigBySort(sort2._id); if (oldconfig == null) { _resultConfigManager.AddConfig(config); } else { config._id = oldconfig._id; _resultConfigManager.UpdateConfig(config); } } var sintervals = rows.Where(p => p.FirstSort == sort.SortCode + "-" + sort.Title && p.SecondSort == sort2ShowText && !string.IsNullOrEmpty(p.IStart) ); foreach (var sinterval in sintervals) { var iv = new TalEvalResultInterval(); iv.QuestionSortId = sort2._id; iv.Status = 0; iv.IntervalStart = float.Parse(sinterval.IStart); iv.IntervalEnd = float.Parse(sinterval.IEnd); iv.Comment = sinterval.Comment; iv.Recommend = sinterval.Recomm; intervals.Add(iv); } _resultConfigManager.AddIntervals(sort2._id, intervals); intervals.Clear(); } #endregion } return(Json(new { result = 1, msg = RetechWing.LanguageResources.Exam.Exampaper.ImportSuccess }, "text/html", JsonRequestBehavior.DenyGet)); } catch (Exception ex) { LogHelper.WriteLog("导入指标配置失败", ex); return(Json(new { result = 0, msg = RetechWing.LanguageResources.Survey.ExamPaper.Import + RetechWing.LanguageResources.Exam.Question.Question_QuestionManage_Failed }, "text/html", JsonRequestBehavior.DenyGet)); } }
/// <summary> /// 修改试题库 /// </summary> /// <param name="qSort"></param> /// <returns></returns> public bool Modify(TalQuestionSort qSort) { return(sortDB.Modify <TalQuestionSort>(qSort)); }
/// <summary> /// 修改试题库 /// </summary> /// <param name="SortID"></param> /// <param name="qSort"></param> /// <returns></returns> public int ModifyByID(int SortID, TalQuestionSort qSort) { qSort._id = SortID; Modify(qSort); return(SortID); }