Esempio n. 1
0
 /// <summary>
 ///     插入问题
 /// </summary>
 /// <param name="question"></param>
 /// <returns></returns>
 public int Insert(TalQuestionSort questionSort)
 {
     return(sortDB.Insert <TalQuestionSort>(questionSort));
 }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
 /// <summary>
 ///     修改试题库
 /// </summary>
 /// <param name="qSort"></param>
 /// <returns></returns>
 public bool Modify(TalQuestionSort qSort)
 {
     return(sortDB.Modify <TalQuestionSort>(qSort));
 }
Esempio n. 4
0
 /// <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);
 }