• 注释习惯


    #region File Header & Copyright Notice
    /*
     * Copyright (C) 2014XXXXXX
     */
    #endregion
    
    using System;
    using System.Threading;
    using System.Windows.Forms;
    using System.ServiceModel;
    using System.ComponentModel;
    
    using Constant;
    using Model;
    using OES.Teacher;
    using Tool;
    
    namespace OES
    {
    
        /// <summary>
        /// This class is used for login.
        /// </summary>
        public partial class FormLogin : Form
        {
            #region Field
    
            private log4net.ILog log = log4net.LogManager.GetLogger(EqualsConst.GetLoggerName);
            public User user = null;
    
            #endregion
    
            #region Constructor
    
            public FormLogin()
            {
                InitializeComponent();
            }
    
            #endregion
    
            #region Private Method
    
            /// <summary>
            /// The processing of btnSubmit.
            /// </summary>
            /// <param name="sender">The source object of event.</param>
            /// <param name="e">The parameter of event.</param>
            private void BtnSubmit_Click(object sender, EventArgs e)
            {
                UserBllService.UserBllClient userBll = new UserBllService.UserBllClient();
    
                if (String.IsNullOrWhiteSpace(this.txtUsername.Text))
                {
                    this.lblLoginResult.Text = Constant.UserException.UserNameIsNull;
                }
                else if (String.IsNullOrWhiteSpace(this.txtPassword.Text))
                {
                    this.lblLoginResult.Text = Constant.UserException.PasswordIsNull;
                }
                else
                {
                    string userName = CheckForParameter.ReplaceSqlChar(this.txtUsername.Text.Trim());
                    string password = CheckForParameter.ReplaceSqlChar(this.txtPassword.Text.Trim());
    
                    try
                    {
                        BackgroundWorker bw = new BackgroundWorker();
                        bw.DoWork += new DoWorkEventHandler(
                            delegate
                            {
                                user = userBll.RetrieveUserByUserName(userName);
                            });
    
                        bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
                            delegate(object obj, RunWorkerCompletedEventArgs arg)
                            {
                                if (arg.Error == null)
                                {
                                    if (null != user && user.Password.Equals(MD5Tool.MD5Tostring(password), StringComparison.InvariantCultureIgnoreCase))
                                    {
                                        this.DialogResult = DialogResult.OK;
                                    }
                                    else
                                    {
                                        this.lblLoginResult.Text = UserException.LoginedFailed;
                                    }
                                }
                                else
                                {
                                    log.Error(arg.Error);
                                    MessageBox.Show(UIException.ConnectionWithWCFFail);
                                }
                            });
    
                        bw.RunWorkerAsync();
                    }
                    catch (FaultException<MyExceptionContainer> myException)
                    {
                        log.Error(myException.Message, myException);
                    }
                    catch (FaultException faultException)
                    {
                        log.Error(faultException.Message, faultException);
                    }
                    catch (Exception exception)
                    {
                        log.Error(exception.Message, exception);
                    }
                }
            }
    
            /// <summary>
            /// The processing of close the form.
            /// </summary>
            /// <param name="sender">The source object of event.</param>
            /// <param name="e">The parameter of event.</param>
            private void BtnCancel_Click(object sender, EventArgs e)
            {
                this.Close();
                this.Dispose();
            }
    
            #endregion
        }
    }
    
    using System.Collections;
    using System.Collections.Generic;
    
    using Model;
    using Constant;
    
    namespace Dal
    {
        /// <summary>
        /// This interface id defined for exam's functions.
        /// </summary>
        public interface IExamDal
        {
            #region Return List
    
            /// <summary>
            /// Gets exam list when first load in take exam.
            /// </summary>
            /// <param name="order">Judge get the exam is finished or not. 0 equals finished ohter equals unfinished.</param>
            /// <returns>Return list of exam</returns>
            IList<Exam> RetrieveExamList(string userName, int order);
    
            /// <summary>
            /// Gets the list of finished exam.
            /// </summary>
            /// <param name="userName">The user's name.</param>
            /// <param name="isFinished">The exam is finished or not.</param>
            /// <param name="keyWord">The search of finished exam key word.</param>
            /// <returns>Returns finished exam list.<ExamFinshed></returns>
            IList<ExamFinished> RetrieveFinishedExamList(string userName, bool isFinished, string keyWord);
    
            /// <summary>
            /// Gets QuestionID list for taking exmaing.
            /// </summary>
            /// <param name="examId">The exam's id.</param>
            /// <returns>Returns the question's id list of the exam.</returns>
            ArrayList RetrieveQuestionIdList(int examId);
    
            /// <summary>
            /// Gets exams by examName key words.
            /// </summary>
            /// <param name="keyWork">The key work.</param>
            /// <returns>Return exam list.</returns>
            IList<Exam> RetrieveUnFinishedExamListByKeyWord(string userName, string keyWork);
    
            /// <summary>
            /// Retrieves exam result.
            /// </summary>
            /// <returns>Returns examreport list.</returns>
            IList<ExamReport> RetrieveExamReportList(Page page);
    
            /// <summary>
            /// Retrieves score by exam id for paging.
            /// </summary>
            /// <see cref="Model.Page"/>
            /// <param name="examId">The id of exam.</param>
            /// <returns>Returns the score list.</returns>
            IList<Score> RetrieveDetailExamScore(Page page, int examId);
    
            /// <summary>
            /// Retrieve score list by exam's id.
            /// </summary>
            /// <param name="examId">The exam's id.</param>
            /// <returns>Returns the list of score.</returns>
            IList<Score> RetrieveScoreByExamId(int examId);
            #endregion
    
            #region Returns Model
    
            /// <summary>
            /// Gets the question by question id.
            /// </summary>
            /// <param name="questionID">The id of the question.</param>
            /// <returns>Returns question model.</returns>
            Question RetrieveQuestionById(int questionId);
    
            /// <summary>
            /// Gets the exam model by exam id.
            /// </summary>
            /// <param name="examId">The id of exam.</param>
            /// <returns>Return exam model.</returns>
            Exam RetrieveExamByExamId(int examId);
    
            /// <summary>
            /// Gets score by userName and examId.
            /// </summary>
            /// <param name="userName">The user's name.</param>
            /// <param name="examId">The exam's id.</param>
            /// <returns>Score</returns>
            Score RetrieveScoreByUserNameAndExamId(string userName, int examId);
    
            #endregion
    
            #region Void
    
            /// <summary>
            /// Records the exam information when user loads exam testing. 
            /// </summary>
            /// <see cref="Model.Score"/>
            int InsertIntoScore(Score score);
    
            /// <summary>
            /// Submits the answer and record use's answer and update score.
            /// </summary>
            /// <see cref="Model.RecordAnswer"/>
            /// <see cref="Model.Score"/>
            int SubmitExam(RecordAnswer recordAnswer, Score score);
    
            /// <summary>
            /// Updates the score information of exam when user click finished button.
            /// </summary>
            /// <see cref="Model.Score"/>
            /// <returns>Returns score model.</returns>
            int SubmitFinishedExam(Score score);
    
            /// <summary>
            /// Submits the exam by system when role loaded.
            /// </summary>
            /// <param name="userName">The user's name.</param>
            int SubmitOutTimeExamByUser(string userName, string roleType);
    
            /// <summary>
            /// Updates score table of currentExamPaperQuestionID column.
            /// </summary>
            /// <see cref="Model.Score"/>
            /// <returns>Return the influence number.</returns>
            int UpdateScoreByTimer(Score score);
    
            #endregion
    
            #region Returns Bool
    
            /// <summary>
            /// Judges the exam is out time or not.
            /// </summary>
            /// <param name="userName">The user's name.</param>
            /// <param name="examId">The exam's id.</param>
            /// <returns>Returns a bool result about the exam is out time or not.</returns>
            bool IsExamOutTime(string userName, int examId);
    
            #endregion
        }
    }
    namespace Dal
    {
        /// <summary>
        /// This class is provided to implement <c>IExamDal</c> methods.
        /// </summary>
        public class ExamDal : IExamDal
        {
    
            #region Returns List
    
            /// <summary>
            /// Gets exam list when first loaded in take exam.
            /// </summary>
            /// <param name="order">Judge get the exam is finished or not. 0 equals finished ohter equals unfinished.</param>
            /// <returns>Return exam list.</returns>
            public IList<Exam> RetrieveExamList(string userName, int order)
            {
                IList<Exam> examList = null;
    
                try
                {
                    string sqlText = null;
    
                    if (order == 0)
                    {
                        sqlText = SqlText.RetrieveUNFinishedExam;
                    }
                    else
                    {
                        sqlText = SqlText.RetrieveToDoExam;
                    }
    
                    SqlParameter[] prams = new SqlParameter[] { 
                            new SqlParameter("@userName", userName),
                        };
                    SqlDataReader sqlDataReader = SqlHelper.ExecureReader(sqlText, prams);
                    examList = new List<Exam>();
                    Exam exam = null;
    
                    while (sqlDataReader.Read())
                    {
                        exam = new Exam();
                        exam.ExamId = (int)sqlDataReader["exam_id"];
                        exam.Name = sqlDataReader["name"].ToString();
                        exam.SingleQuestionScore = (int)sqlDataReader["single_question_score"];
                        exam.Quantity = (int)sqlDataReader["quantity"];
                        exam.TotalScore = (int)sqlDataReader["total_score"];
                        exam.Duration = (int)sqlDataReader["duration"];
                        exam.Description = sqlDataReader["description"].ToString();
                        exam.PassScore = (int)sqlDataReader["pass_score"];
                        examList.Add(exam);
                    }
    
                    SqlHelper.CloseSqlDataReader(sqlDataReader);
                }
                catch (SqlException ex)
                {
                    throw new ExamException(ExamException.RetrieveExamList,ex);
                }
    
                return examList;
            }
  • 相关阅读:
    link和@import的区别
    行内元素、块状元素和行内块元素
    content-box与border-box区别
    实现浏览器内多个标签页之间的通信
    cookie、 sessionStorage 、localStorage之间的区别和使用
    让浏览器识别HTML5规范中的新标签
    HTML5新增及移除的元素
    摇一摇
    WebViewJavascriptBridge
    使用TFHpple解析html
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3775398.html
Copyright © 2020-2023  润新知