using ACLib.P2.AppContext; using ACLib.P2.AppContext.Models; namespace ACLib.P2.v01.Controllers { /// /// Interface Definition /// public interface IStudentManagerP2 { #region Student Information AC_Clients GetClient(string clientName); IEnumerable GetClientById(int? clientId); IEnumerable GetStudentAccommodationTerms(int? appid); /* int GetApplicationIDByStudentID(string studentid); IEnumerable GetStudentAccommodations(int appid); IEnumerable GetStudentAppeals(int appid); IEnumerable AC_StudentLeaves(int appid); IEnumerable AC_StudentComplains(int appid); IEnumerable GetStudentExamDeferrals(int appid); IEnumerable GetStudentNonAcademicMisconducts(int appid); IEnumerable GetStudentConsellings(int appid); float GetMyCredits(int appid); IEnumerable GetStudentsWithCreditsOver(float totalcredits); */ #endregion } /// /// Interface Implementation /// /// public class StudentManagerP2 : IStudentManagerP2 { string constring; private readonly DatabaseContext _context; public StudentManagerP2(DatabaseContext context) { this._context = context; } public AC_Clients GetClient(string clientName) { IEnumerable comtable; comtable = this._context.AC_Clients.Where(u => u.ClientName == clientName); return comtable.FirstOrDefault(); } public IEnumerable GetClientById(int? clientId) { IEnumerable comtable; comtable = _context.AC_Clients.Where(client => client.ID == clientId); return comtable.ToList(); } public IEnumerable GetStudentAccommodationTerms(int? appid) { IEnumerable comtab = Enumerable.Empty(); comtab = _context.AC_StudentAccommodationTerms.Where(u => u.AccommID == appid); return comtab.ToList(); } /* public IEnumerable GetStudentAccommodations(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentAccommodations where ApplicationID=" + appid); } foreach(AC_StudentAccommodations tx in comtab) { tx.AC_StudentAccommodationTerms = GetStudentAccommodationTerms(appid); yield return tx; } } public IEnumerable GetStudentAppeals(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentAppeals where ApplicationID=" + appid); } return comtab; } public IEnumerable AC_StudentLeaves(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentLeaves where ApplicationID=" + appid); } return comtab; } public IEnumerable AC_StudentComplains(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentComplains where ApplicationID=" + appid); } return comtab; } public IEnumerable GetStudentExamDeferrals(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentExamDeferrals where ApplicationID=" + appid); } return comtab; } public IEnumerable GetStudentNonAcademicMisconducts(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_StudentNonAcademicMisconducts where ApplicationID=" + appid); } return comtab; } public IEnumerable GetStudentConsellings(int appid) { IEnumerable comtab = Enumerable.Empty(); using (IDataContext ctx = DataContext.Instance()) { comtab = ctx.ExecuteQuery(System.Data.CommandType.Text, "select * from AC_Consellings where ApplicationID=" + appid); } return comtab; } public float GetMyCredits(int appid) { float credits = 0; string strsql = "select sum(credits) as finalcredits from ( " + " select T1.ApplicationID , sum(T3.CourseCredit) as credits " + " from AC_ApplicantCourse T1 join AC_ClassRun T2 on (T1.ClassID = T2.ClassID) join AC_Courses T3 on (T2.CourseNumber = T3.CourseNumber) " + " where T3.CourseCredit > 0 and T1.Mark >= 50 and(T1.RepeatedCourse = 0 or RepeatedCourse is null) " + " group by ApplicationID " + " UNION " + " select ApplicationID, sum(Credit) as credits from AC_AcademicCourseHistory group by ApplicationID " + " ) G1 " + " where ApplicationID = " + appid + " group by G1.ApplicationID"; try { using (IDataContext ctx = DataContext.Instance()) { credits = ctx.ExecuteScalar(System.Data.CommandType.Text, strsql); } } catch (Exception ex) { return credits; } return credits; } public IEnumerable GetStudentsWithCreditsOver(float totalcredits) { IEnumerable appids = Enumerable.Empty(); string strsql = "select ApplicationID from ( " + "select ApplicationID, sum(credits) as finalcredits from ( " + " select T1.ApplicationID , sum(T3.CourseCredit) as credits " + " from AC_ApplicantCourse T1 join AC_ClassRun T2 on (T1.ClassID = T2.ClassID) join AC_Courses T3 on (T2.CourseNumber = T3.CourseNumber) " + " where T3.CourseCredit > 0 and T1.Mark >= 50 and(T1.RepeatedCourse = 0 or RepeatedCourse is null) " + " group by ApplicationID " + " UNION " + " select ApplicationID, sum(Credit) as credits from AC_AcademicCourseHistory group by ApplicationID " + " ) G1 " + " group by G1.ApplicationID" + ") G2 where finalcredits > =" + totalcredits; try { using (IDataContext ctx = DataContext.Instance()) { appids = ctx.ExecuteQuery(System.Data.CommandType.Text, strsql); } } catch (Exception ex) { return appids; } return appids; } public int GetApplicationIDByStudentID(string studentid) { throw new NotImplementedException(); } */ } }