/// <summary> /// Get List of students for expulsion grouped by Group /// </summary> /// <returns></returns> public IEnumerable <IGrouping <string, SessionTableOfBothResult> > GetListOfStudentsForExpulsionGroupedByGroup() { List <SessionTableOfBothResult> asListSessionTableOfBothResults = new List <SessionTableOfBothResult>(); foreach (NumberOfSession numberOfSessionItem in NumberOfSessions) { foreach (Group item in Groups) { IEnumerable <Student> studentByGroupQuere = Quere.StudentByGroupQuere(item, Student); IEnumerable <ExamSchedule> examSheduleByGroupQuere = Quere.ExamSheduleByGroupQuere(item, ExamSchedule); IEnumerable <SessionTableExamResult> studentSessionResultExamQuere = Quere.StudentSessionResultExamQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableSetOffResult> studentSessionResultSetOffQuere = Quere.StudentSessionResultSetOffQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableOfBothResult> sessionTableOfBothResultsQuere = Quere.SessionTableOfBothResultsQuere(studentSessionResultExamQuere, studentSessionResultSetOffQuere, numberOfSessionItem); asListSessionTableOfBothResults.AddRange(sessionTableOfBothResultsQuere); } } IEnumerable <SessionTableOfBothResult> sessionTableOfBothResults = asListSessionTableOfBothResults as IEnumerable <SessionTableOfBothResult>; IEnumerable <IGrouping <string, SessionTableOfBothResult> > listOfStudentsForExpulsionQuere = from SessionTableOfBothResult in sessionTableOfBothResults where SessionTableOfBothResult.ExamValue < 40 group SessionTableOfBothResult by SessionTableOfBothResult.NumberOfGroup; return(listOfStudentsForExpulsionQuere); }
/// <summary> /// Save all session result by group to EXCL tables /// </summary> public void SaveAllSessionResultByGroupToEXCLTables() { foreach (Group item in Groups) { IEnumerable <Student> studentByGroupQuere = Quere.StudentByGroupQuere(item, Student); IEnumerable <ExamSchedule> examSheduleByGroupQuere = Quere.ExamSheduleByGroupQuere(item, ExamSchedule); IEnumerable <SessionTableExamResult> studentSessionResultExamQuere = Quere.StudentSessionResultExamQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableSetOffResult> studentSessionResultSetOffQuere = Quere.StudentSessionResultSetOffQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableOfBothResult> sessionTableOfBothResultsQuere = Quere.SessionTableOfBothResultsQuere(studentSessionResultExamQuere, studentSessionResultSetOffQuere); SaveDataToEXCL(sessionTableOfBothResultsQuere, "AllResultsByGroup№" + item.NumberOfGroup); } }
/// <summary> /// Save average minimum maximum value for each group ToEXCL Tables /// </summary> public void SaveAverageMinimumMaximumValueforEachGroupToEXCLTables() { foreach (NumberOfSession numberOfSessionItem in NumberOfSessions) { foreach (Group item in Groups) { //IEnumerable<Group> groupQuere = Quere.GroupQuere() IEnumerable <Student> studentByGroupQuere = Quere.StudentByGroupQuere(item, Student); IEnumerable <ExamSchedule> examSheduleByGroupQuere = Quere.ExamSheduleByGroupQuere(item, ExamSchedule); IEnumerable <SessionTableExamResult> studentSessionResultExamQuere = Quere.StudentSessionResultExamQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableSetOffResult> studentSessionResultSetOffQuere = Quere.StudentSessionResultSetOffQuere(StudentSessionResults, studentByGroupQuere, examSheduleByGroupQuere, item.NumberOfGroup); IEnumerable <SessionTableOfBothResult> sessionTableOfBothResultsQuere = Quere.SessionTableOfBothResultsQuere(studentSessionResultExamQuere, studentSessionResultSetOffQuere, numberOfSessionItem); var minQueres = from SessionTableOfBothResult in sessionTableOfBothResultsQuere let minGroup = sessionTableOfBothResultsQuere.Min(n => n.ExamValue) select minGroup; var minExamValue = minQueres.First(); var maxQueres = from SessionTableOfBothResult in sessionTableOfBothResultsQuere let maxGroup = sessionTableOfBothResultsQuere.Max(n => n.ExamValue) select maxGroup; var maxExamValue = maxQueres.First(); var averageQueres = from SessionTableOfBothResult in sessionTableOfBothResultsQuere let averageGroup = sessionTableOfBothResultsQuere.Average(n => n.ExamValue) select averageGroup; var averageExamValue = averageQueres.First(); SaveMaxMinAvereByGroupBySessionToEXCL(minExamValue, maxExamValue, averageExamValue, "AllResultsByGroup№" + item.NumberOfGroup, "BySession№" + numberOfSessionItem.NumOfSession); } } }