public async Task <ActionResult <ExamInfo> > PostExamInfo(ExamInfo examInfo)
        {
            _context.ExamInfos.Add(examInfo);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetExamInfo", new { id = examInfo.Id }, examInfo));
        }
        public async Task <IActionResult> Edit(int id, [Bind("ExamId,ExamName")] ExamInfo examInfo)
        {
            if (id != examInfo.ExamId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(examInfo);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ExamInfoExists(examInfo.ExamId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(examInfo));
        }
        public async Task <IActionResult> PutExamInfo(int id, ExamInfo examInfo)
        {
            if (id != examInfo.Id)
            {
                return(BadRequest());
            }

            _context.Entry(examInfo).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ExamInfoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Beispiel #4
0
        public ActionResult Edit(ExamInfo examinfo)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.Entry(examinfo).State = EntityState.Modified;
                    db.SaveChanges();

                    TempData["ok"]      = "ok";
                    TempData["message"] = "<span class=\"color-green\">Successfully Saved!</span>";
                    return(RedirectToAction("Index"));
                }

                ViewBag.Class_Id = new SelectList(db.ClassInfoes.ToList(), "Id", "ClassName", examinfo.ClassId);
                ViewBag.Status   = StatusList();
                ViewBag.Publish  = PublistStatus();

                return(View(examinfo));
            }
            catch (Exception ex)
            {
                TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>";
                return(RedirectToAction("Index"));
            }
        }
Beispiel #5
0
        public ExamInfo GenerateProcessItems(ExamOption selection)
        {
            ExamInfo exameInfo = new ExamInfo();

            if (string.IsNullOrWhiteSpace(selection.columnName))
            {
                throw new Exception("Error: course name is not decided.");
            }

            string sqlQuery = "Select * from dbo." + selection.tableName + " Where CourseName = N'" + selection.columnName + "'";

            if (selection.genType == ExamItemGenerateType.RandomSelection)
            {
                sqlQuery = "SELECT TOP " + selection.count.ToString() + " * FROM dbo." + selection.tableName + " Where CourseName = N'" + selection.columnName + "' ORDER BY NEWID()";
            }

            exameInfo.courseName          = selection.courseName;
            exameInfo.columnName          = selection.columnName;
            exameInfo.description         = selection.description;
            exameInfo.dispType            = selection.dispType;
            exameInfo.quitType            = selection.quitType;
            exameInfo.askBackLimitTimes   = selection.askbackTimeLimitation;
            exameInfo.items               = GenerateProcessItems(sqlQuery);
            exameInfo.summerizerClassName = selection.summerizerClassName;
            exameInfo.quitMessage         = selection.quitMessage;
            exameInfo.restartMessage      = selection.restartMessage;

            return(exameInfo);
        }
        public async Task <ExamInfo> Create(ExamInfo entity)
        {
            return(await this.connection.QueryFirstAsync <ExamInfo>(
                       @"INSERT INTO ExamInfos (AttestationId, Date, StudentId, Score, Level) 
					 VALUES(@AttestationId, @Date, @StudentId, @Score, @Level);
                          SELECT * FROM ExamInfos where Id = LAST_INSERT_ID();",
                       entity));
        }
