protected void AddSupervision(DateTime t_start, DateTime t_end, ScheduledComponent sc) { ScheduledComponent sched1 = new ScheduledComponent(); TimeSpan tgap = new TimeSpan(); tgap = t_end - t_start; if ((tgap.TotalMinutes >= 10) && (tgap.TotalDays < 2)) { ExamConversions u = new ExamConversions(); ExamComponent ec1 = new ExamComponent(); ec1.m_ComponentCode = "Super"; ec1.m_ComponentTitle = "Supervision"; ec1.m_ComponentTitle += "-" + sc.GetHashCode().ToString(); ec1.m_ExamBoardID = new Guid("436ff234-0457-430a-b1e2-b08758ff30ef"); ec1.m_year = Year.ToString().Substring(2, 2); ec1.m_season = u.GetSeasonCode(SeasonCode); ec1.m_Teachermarks = "0"; ec1.m_MaximumMark = "0"; ec1.m_Timetabled = "T"; ec1.m_TimetableDate = t_start; ec1.m_TimetableSession = "A"; ec1.m_Time = tgap.TotalMinutes.ToString(); //now if the brat has extra time we need to reduce...>!!!! StudentSENList ssen1 = new StudentSENList(sc.m_StudentId.ToString()); double extra_time = 0; double time1 = tgap.TotalMinutes; //now if the brat has extra time we need to reduce.. becasue it will be increased by code when read... foreach (StudentSEN sen1 in ssen1.m_List) { if (sen1.m_ExamsExtraTime > 0) { extra_time = (double)sen1.m_ExamsExtraTime; } } time1 = time1 / ((100 + extra_time) / 100); int i = (int)time1; ec1.m_Time = i.ToString(); ec1.Create(); ec1.m_ComponentID = ec1.Find_ComponentID(ec1.m_ComponentCode, ec1.m_ComponentTitle, ec1.m_ExamBoardID.ToString(), ec1.m_season, ec1.m_year); if (ec1.m_ComponentID != Guid.Empty) { sched1.Load(ec1.m_ComponentID, sc.m_StudentId); if (!sched1.m_valid) { sched1.m_StudentId = sc.m_StudentId; sched1.m_ComponentId = ec1.m_ComponentID; sched1.m_RoomId = Guid.Empty; sched1.m_Year = Year.ToString(); sched1.m_Season = u.GetSeasonCode(SeasonCode); sched1.m_valid = true; sched1.m_Date = t_start; sched1.m_Desk = ""; sched1.m_Will_Type = false;// do these later... sched1.Save(); } } } }
private string GetFilename() { ExamConversions c = new ExamConversions(); string s_filename = ""; string s = YearCode.ToString(); s_filename = c.GetSeasonCode(SeasonCode) + "a" + s + "_99"; return(s_filename); }
protected string GetQueryString(string Year, int SeasonCode) { ExamConversions u = new ExamConversions(); string s = " SELECT DISTINCT dbo.tbl_Exams_ScheduledComponents.DateTime "; //s += ", dbo.tbl_Exams_Options.OptionCode, "; //s += " dbo.tbl_Exams_Components.ComponentTitle "; s += " FROM dbo.tbl_Exams_ScheduledComponents INNER JOIN "; s += " dbo.tbl_Exams_Components ON dbo.tbl_Exams_ScheduledComponents.ComponentId = dbo.tbl_Exams_Components.ComponentID INNER JOIN "; s += " dbo.tbl_Exams_Link ON dbo.tbl_Exams_Components.ComponentID = dbo.tbl_Exams_Link.ComponentID INNER JOIN "; s += " dbo.tbl_Exams_Options ON dbo.tbl_Exams_Link.OptionID = dbo.tbl_Exams_Options.OptionID "; s += " WHERE(dbo.tbl_Exams_ScheduledComponents.Year = '" + Year + "') "; s += " AND(dbo.tbl_Exams_ScheduledComponents.Season = '" + u.GetSeasonCode(SeasonCode) + "') "; s += " ORDER BY dbo.tbl_Exams_ScheduledComponents.DateTime"; return(s); }
protected void UpdateTimetable(DateTime start, DateTime end) { // add scheduled components for any components not scheduled... //TODO also delete any withdrawn.... ExamConversions u = new ExamConversions(); ExamCompononent_List ecl1 = new ExamCompononent_List(); //ecl1.LoadAllComponents(Year.ToString(), SeasonCode.ToString()); ecl1.LoadAllComponentsSeasonDate(YearCode.ToString(), SeasonCode.ToString(), start, end); Encode en = new Encode(); string s = ""; ScheduledComponent sched1 = new ScheduledComponent(); s = ""; int n = 0; DateTime d1 = new DateTime(); foreach (ExamComponent ec in ecl1.m_list) { ExamLinkComponent_List elcl1 = new ExamLinkComponent_List(); elcl1.LoadList_Component(ec.m_ComponentID); foreach (ExamLinkComponent elc in elcl1.m_list) { ExamEntries_List exl1 = new ExamEntries_List(); //now need all entries for this option..... exl1.Load_Option(elc.m_OptionId); n += exl1.m_list.Count; } } int n1 = 0; int n2 = 0; foreach (ExamComponent ec in ecl1.m_list) { if (ec.m_Timetabled == "T") { d1 = ec.m_TimetableDate; if (ec.m_TimetableSession == "A") { d1 = d1.AddHours(8); d1 = d1.AddMinutes(50); } else { d1 = d1.AddHours(13); d1 = d1.AddMinutes(40); } //need to find all entries that use this component..... ExamLinkComponent_List elcl1 = new ExamLinkComponent_List(); elcl1.LoadList_Component(ec.m_ComponentID); foreach (ExamLinkComponent elc in elcl1.m_list) { ExamEntries_List exl1 = new ExamEntries_List(); //now need all entries for this option..... exl1.Load_Option(elc.m_OptionId); foreach (Exam_Entry ex in exl1.m_list) { if (!ex.m_withdrawn) { sched1.Load(ec.m_ComponentID, ex.m_StudentID); if (!sched1.m_valid) { sched1.m_StudentId = ex.m_StudentID; sched1.m_ComponentId = ec.m_ComponentID; sched1.m_RoomId = Guid.Empty; sched1.m_Year = Year.ToString(); sched1.m_Season = u.GetSeasonCode(SeasonCode); sched1.m_valid = true; sched1.m_Date = d1; sched1.m_Desk = ""; sched1.m_Will_Type = false;// do these later... sched1.Save(); n2++; } } else { sched1.Load(ec.m_ComponentID, ex.m_StudentID); if (sched1.m_valid) { //need to delete sched1.Delete(); n1++; } } } } } } //now ought to update the willtype fields to agree with the cantype entry.. //oohhh this is going to be messy..... //read from a querry..... then update Exams_Scheduled_components... CanTypeList typists = new CanTypeList(); foreach (Guid g in typists.m_List) { s = "UPDATE dbo.tbl_Exams_ScheduledComponents SET WillType =1 WHERE (StudentId = '" + g.ToString() + "' )AND (Year='" + YearCode.ToString() + "' ) AND (Season ='" + u.GetSeasonCode(SeasonCode) + "' )"; en.ExecuteSQL(s); } }