private void Save(Schedule schedule) { int numberOfRooms = Configuration.GetInstance.GetNumberOfRooms(); int daySize = schedule.day_Hours * numberOfRooms; var db = new LINQDataContext(); db.Classroom_TimeDeleteAll(); foreach (KeyValuePair <CourseClass, int> it in schedule.GetClasses().ToList()) { // coordinate of time-space slot int pos = it.Value; // int pos of _slot array int day = pos / daySize; int time = pos % daySize; // this is not time now! int room = time / schedule.day_Hours; time = time % schedule.day_Hours; // this is a time now! int dur = it.Key.GetDuration; CourseClass cc = it.Key; Algorithm.Room r = Configuration.GetInstance.GetRoomById(room); // // Save Classroom_Time // db.Classroom_TimeSave(r.Origin_ID_inDB, cc.Class_ID, cc.GetProfessor.GetId, time, dur, day); // // Save New_GroupsPerClassroom // foreach (var gs in cc.GetGroups) { db.New_GroupsPerClassSave(r.Origin_ID_inDB, cc.Class_ID, time, day, gs.GetId); } } }
private void ImportMDF() { try { Set_Cursor_Value("WaitCursor"); var originDB = new LINQDataContext(); var newDB = new LINQDataContext(FileName); Set_prbMain_Value(0); #region 1. Professor DATA // // Delete old Professor data and Fill it by newDB data // var aryProfessor = newDB.Professors.ToArray(); if (aryProfessor.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Classroom_time " + @"DELETE FROM dbo.Priority_Professor " + @"DELETE FROM dbo.Professor"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryProfessor) { originDB.ProfessorSave(row.ID, row.Name_Professor, row.Branch, row.Email, row.EducationDegree, row.Schedule); } } #endregion Set_prbMain_Value(10); #region 2. Branch DATA // // Delete old Branch data and Fill it by newDB data // var aryBranch = newDB.Branches.ToArray(); if (aryBranch.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Group_ID_List " + @"DELETE FROM dbo.Classroom_Time " + @"DELETE FROM dbo.Class " + @"DELETE FROM dbo.Course " + @"DELETE FROM dbo.Groups " + @"DELETE FROM dbo.Branch"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryBranch) { originDB.BranchSave(row.ID_Branch, row.Branch_Name, row.Degree); } } #endregion Set_prbMain_Value(20); #region 3. Room_Type DATA // // Delete old Room_Type data and Fill it by newDB data // var aryRoom_Type = newDB.Room_Types.ToArray(); if (aryRoom_Type.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Classroom_time " + @"DELETE FROM dbo.Room " + @"DELETE FROM dbo.Priority_Professor " + @"DELETE FROM dbo.Group_ID_List " + @"DELETE FROM dbo.Class " + @"DELETE FROM dbo.Room_Type"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryRoom_Type) { originDB.Room_TypeSave(row.Type_Name); } } #endregion Set_prbMain_Value(30); #region 4. Course DATA // // Delete old Course data and Fill it by newDB data // var aryCourse = newDB.Courses.ToArray(); if (aryCourse.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Classroom_time " + @"DELETE FROM dbo.Group_ID_List " + @"DELETE FROM dbo.Priority_Professor " + @"DELETE FROM dbo.Class " + @"DELETE FROM dbo.Course"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryCourse) { originDB.CourseSave(row.Course_ID, row.Branch_ID, row.TermNo, row.Name_Course, row.Type_Course, row.CourseCode, row.TheoryUnitNo, row.PracticalUnitNo, row.InRequisite_CourseID, row.PreRequisite_CourseID); } } #endregion Set_prbMain_Value(40); #region 5. Groups DATA // // Delete old Group data and Fill it by newDB data // var aryGroup = newDB.Groups.ToArray(); if (aryGroup.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Group_ID_List " + @"DELETE FROM dbo.Groups"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryGroup) { originDB.GroupsSave(row.ID, row.Semester_Entry_Year, row.Semester_Entry_FS, row.Branch_Selection, row.Size_No); } } #endregion Set_prbMain_Value(50); #region 6. Room DATA // // Delete old Room data and Fill it by newDB data // var aryRoom = newDB.Rooms.ToArray(); if (aryRoom.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Classroom_time " + @"DELETE FROM dbo.Room"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryRoom) { originDB.RoomSave(row.Room_ID, row.Name_Room, row.Type_Room, row.Size_No); } } #endregion Set_prbMain_Value(60); #region 7. Class DATA // // Delete old Class data and Fill it by newDB data // var aryClass = newDB.Classes.ToArray(); if (aryClass.Length > 0) { string query = @"DELETE FROM dbo.New_GroupsPerClass " + @"DELETE FROM dbo.Group_ID_List " + @"DELETE FROM dbo.Classroom_Time " + @"DELETE FROM dbo.Priority_Professor " + @"DELETE FROM dbo.Class"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryClass) { originDB.ClassSave(row.Class_ID, row.Course_ID, row.Practical_unit, row.Theory_unit, row.RoomType); } } #endregion Set_prbMain_Value(70); #region 8. Group_ID_List DATA // // Delete old Group_ID_List data and Fill it by newDB data // var aryGroup_ID_List = newDB.Group_ID_Lists.ToArray(); if (aryGroup_ID_List.Length > 0) { string query = @"DELETE FROM dbo.Group_ID_List"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryGroup_ID_List) { originDB.Group_ID_ListSave(row.Group_ID, row.Class_ID); } } #endregion Set_prbMain_Value(80); #region 9. Priority_Professor DATA // // Delete old Classroom_Time data and Fill it by newDB data // var aryPriority_Professor = newDB.Priority_Professors.ToArray(); if (aryPriority_Professor.Length > 0) { string query = @"DELETE FROM dbo.Priority_Professor"; originDB.ExecuteQuery<object>(query); // // read and save new data // foreach (var row in aryPriority_Professor) { originDB.Priority_ProfessorSave(row.Professor_ID, row.Class_ID, row.Priority); } } #endregion Set_prbMain_Value(90); #region 10. Classroom_Time DATA // // Delete old Classroom_Time data and Fill it by newDB data // var aryClassroom_Time = newDB.Classroom_Times.ToArray(); var aryNew_GroupsPerClass = newDB.New_GroupsPerClasses.ToArray(); if (aryClassroom_Time.Length > 0) { originDB.Classroom_TimeDeleteAll(); // // read and save new data about Classroom_Time // foreach (var row in aryClassroom_Time) { originDB.Classroom_TimeSave(row.Room_ID, row.Class_ID, row.Professor_ID, row.StartTime, row.Duration, row.Day_No); } // // read and save new data about New_GroupsPerClass // foreach (var row in aryNew_GroupsPerClass) { originDB.New_GroupsPerClassSave(row.Room_ID, row.Class_ID, row.StartTime, row.Day_No, row.Group_ID); } } #endregion Set_prbMain_Value(98); originDB.Connection.Close(); originDB.Dispose(); newDB.Connection.Close(); newDB.Dispose(); Set_prbMain_Value(100); } catch (Exception ex) { MessageBox.Show(ex.Message, "اشکال در بازیابی اطلاعات"); thImport.Abort(); return; } finally { Thread.CurrentThread.Join(1000); Set_prbMain_Value(0); Set_Cursor_Value("Default"); bwExportBtnCheck.RunWorkerAsync(); Thread.CurrentThread.Abort(); } }
private void Save(Schedule schedule) { int numberOfRooms = Configuration.GetInstance.GetNumberOfRooms(); int daySize = schedule.day_Hours * numberOfRooms; var db = new LINQDataContext(); db.Classroom_TimeDeleteAll(); foreach (KeyValuePair<CourseClass, int> it in schedule.GetClasses().ToList()) { // coordinate of time-space slot int pos = it.Value; // int pos of _slot array int day = pos / daySize; int time = pos % daySize; // this is not time now! int room = time / schedule.day_Hours; time = time % schedule.day_Hours; // this is a time now! int dur = it.Key.GetDuration; CourseClass cc = it.Key; Algorithm.Room r = Configuration.GetInstance.GetRoomById(room); // // Save Classroom_Time // db.Classroom_TimeSave(r.Origin_ID_inDB, cc.Class_ID, cc.GetProfessor.GetId, time, dur, day); // // Save New_GroupsPerClassroom // foreach (var gs in cc.GetGroups) { db.New_GroupsPerClassSave(r.Origin_ID_inDB, cc.Class_ID, time, day, gs.GetId); } } }