Beispiel #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            ExamInfo examinfo = db.ExamInfoes.Find(id);

            db.ExamInfoes.Remove(examinfo);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public string GetSummary(ExamProcessContext processContext, ExamInfo examInfo)
        {
            int currentIndex = processContext.index;

            int correctNumber = 0;
            int totalNumber   = 0;
            int totalScore    = 0;
            int userScore     = 0;

            string error = "";

            for (int i = 0; i < currentIndex; i++)
            {
                string userAnswer    = processContext.collectedUserAnswer[i];
                string correctAnswer = examInfo.items[i].answer;

                int score = examInfo.items[i].score;

                if (userAnswer.Trim().ToLower() == correctAnswer.Trim().ToLower())
                {
                    correctNumber++;
                    userScore += score;
                }
                else
                {
                    string[] tmps = correctAnswer.Trim().ToLower().Split(';');
                    if (tmps.Length > 1)
                    {
                        Array.Sort(tmps);
                        string correctMultipleAnswer = string.Join("", tmps);
                        tmps = userAnswer.Trim().ToLower().Split(' ');
                        Array.Sort(tmps);
                        string userMultipleAnswer = string.Join("", tmps);
                        if (userMultipleAnswer == correctMultipleAnswer)
                        {
                            correctNumber++;
                            userScore += score;
                            break;
                        }
                    }
                    error += this.info.SingleItemTemplate.Replace("${QUESTION}", examInfo.items[i].question).Replace("${USER_ANSWER}", userAnswer).Replace("${CORRECT_ANSWER}", correctAnswer);
                    //"Questions: " + examInfo.items[i].question + ". Answers: " + userAnswer + ". [X]  " + "Correct answers " + correctAnswer + "\r\n";
                }
                totalNumber++;
                totalScore += score;
            }

            string result = this.info.SummeryTemplate.Replace("${TOTAL_NUMBER}", totalNumber.ToString()).Replace("${CORRECT_NUMBER}", correctNumber.ToString()).Replace("${USER_SCORE}", userScore.ToString()).Replace("${TOTAL_SCORE}", totalScore.ToString());

            //"Totally " + totalNumber.ToString() + " questions, and " + correctNumber.ToString() + "correct answers, scores(" + userScore.ToString() + "/" + totalScore.ToString() + ").\r\n";

            if (examInfo.dispType == ExamItemAnswerDisplayType.AllInSummary)
            {
                result += error;
            }

            return(result);
        }
        public ActionResult GetExamInfo(stId2 info)
        {
            ExamInfo result = StudentExaminationPaperbll.GetExamInfo(info.Id1, info.Id2);
            var      res    = new ConfigurableJsonResult();

            res.Data = result;
            HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");
            return(res);
        }
        public async Task <IActionResult> Create([Bind("ExamId,ExamName")] ExamInfo examInfo)
        {
            if (ModelState.IsValid)
            {
                _context.Add(examInfo);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(examInfo));
        }
        public string GetSummary(ExamProcessContext processContext, ExamInfo examInfo)
        {
            string reviewContext = Utils.Utils.ReadEmbeddedResourceFile("Education.Engine.Res.dicsreviews.json");
            Dictionary <string, DICSReviewInfo> reviewDict = JsonConvert.DeserializeObject <Dictionary <string, DICSReviewInfo> >(reviewContext);

            Dictionary <string, int> examResults = new Dictionary <string, int>();

            foreach (string key in reviewDict.Keys)
            {
                examResults.Add(key, 0);
            }

            int index = 0;

            foreach (string result in processContext.collectedUserAnswer)
            {
                Dictionary <string, string> answerDict = GetAnswerDict(examInfo.items[index].answer);
                if (answerDict != null)
                {
                    string realResult = answerDict[result.Trim()];

                    examResults[realResult] += 1;
                }
            }

            int averageNum = examInfo.items.Count / examResults.Count;

            string resp = "你的答案是:";

            string subResp    = "";
            int    featureNum = 0;
            string featureStr = "";

            foreach (string key in examResults.Keys)
            {
                int num = examResults[key];

                resp += key + " " + num.ToString() + "; ";

                if (num > averageNum)
                {
                    featureNum++;
                    featureStr += key + ",";
                    subResp    += reviewDict[key].Name + "\r\n" + reviewDict[key].Description + "\r\n";
                }
            }

            resp += "\r\n你的答案中有" + featureNum.ToString() + "项得分超过" + averageNum.ToString() + "。所以你具备" + featureNum.ToString() + "项特征: \r\n" + subResp;

            return(resp);
        }
Beispiel #12
0
        public HttpResponseMessage GetExam()
        {
            var eInfos = MongoDbHelper.QueryBy <E_Info>(DbName.E_Info, w => w.IsDel == 0);

            eInfos = eInfos.OrderByDescending(o => o.pt).ToList();
            if (eInfos.Count == 0)
            {
                return(ResultHelper.OK(new List <string>()));
            }
            List <ExamInfo> es = new List <ExamInfo>();

            foreach (var eInfo in eInfos)
            {
                ExamInfo e = new ExamInfo();
                e.ID           = eInfo._id.ToString();
                e.PublishID    = eInfo.ppid;
                e.PublishTime  = eInfo.pt;
                e.PublishName  = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid) == null ? "未知" : MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid).pnm;
                e.ExamName     = eInfo.enm;
                e.StuStartTime = eInfo.sst;
                e.StuEndTime   = eInfo.set;
                e.TchStartTime = eInfo.tst;
                e.TchEndTime   = eInfo.tet;
                e.StuConfirm   = eInfo.stcfm;
                e.TchConfirm   = eInfo.tchcfm;
                e.ButtonState  = eInfo.btstate;
                e.StuStart     = Function.ConvertDateI(DateTime.Now) > eInfo.sst ? 1 : 0;
                e.TchStart     = Function.ConvertDateI(DateTime.Now) > eInfo.tst ? 1 : 0;
                e.StuEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.set ? 1 : 0;
                e.TchEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.tet ? 1 : 0;
                if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst)
                {
                    e.IsScan = 0;
                }
                else
                {
                    e.IsScan = 1;
                }
                foreach (var item in eInfo.sbs)
                {
                    e.subNames.Add(item._id, item.sbnm);
                }
                foreach (var item in eInfo.stps)
                {
                    e.stuTypes += item.tp + ",";
                }
                e.stuTypes = e.stuTypes.Remove(e.stuTypes.Length - 1);
                es.Add(e);
            }
            return(ResultHelper.OK(es));
        }
