/// <summary> /// DealWithStudentAnswer /// </summary> private void DealWithExamResult() { string isPassed = Constants.EMPTY_STR; if (studentGetScore < FormPassValue.passCriteria) { isPassed = NOPASS; } else if (studentGetScore >= FormPassValue.passCriteria) { isPassed = PASS; } // insert student grade and isPassed ExamService.ExamServiceClient examManager = new ExamService.ExamServiceClient(); //if need to query grade randomly, should insert correct quantity examManager.InsertExamResultById(RememberUserParameter.userId, FormPassValue.examId, studentGetScore, isPassed); if (FormPassValue.isNoticeStart == 0) { // update dataGridView dataSource so that avoid student take exam again MyExam form = (this.Owner as FormExamList).GetPnlMyExam(); UserDS.SearchExamDataTable table = examManager.SearchExam(QueryExamState.SortColumn, QueryExamState.SortDirection, form.GetCurrentPage(), form.GetPageSize(), QueryExamState.KeywordState, RememberUserParameter.username); form.GetAllExam().GetDgvExamList().DataSource = DataTableUtils.ConvertDataTable(table); } FormPassValue.isNoticeStart = 0; }
public UserDS.SearchExamDataTable SearchExam(string sortName, string sortDirection, int currentPage, int pageSize, string keyword, string userName) { ExamManager examManager = new ExamManager(); UserDS.SearchExamDataTable table = new UserDS.SearchExamDataTable(); table.Merge(examManager.SearchExam(sortName, sortDirection, currentPage, pageSize, keyword, userName)); return(table); }
//Query Pagination data private void QueryPaginationData() { paginationUtils.TotalRecord = examManager.GetExamCount(RememberUserParameter.username, QueryExamState.KeywordState); UserDS.SearchExamDataTable table = examManager.SearchExam(QueryExamState.SortColumn, QueryExamState.SortDirection, paginationUtils.CurrentPage, paginationUtils.PageSize, QueryExamState.KeywordState, RememberUserParameter.username); this.AllExam.GetDgvExamList().DataSource = DataTableUtils.ConvertDataTable(table); EditDataGridView(); }
//extract repeated code private void DynamicSort(ExamService.ExamServiceClient examManager, string SortColumn, string SortDirection) { QueryExamState.SortColumn = SortColumn; QueryExamState.SortDirection = SortDirection; UserDS.SearchExamDataTable table = examManager.SearchExam(QueryExamState.SortColumn, QueryExamState.SortDirection, ((MyExam)this.Parent).GetCurrentPage(), ((MyExam)this.Parent).GetPageSize(), QueryExamState.KeywordState, RememberUserParameter.username); this.dgvExamList.DataSource = DataTableUtils.ConvertDataTable(table); }
public void TestSearchExam() { UserDS.SearchExamDataTable table = examManager.SearchExam("id", "asc", 1, 10, "unfinished", "test"); foreach (var item in table) { Assert.AreEqual("computer", item.exam_name); Assert.AreEqual(60, item.pass_criteria); } }
public static DataTable ConvertDataTable(UserDS.SearchExamDataTable table) { var tmpTable = from t in table select new { t.No, t.exam_name, t.id, t.effective_time, t.duration, t.pass_criteria, t.score, t.total_score, t.operation }; DataTable tblDatas = new DataTable(tableName); DataColumn dc = null; dc = tblDatas.Columns.Add(noColumn, Type.GetType(systemInt)); dc = tblDatas.Columns.Add(nameColumn, Type.GetType(systemString)); dc = tblDatas.Columns.Add(idColumn, Type.GetType(systemInt)); dc = tblDatas.Columns.Add(effectiveColumn, Type.GetType(systemDateTime)); dc = tblDatas.Columns.Add(duration, Type.GetType(systemInt)); dc = tblDatas.Columns.Add(passCriteria, Type.GetType(systemString)); dc = tblDatas.Columns.Add(totalScore, Type.GetType(systemString)); dc = tblDatas.Columns.Add(operation, Type.GetType(systemString)); foreach (var item in tmpTable) { DataRow newRow = tblDatas.NewRow(); newRow[noColumn] = item.No; newRow[nameColumn] = item.exam_name; newRow[idColumn] = item.id; newRow[effectiveColumn] = item.effective_time; newRow[duration] = item.duration; newRow[passCriteria] = item.pass_criteria.ToString(); if (item.score == -1) { newRow[totalScore] = "-/" + item.total_score; } else { newRow[totalScore] = item.score + "/" + item.total_score; } newRow[operation] = item.operation; tblDatas.Rows.Add(newRow); } return(tblDatas); }