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();
}
*/
}
}