Beispiel #13
0
        // GET: /ExamInfo/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ExamInfo examinfo = db.ExamInfoes.Find(id);

            if (examinfo == null)
            {
                return(HttpNotFound());
            }
            return(View(examinfo));
        }
        public async Task <ExamInfo> Update(ExamInfo entity)
        {
            return(await this.connection.QueryFirstAsync <ExamInfo>(
                       @"UPDATE ExamInfos
                           SET AttestationId = @AttestationId,
                           Date = @Date,
                           StudentId = @StudentId,
                           Score = @Score,
                           Level = @Level
                        WHERE Id = @id;

                        SELECT * FROM ExamInfos where Id = @id",
                       entity));
        }
Beispiel #15
0
        public HttpResponseMessage SelectExam([FromBody] ExamID m)
        {
            if (m == null)
            {
                return(ResultHelper.Failed("类容不能为空"));
            }
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未找到该次考试信息"));
            }
            ExamInfo e = new ExamInfo();

            e.ID           = eInfo._id.ToString();
            e.PublishID    = eInfo.ppid;
            e.PublishTime  = eInfo.pt;
            e.PublishName  = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid) == null ? "未知" : MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid).pnm;
            e.ExamName     = eInfo.enm;
            e.StuStartTime = eInfo.sst;
            e.StuEndTime   = eInfo.set;
            e.TchStartTime = eInfo.tst;
            e.TchEndTime   = eInfo.tet;
            e.StuConfirm   = eInfo.stcfm;
            e.TchConfirm   = eInfo.tchcfm;
            e.ButtonState  = eInfo.btstate;
            e.StuStart     = Function.ConvertDateI(DateTime.Now) > eInfo.sst ? 1 : 0;
            e.TchStart     = Function.ConvertDateI(DateTime.Now) > eInfo.tst ? 1 : 0;
            e.StuEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.set ? 1 : 0;
            e.TchEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.tet ? 1 : 0;
            if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst)
            {
                e.IsScan = 0;
            }
            else
            {
                e.IsScan = 1;
            }
            foreach (var item in eInfo.sbs)
            {
                e.subNames.Add(item._id, item.sbnm);
            }
            foreach (var item in eInfo.stps)
            {
                e.stuTypes += item.tp + ",";
            }
            e.stuTypes = e.stuTypes.Remove(e.stuTypes.Length - 1);
            return(ResultHelper.OK(e));
        }
Beispiel #16
0
        public HttpResponseMessage EditExam([FromBody] ExamInfo m)
        {
            if (m == null)
            {
                return(ResultHelper.Failed("类容不能为空"));
            }
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未找到该次考试信息"));
            }
            eInfo.tet = m.TchEndTime;
            eInfo.set = m.StuEndTime;
            eInfo.enm = m.ExamName;
            if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst)//考试还没开始导入
            {
                eInfo.sst    = m.StuStartTime;
                eInfo.tst    = m.TchStartTime;
                eInfo.stcfm  = 0;
                eInfo.tchcfm = 0;
                eInfo.sbs    = new List <Sb>();
                eInfo.stps   = new List <Stp>();
                foreach (var item in m.subNames)
                {
                    Sb sb = new Sb();
                    sb._id   = item.Key;
                    sb.sbnm  = item.Value;
                    sb.stct  = 0;
                    sb.tchct = 0;
                    eInfo.sbs.Add(sb);
                }
                string[] stuType = m.stuTypes.Split(',');
                foreach (var item in stuType)
                {
                    Stp sTp = new Stp()
                    {
                        _id = ObjectId.GenerateNewId(), tp = item
                    };
                    eInfo.stps.Add(sTp);
                }
            }
            MongoDbHelper.ReplaceOne(m.ID, eInfo, DbName.E_Info);
            return(ResultHelper.OK());
        }
