예제 #1
0
        public ExamDS.exam_exceptionDataTable GetExceptionOccurTime(int userId, int examId)
        {
            ExamManager examManager = new ExamManager();

            ExamDS.exam_exceptionDataTable table = new ExamDS.exam_exceptionDataTable();
            table.Merge(examManager.GetExceptionOccurTime(userId, examId));
            return(table);
        }
예제 #2
0
        //start take exam
        private void StartTest_Click(object sender, EventArgs e)
        {
            ExamDS.exam_exceptionDataTable datatable = examManager.GetExceptionOccurTime(RememberUserParameter.userId, FormPassValue.examId);
            FormPassValue.currentWindowState = this.WindowState;

            //exception
            if (datatable.Rows.Count > 0)
            {
                DateTime exceptiontime;
                var      rs = from dt in datatable select new { dt.occur_time };

                foreach (var item in rs)
                {
                    exceptiontime = item.occur_time;
                }

                //if (DateTime.Now - exceptiontime)
                //whether add exption duration to endtime
                int haveAnsweredNum = questionManager.QueryHaveAnsweredQuestionNumber(RememberUserParameter.userId, FormPassValue.examId);

                //begin from which question
                FormPassValue.questionSerial = haveAnsweredNum + 1;
                this.DialogResult            = DialogResult.OK;
            }
            else
            //normal
            {
                TimeSpan tsNow        = new TimeSpan((DateTime.Now).Ticks);
                TimeSpan tsEffective  = new TimeSpan(effectiveTime.Ticks);
                double   timeInterval = tsEffective.Subtract(tsNow).TotalSeconds;
                bool     result       = examManager.ValidationIsHasTokenExam(RememberUserParameter.userId, FormPassValue.examId);

                if (timeInterval > 0)
                {
                    this.lblHintMessage.Text = ResourceCulture.GetString(HAVE_NOT_START_MESSAGE);
                    this.pnlHint.Visible     = true;
                }
                else if (result == true)
                {
                    this.lblHintMessage.Text = ResourceCulture.GetString(HAVE_TOKEN_EXAM);
                    this.pnlHint.Visible     = true;
                }
                else
                {
                    TimeSpan tsEnd           = new TimeSpan(FormPassValue.endTime.Ticks);
                    double   endTimeInterval = tsNow.Subtract(tsEnd).TotalSeconds;

                    if (endTimeInterval >= 0)
                    {
                        this.lblHintMessage.Text = ResourceCulture.GetString(HAVE_END);
                        this.pnlHint.Visible     = true;
                        return;
                    }

                    this.DialogResult = DialogResult.OK;
                }
            }
        }
예제 #3
0
        private void StartTest_Click(object sender, EventArgs e)
        {
            ExamDS.exam_exceptionDataTable datatable = examManager.GetExceptionOccurTime(RememberSomeParameter.userId, FormPassValue.examId);

            //exception
            if (datatable.Rows.Count > 0)
            {
                DateTime exceptiontime;
                var      rs = from dt in datatable select new { dt.occur_time };

                foreach (var item in rs)
                {
                    exceptiontime = item.occur_time;
                }

                //if (DateTime.Now - exceptiontime)
                //whether add exption duration to endtime
                int haveAnsweredNum = questionManager.QueryHaveAnsweredQuestionNumber(RememberSomeParameter.userId, FormPassValue.examId);

                //begin from which question
                FormPassValue.questionSerial = haveAnsweredNum + 1;
                this.DialogResult            = DialogResult.OK;
            }
            else
            //normal
            {
                TimeSpan tsNow        = new TimeSpan((DateTime.Now).Ticks);
                TimeSpan tsEffective  = new TimeSpan(effectiveTime.Ticks);
                double   timeInterval = tsEffective.Subtract(tsNow).TotalSeconds;

                if (timeInterval > 0)
                {
                    this.lblHintMessage.Text = haveNotStartMessage;
                    this.pnlHint.Visible     = true;
                }
                else
                {
                    TimeSpan tsEnd           = new TimeSpan(FormPassValue.endTime.Ticks);
                    double   endTimeInterval = tsNow.Subtract(tsEnd).TotalSeconds;

                    if (endTimeInterval >= 0)
                    {
                        this.lblHintMessage.Text = haveEndMessage;
                        this.pnlHint.Visible     = true;
                        return;
                    }
                    this.DialogResult = DialogResult.OK;
                }
            }
        }