private void ImportClasses(ref OleDbConnection connection)
{
string DetailsSelect = "SELECT [cd].[Class] AS [Class], " +
"[cd].Group AS [Group], " +
"[cd].[ClassType] AS [ClassTypeID], " +
"cd.[BasicClass] AS [BasicClassID], " +
"cd.[ClassEdform] AS [EducationFormID]" +
"FROM [Class Details] cd";
OleDbCommand DetailsQuery = new OleDbCommand(DetailsSelect, connection);
List<ClassDetails> AllDetails = new List<ClassDetails> { };
using (OleDbDataReader DetailsReader = DetailsQuery.ExecuteReader())
{
while (DetailsReader.Read())
{
ClassDetails d = new ClassDetails(int.Parse(DetailsReader["Class"].ToString()),
int.Parse(DetailsReader["Group"].ToString()),
this.mTypes.Single(x => x.ID == int.Parse(DetailsReader["ClassTypeID"].ToString())).ShallowCopy(),
this.mBasicClasses.Single(x => x.ID == int.Parse(DetailsReader["BasicClassID"].ToString())).ShallowCopy(),
this.mEducationForms.Single(x => x.ID == int.Parse(DetailsReader["EducationFormID"].ToString())).ShallowCopy());
AllDetails.Add(d);
}
}
string ClassesSelect = "SELECT [cc].[Class ID] AS [ID], [p].[Paralell class Name] AS [Division], [cc].[Class No] AS [Number] FROM [Code Class] AS [cc] LEFT JOIN [Code Paralell class] AS [p] ON [cc].[Class No] = [p].[Paralell class ID]";
OleDbCommand ClassesQuery = new OleDbCommand(ClassesSelect, connection);
using (OleDbDataReader ClassesReader = ClassesQuery.ExecuteReader())
{
while (ClassesReader.Read())
{
BasicClass bc = this.mBasicClasses.Single(x => x.ID == int.Parse(ClassesReader["Number"].ToString()));
int id = int.Parse(ClassesReader["ID"].ToString());
List<ClassDetails> details = AllDetails.Where(x => x.ID == id).ToList();
Class c = new Class(id,
ClassesReader["Division"].ToString(),
bc);
foreach (var item in details)
{
item.SetDetailed(c);
}
c.SetDetails(details);
c.ShortName = c.Name;
this.mClasses.Add(c);
}
}
}