Beispiel #17
0
            public static ExamInfo fromJson(dynamic array)
            {
                var newItem = new ExamInfo();

                newItem.AScanNum   = array["ascan_num"];
                newItem.BScanNum   = array["bscan_num"];
                newItem.DataDir    = array["data_dir"];
                newItem.ExamDate   = array["exam_date"];
                newItem.ExamTime   = array["exam_time"];
                newItem.Horizontal = array["horizontal"];
                newItem.Overlap    = array["overlap"];
                newItem.RangeX     = array["range_x"];
                newItem.RangeY     = array["range_y"];
                newItem.Side       = array["side"] == "OD" ? EyeSide.OD : EyeSide.OS;
                newItem.Ssi        = array["ssi"];

                return(newItem);
            }
        public string GetSummary(ExamProcessContext context, ExamInfo examInfo)
        {
            if (string.IsNullOrWhiteSpace(examInfo.summerizerClassName))
            {
                return("");
            }

            string     className  = examInfo.summerizerClassName;
            Type       type       = Type.GetType(examInfo.summerizerClassName);
            Object     obj        = Activator.CreateInstance(type);
            MethodInfo methodInfo = type.GetMethod("GetSummary");

            object[] parametersArray = new object[] { context, examInfo };

            string respStr = (string)methodInfo.Invoke(obj, parametersArray);

            return(respStr);
        }
Beispiel #19
0
        // GET: /ExamInfo/Edit/5
        public ActionResult Edit(int?id)
        {
            try
            {
                ExamInfo examinfo = db.ExamInfoes.Find(id);
                ViewBag.Class_Id = new SelectList(db.ClassInfoes.ToList(), "Id", "ClassName", examinfo.ClassId);

                ViewBag.Status  = StatusList();
                ViewBag.Publish = PublistStatus();

                return(View(examinfo));
            }
            catch (Exception ex)
            {
                TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>";
                return(RedirectToAction("Index"));
            }
        }
        /// <summary>
        /// 获取考试信息(包括学生信息 和学生答题情况)
        /// </summary>
        /// <param name="ExercisesTestId"></param>
        /// <param name="StudentId"></param>
        /// <returns></returns>
        public ExamInfo GetExamInfo(int ExercisesTestId, int StudentId)
        {
            StudentExamState?stateinfo = StudentExamStatebll.GetStudentExamState(StudentId, ExercisesTestId);
            ExercisesTest?   info1     = ExercisesTestbll.GetExercisesTest(ExercisesTestId);
            StudentExam?     info2     = StudentExambll.GetStudentExam(StudentId);
            ExamInfo         info      = new ExamInfo();

            if (info1 != null && info2 != null)
            {
                info.ExercisesDescribe = info1.Value.ExercisesDescribe;
                info.ExercisesName     = info1.Value.ExercisesName;
                info.ExercisesTestId   = info1.Value.ExercisesTestId;
                info.TotleScore        = ExercisesTestbll.GetExercisesTestTotleScore(info.ExercisesTestId);
                info.IsOver            = info1.Value.IsOver;
                if (stateinfo != null)
                {
                    info.State = stateinfo.Value.State;
                }
                else
                {
                    info.State = 0;
                }


                info.StudentExamId = info2.Value.StudentExamId;
                info.StudentName   = info2.Value.StudentName;
                info.StudentNumber = info2.Value.StudentNumber;
                info.StudentScore  = StudentExambll.GetStudentScore(info.StudentExamId, info.ExercisesTestId);
                info.ListExamTitle = GetExamTitleInfo(info.ExercisesTestId, info.StudentExamId);
            }


            return(info);

//            string strSql = @"select a.ExercisesTestId,a.ExercisesName,a.ExercisesDescribe,c.StudentExamId,c.StudentNumber,c.StudentName from ExercisesTest a
//                            left join StudentExaminationPaper b on a.ExercisesTestId=b.ExercisesTestId
//                            left join StudentExam c on b.StudentExamId=c.StudentExamId
//                            where a.ExercisesTestId=@ExercisesTestId and c.StudentExamId=@StudentExamId";
//            return DataTableToExamInfo(DBFactory.GetDB(DBType.SQLITE, m_strConn).ExecuteStrSql(strSql, new DbParameter[]{
//                new SQLiteParameter(){  Value=ExercisesTestId, ParameterName="@ExercisesTestId"},
//                new SQLiteParameter(){  Value=StudentId, ParameterName="@StudentExamId"}
//            }));
        }
Beispiel #21
0
        private void BtnGenerate_Click(object sender, EventArgs e)
        {
            var info = _candidateRepository.Get(_info.FirstName, _info.LastName);

            if (info == null)
            {
                Helper.Logger.Error($"Podaci o kandidatu: {_info.FirstName} {_info.LastName} ne mogu biti nadjeni");
                MessageBox.Show($"Podaci o kandidatu: {_info.FirstName} {_info.LastName} ne mogu biti nadjeni");
                Close();

                return;
            }

            var exam = new ExamInfo
            {
                Id       = Guid.NewGuid().ToString("N"),
                Category = txtCategory.Text.Trim(),
                TakenOn  = dtpTakenOn.Value,
                IncludesTrafficRegulationsTest = chxIncludesTrafficRegulationTest.Checked,
                IncludesFirstAidTest           = chxIncludesFirstAidTest.Checked,
                IncludesDrivingTest            = chxIncludesDrivingTest.Checked,
                Day        = cbxExamDay.SelectedItem.ToString(),
                Location   = txtLocation.Text.Trim(),
                Instructor = _instructorRepository.Get(cbxInstructors.SelectedItem.ToString())
            };

            info.Exams.Add(exam);

            Helper.CreateExamForm(Helper.GetPdfTemplateLocation(), _info, exam);

            _candidateRepository.Update(info);


            SharedViewLogic.LoadCandidatesTree(_treeCandidates, _candidateRepository);

            var selectedNode = _treeCandidates.Nodes.Find(info.LastName.First().ToString(), false).FirstOrDefault();

            SharedViewLogic.LoadCandidatesGrid(_dgvCandidates, selectedNode?.Nodes ?? (IEnumerable)Enumerable.Empty <TreeNode>());
            SharedViewLogic.LoadExamHistory(info.Exams ?? Enumerable.Empty <ExamInfo>(), _dgvExamHistory);

            Close();
        }
        private ExamInfo DataTableToExamInfo(DataTable dt)
        {
            ExamInfo info = new ExamInfo();

            if (dt != null && dt.Rows.Count > 0)
            {
                info.ExercisesDescribe = dt.Rows[0]["ExercisesDescribe"] == DBNull.Value ? "" : dt.Rows[0]["ExercisesDescribe"].ToString();
                info.ExercisesTestId   = dt.Rows[0]["ExercisesTestId"] == DBNull.Value ? -100 : Convert.ToInt32(dt.Rows[0]["ExercisesTestId"]);
                info.ExercisesName     = dt.Rows[0]["ExercisesName"] == DBNull.Value ? "" : dt.Rows[0]["ExercisesName"].ToString();
                info.StudentExamId     = dt.Rows[0]["StudentExamId"] == DBNull.Value ? -100 : Convert.ToInt32(dt.Rows[0]["StudentExamId"]);
                info.StudentName       = dt.Rows[0]["StudentName"] == DBNull.Value ? "" : dt.Rows[0]["StudentName"].ToString();
                info.StudentNumber     = dt.Rows[0]["StudentNumber"] == DBNull.Value ? "" : dt.Rows[0]["StudentNumber"].ToString();
                info.StudentScore      = StudentExambll.GetStudentScore(info.StudentExamId, info.ExercisesTestId);
                info.TotleScore        = ExercisesTestbll.GetExercisesTestTotleScore(info.ExercisesTestId);

                info.ListExamTitle = GetExamTitleInfo(info.ExercisesTestId, info.StudentExamId);
            }


            return(info);
        }
Beispiel #23
0
        private static ExamInfo ReadInput()
        {
            var examInfo = new ExamInfo();

            var ntab = Console.ReadLine().Split();

            examInfo.Problems             = new ProblemInfo[int.Parse(ntab[0])];
            examInfo.Time                 = int.Parse(ntab[1]);
            examInfo.EasyProblemSolveTime = int.Parse(ntab[2]);
            examInfo.HardProblemSolveTime = int.Parse(ntab[3]);

            foreach (var isHard in Console.ReadLine().Split().Select((value, i) => new { value, i }))
            {
                examInfo.Problems[isHard.i].IsHard = isHard.value == "1";
            }

            foreach (var mandatorySolveTime in Console.ReadLine().Split().Select((value, i) => new { value, i }))
            {
                examInfo.Problems[mandatorySolveTime.i].MandatorySolveTime = int.Parse(mandatorySolveTime.value);
            }

            return(examInfo);
        }
Beispiel #24
0
        public ActionResult Create(ExamInfo examinfo)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //int maxId =db.ExamInfoes.Max(t => t.Id);

                    //if (maxId == null)
                    //    maxId = 1;
                    //else
                    //    maxId += 1;

                    //examinfo.Id =Convert.ToInt32(maxId);

                    examinfo.EntryBy   = User.Identity.Name;
                    examinfo.EntryDate = DateTime.Today;

                    examinfo.AuthorizedBy   = User.Identity.Name;
                    examinfo.AuthorizedDate = DateTime.Today;

                    db.ExamInfoes.Add(examinfo);
                    db.SaveChanges();

                    TempData["ok"]      = "ok";
                    TempData["message"] = "<span class=\"color-green\">Successfully Saved!</span>";
                }

                return(View(examinfo));
            }
            catch (Exception ex)
            {
                TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>";
            }

            return(RedirectToAction("Index"));
        }
Beispiel #25
0
        //取得考試資訊
        public ExamInfo GetInfo(string ClassNo)
        {
            ExamInfo  examInfo = new ExamInfo();
            string    sErrMsg  = string.Empty;
            DataTable dt       = new DataTable();
            DBUtility sqlObj   = null;

            sqlObj = new DBUtility();
            sqlObj.StoreProcedureName = "SP_Qry_Exam";
            sqlObj.SetupSqlCommand(ref sErrMsg);
            sqlObj.SqlCmd.Parameters["@ClassNo"].Value = ClassNo;
            try
            {
                sqlObj.SqlConn.Open();
                SqlDataAdapter da = new SqlDataAdapter(sqlObj.SqlCmd);
                da.Fill(dt);
                examInfo.ExamID         = dt.Rows[0]["ExamID"].ToString();
                examInfo.ExamName       = dt.Rows[0]["ExamName"].ToString();
                examInfo.ExamPaperName  = dt.Rows[0]["ExamPaperName"].ToString();
                examInfo.ExamTotalScore = dt.Rows[0]["ExamTotalScore"].ToString();
                examInfo.ExamPassScore  = dt.Rows[0]["ExamPassScore"].ToString();
                examInfo.ExamTime       = dt.Rows[0]["ExamTime"].ToString();
                examInfo.ExamCount      = dt.Rows[0]["ExamCount"].ToString();
                int time = Convert.ToInt32(dt.Rows[0]["ExamTimeInt"]) * 60;
                examInfo.ExamTimeString = (time / 3600).ToString("00") + ":" + (time % 3600 / 60).ToString("00") + ":" + (time % 3600 % 60).ToString("00");
                examInfo.ExamTimeInt    = Convert.ToInt32(dt.Rows[0]["ExamTimeInt"]);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sqlObj.SqlConn.Close();
            }
            return(examInfo);
        }
 public void Insert(ExamInfo entity)
 {
     _examInfoDAL.Add(entity);
 }
Beispiel #27
0
        public string HandleMessage(string userId, string userInput, ref EEContext eContext)
        {
            if (eContext.GetType() != typeof(ExamContext))
            {
                eContext = new ExamContext(userId);
            }

            ExamContext context = (ExamContext)eContext;

            ExamProcessor processor = new ExamProcessor();

            string            respStr = null;
            ExamSelectionInfo sInfo   = sStore.GetSelectionInfo();
            Dictionary <string, ExamOption> selectionOptionMap = sStore.GetSelectionMap();
            ExamInfo info = null;

            switch (context.stage)
            {
            case StageType.Init:
                respStr = sInfo.optionMessage + "\r\n";
                foreach (string key in selectionOptionMap.Keys)
                {
                    respStr += "(" + key + ")" + selectionOptionMap[key].courseName + " ";
                }

                context.stage = StageType.Start;
                break;

            case StageType.Start:

                bool isMatched = Utils.Utils.IsRegexMatched(sInfo.optionRegex, userInput);

                if (isMatched)
                {
                    if (selectionOptionMap.ContainsKey(userInput))
                    {
                        ExamOption       option       = selectionOptionMap[userInput];
                        ExamPreProcessor preProcessor = new ExamPreProcessor();
                        info = preProcessor.GenerateProcessItems(option);
                        eStore.SetExamInfo(userId, info);

                        respStr       = info.courseName + "\r\n" + (string.IsNullOrWhiteSpace(info.description)?"":(info.description + "\r\n")) + info.items[context.processContext.index].question;
                        context.stage = StageType.InProcess;
                    }
                    else
                    {
                        throw new Exception("Option " + userInput + " is not available.");
                    }
                }
                else
                {
                    respStr = sInfo.askbackMessage + "\r\n" + sInfo.optionMessage;
                    context.selectContext.askbackTime++;
                }
                break;

            case StageType.InProcess:
                info    = eStore.GetExamInfo(userId);
                respStr = processor.ProcessItem(userId, userInput, ref context, ref info);
                break;

            case StageType.Paused:
                info          = eStore.GetExamInfo(userId);
                respStr       = info.restartMessage;
                context.stage = StageType.Restarted;
                break;

            case StageType.Restarted:
                info = eStore.GetExamInfo(userId);
                if (userInput.Trim().ToLower() != "y")
                {
                    context.processContext = new ExamProcessContext();
                }
                respStr       = processor.ProcessItem(userId, userInput, ref context, ref info);
                context.stage = StageType.InProcess;
                break;
            }

            if (context.stage == StageType.Completed)
            {
                cStore.RemoveContext(userId);
                eStore.RemoveExamInfo(userId);
            }
            else
            {
                if (context.stage == StageType.Paused)
                {
                    context.processContext.askbackTime = 0;
                }

                cStore.SetContext(userId, context);
            }

            return(respStr);
        }
        private IExamInfo CreateExamInfo(DataRow examInfoRow, IPatientInfo patientInfo)
        {
            var      examTime = (DateTime)examInfoRow["ExamDate"];
            ExamInfo examInfo = new ExamInfo((PatientInfo)patientInfo, examInfoRow["ExamId"].ToString(), examTime)
            {
                Comment         = examInfoRow["Comment"].ToString(),
                ExtraInfo       = examInfoRow["ExtraInfo"].ToString(),
                AccessionNumber = examInfoRow["AccessionNumber"].ToString(),

                Operator            = examInfoRow["Operator"].ToString(),
                PerformingPhysician = examInfoRow["ExamPhysician"].ToString(),
                ReferringPhysician  = examInfoRow["PerfPhysician"].ToString(),
            };

            var eddValue = examInfoRow["OBInfo_EDDByLMP"];
            var gaValue  = examInfoRow["OBInfo_GAByLMP"];

            if (eddValue != DBNull.Value && gaValue != DBNull.Value)
            {
                var edd          = (DateTime)eddValue;
                var ga           = (int)gaValue;
                var total        = (edd.ToLocalTime().Date - examTime.ToLocalTime().Date).Days + ga;
                var flags        = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly;
                var gaConstraint = examInfo.OBInfo.GetType().GetField("_gaConstraint", flags);
                if (gaConstraint != null)
                {
                    var constraintObj = gaConstraint.GetValue(examInfo.OBInfo);
                    var eddFactor     = constraintObj.GetType().GetField("_eddFactor", flags);
                    if (eddFactor != null)
                    {
                        eddFactor.SetValue(constraintObj, total);
                    }
                }
            }

            if (examInfoRow["GeneralInfo_Height"] != DBNull.Value)
            {
                examInfo.GeneralInfo.Height = (double)examInfoRow["GeneralInfo_Height"];
            }
            if (examInfoRow["GeneralInfo_Weight"] != DBNull.Value)
            {
                examInfo.GeneralInfo.Weight = (double)examInfoRow["GeneralInfo_Weight"];
            }
            if (examInfoRow["GeneralInfo_BSA"] != DBNull.Value)
            {
                examInfo.GeneralInfo.BSA = (double)examInfoRow["GeneralInfo_BSA"];
            }

            examInfo.GYNInfo.Ectopic = examInfoRow["GYNInfo_Ectopic"].ToString();
            if (examInfoRow["GYNInfo_AB"] != DBNull.Value)
            {
                examInfo.GYNInfo.AB = (int)examInfoRow["GYNInfo_AB"];
            }
            if (examInfoRow["GYNInfo_Gravida"] != DBNull.Value)
            {
                examInfo.GYNInfo.Gravida = (int)examInfoRow["GYNInfo_Gravida"];
            }
            if (examInfoRow["GYNInfo_LMP"] != DBNull.Value)
            {
                examInfo.GYNInfo.LMP = (DateTime)examInfoRow["GYNInfo_LMP"];
            }
            if (examInfoRow["GYNInfo_Para"] != DBNull.Value)
            {
                examInfo.GYNInfo.Para = (int)examInfoRow["GYNInfo_Para"];
            }
            if (examInfoRow["URInfo_PPSACoefficient"] != DBNull.Value)
            {
                examInfo.URInfo.PPSACoefficient = (double)examInfoRow["URInfo_PPSACoefficient"];
            }
            if (examInfoRow["URInfo_PSA"] != DBNull.Value)
            {
                examInfo.URInfo.PSA = (double)examInfoRow["URInfo_PSA"];
            }

            var obInfo = examInfo.OBInfo as PatientOBInfo;

            if (obInfo != null)
            {
                obInfo.GAOrigin = GAOrigins.Convert((int)examInfoRow["OBInfo_GestationalAgeOrigin"]);

                obInfo.Ectopic = examInfoRow["OBInfo_Ectopic"].ToString();
                if (examInfoRow["OBInfo_FetusNumber"] != DBNull.Value)
                {
                    obInfo.FetusNumber = (int)examInfoRow["OBInfo_FetusNumber"];
                }
                if (examInfoRow["OBInfo_AB"] != DBNull.Value)
                {
                    obInfo.AB = (int)examInfoRow["OBInfo_AB"];
                }
                if (examInfoRow["OBInfo_Gravida"] != DBNull.Value)
                {
                    obInfo.Gravida = (int)examInfoRow["OBInfo_Gravida"];
                }
                if (examInfoRow["OBInfo_Para"] != DBNull.Value)
                {
                    obInfo.Para = (int)examInfoRow["OBInfo_Para"];
                }

                if (gaValue != DBNull.Value)
                {
                    obInfo.GestationalDays = (int)gaValue;
                    if (obInfo.GAOrigin == GAOrigins.GA)
                    {
                        //这里转换examInfoRow["OBInfo_GaSourceDate"]到datetime。再做计算
                        obInfo.PrevExamGA = obInfo.GestationalDays - (examInfo.ExamDate.ToLocalTime().Date - ((DateTime)examInfoRow["OBInfo_GaSourceDate"]).ToLocalTime().Date).Days;
                    }
                }

                if (examInfoRow["WorkSheetsXml"] != DBNull.Value)
                {
                    var workSheetXml = (byte[])examInfoRow["WorkSheetsXml"];
                    SetValueForExamWorkSheet(workSheetXml, examInfo);
                    SaveWorksheet(examInfo);
                }
            }

            return(examInfo);
        }
 public void Update(ExamInfo entity)
 {
     _examInfoDAL.Update(entity);
 }
Beispiel #30
0
        //得到检查信息 LY 2015-10-10
        public List <ExamInfo> PsExaminationGetExaminationList(DataConnection pclsCache, string piUserId, string piVisitId)
        {
            List <ExamInfo> list = new List <ExamInfo>();
            CacheCommand    cmd  = null;
            CacheDataReader cdr  = null;

            try
            {
                if (!pclsCache.Connect())
                {
                    return(null);
                }
                cmd = new CacheCommand();
                cmd = Ps.Examination.GetExaminationList(pclsCache.CacheConnectionObject);
                cmd.Parameters.Add("piUserId", CacheDbType.NVarChar).Value  = piUserId;
                cmd.Parameters.Add("piVisitId", CacheDbType.NVarChar).Value = piVisitId;
                cdr = cmd.ExecuteReader();
                while (cdr.Read())
                {
                    string ReportDateShow = "";
                    if (cdr["ReportDate"].ToString() == "9999/1/1 0:00:00")
                    {
                        ReportDateShow = "";
                    }
                    else
                    {
                        ReportDateShow = cdr["ReportDate"].ToString();
                    }
                    ExamInfo NewLine = new ExamInfo();
                    NewLine.VisitId        = cdr["VisitId"].ToString();
                    NewLine.SortNo         = cdr["SortNo"].ToString();
                    NewLine.ExamType       = cdr["ExamType"].ToString();
                    NewLine.ExamTypeName   = cdr["ExamTypeName"].ToString();
                    NewLine.ExamDate       = cdr["ExamDate"].ToString();
                    NewLine.ItemCode       = cdr["ItemCode"].ToString();
                    NewLine.ItemName       = cdr["ItemName"].ToString();
                    NewLine.ExamPara       = cdr["ExamPara"].ToString();
                    NewLine.Description    = cdr["Description"].ToString();
                    NewLine.Impression     = cdr["Impression"].ToString();
                    NewLine.Recommendation = cdr["Recommendation"].ToString();
                    NewLine.IsAbnormalCode = cdr["IsAbnormalCode"].ToString();
                    NewLine.IsAbnormal     = cdr["IsAbnormal"].ToString();
                    NewLine.StatusCode     = cdr["StatusCode"].ToString();
                    NewLine.Status         = cdr["Status"].ToString();
                    NewLine.ReqortDate     = ReportDateShow;
                    NewLine.ImageURL       = cdr["ImageURL"].ToString();
                    NewLine.DeptCode       = cdr["DeptCode"].ToString();
                    NewLine.DeptName       = cdr["DeptName"].ToString();
                    NewLine.Creator        = cdr["Creator"].ToString();
                    NewLine.ExamDateCom    = Convert.ToDateTime(cdr["ExamDate"]).ToString("yyyy-MM-dd HH:mm:ss");
                    list.Add(NewLine);
                }
                return(list);
            }
            catch (Exception ex)
            {
                HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "Ps.Examination.GetExaminationList", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace);
                return(null);
            }
            finally
            {
                if ((cdr != null))
                {
                    cdr.Close();
                    cdr.Dispose(true);
                    cdr = null;
                }
                if ((cmd != null))
                {
                    cmd.Parameters.Clear();
                    cmd.Dispose();
                    cmd = null;
                }
                pclsCache.DisConnect();
            }
        }