public ClassEx GetStudentClass(int id) { ClassEx classEx = new ClassEx(); try { DB.Open(); string[][] getClassId = DB.Query("SELECT * FROM [Student] WHERE Id =" + id); for (int i = 0; i < getClassId.Length; i++) { int classID = Convert.ToInt32(getClassId[i][1]); string[][] getClass = DB.Query("SELECT * FROM Class WHERE Id =" + classID); for (int j = 0; j < getClass.Length; j++) { classEx.Id = Convert.ToInt32(getClass[i][0]); classEx.Name = getClass[i][1]; } } return(classEx); } catch (Exception ex) { } finally { DB.Close(); } return(classEx); }
public List <ClassEx> GetClasses() { List <ClassEx> classes = new List <ClassEx>(); try { DB.Open(); string[][] getClasses = DB.Query("SELECT [Class].Id, [Class].Name, [Class].fk_TeacherId,[Class].fk_SchoolId" + " FROM [Class]"); for (int i = 0; i < getClasses.Length; i++) { ClassEx theClass = new ClassEx(); theClass.Id = Convert.ToInt32(getClasses[i][0]); theClass.Name = (getClasses[i][1]); theClass.Fkteacherid = Convert.ToInt32((getClasses[i][2])); theClass.Fkschoolid = Convert.ToInt32(getClasses[i][3]); classes.Add(theClass); } } catch (Exception ex) { } finally { DB.Close(); } return(classes); }
public Task <bool> InsertClass(ClassEx theClass)//man gør dette fordi man vil have synkrone kald og ikke asykrone kald. { var tcs = new TaskCompletionSource <bool>(); EventHandler <InsertClassCompletedEventArgs> handler = null; handler = (sender, args) => { if (args.UserState == tcs) { service.InsertClassCompleted -= handler; if (args.Error != null) { tcs.TrySetException(args.Error); } else if (args.Cancelled) { tcs.TrySetCanceled(); } else { tcs.TrySetResult(args.Result); } } }; service.InsertClassCompleted += handler; service.InsertClassAsync(theClass, tcs); return(tcs.Task); }
public DeleteView(ClassEx selectedClassEx = null, TeacherEx selectedTeacher = null) // tjek om det er teacherex eller class { InitializeComponent(); if (viewModel == null) { viewModel = new DeleteViewModel(); } if (selectedClassEx != null) // er det teacher eller class der ønskes slettet? { viewModel.ViewstateObject = Enums.ViewstateObject.Class; viewModel.CurrentClass = selectedClassEx; datagridClassesEx.Visibility = Visibility.Hidden; cbListofTeachers.Visibility = Visibility.Hidden; butAssociate.Visibility = Visibility.Hidden; } else if (selectedTeacher != null) { viewModel.ViewstateObject = Enums.ViewstateObject.Teacher; viewModel.CurrentTeacherEx = selectedTeacher; listboxStudents.Visibility = Visibility.Hidden; cbListofClasses.Visibility = Visibility.Hidden; } DataContext = viewModel; InitializeEvents(); }
public bool InsertClass(ClassEx theClass) { bool success; if (theClass.Id != 0) // update { success = DatabaseHandler.Instance.UpdateClass(theClass); } else { success = DatabaseHandler.Instance.InsertClass(theClass); } return(success); }
public async Task <bool> UpdateClass(ClassEx theClass) { await ServiceProxy.Instance.InsertClass(theClass); //int generatedCount = await ServiceProxy.Instance.GetUserCount(); // begrund hvor vi ikke gør det her.. // generer id på service // smid id ind i teacher tabellen efterfølgende når der er success. BESKRIV HVORFOR I RAPPORTEN. //generer id og username og password inden du opretter. Når du updaterere skal der tjekkes om id allerede findes på objektet. return(true); }
public bool UpdateClass(ClassEx theClass) { bool success = true; try { DB.Open(); DB.Exec("UPDATE [Class] SET Name ='" + theClass.Name + "', fk_TeacherId=" + theClass.Fkteacherid + " WHERE Id=" + theClass.Id + ";"); } catch (Exception) { Debug.Write("Fejl!"); success = false; } return(success); }
public ClassCuView(ClassEx classe = null) { if (viewModel == null) { viewModel = new ClassCuViewModel(); } viewModel.Viewstate = classe == null ? Enums.ViewState.Create : Enums.ViewState.Edit; if (classe != null) { viewModel.CurrentClass = classe; } this.DataContext = viewModel; InitializeComponent(); InitializeEvents(); }
public string GetAssociatedChildren(ParentEx parent = null, ClassEx classe = null) { StringBuilder stringBuilder = new StringBuilder(); if (parent != null) { if (parent.ChildrenList.Count == 0) { stringBuilder.AppendLine("Denne forældre har ingen børn tilknyttet."); } else { stringBuilder.AppendLine("De tilknyttede børn for forældre " + parent.Firstname + " er:"); stringBuilder.AppendLine(); foreach (Student child in parent.ChildrenList) { stringBuilder.AppendLine(child.Firstname + " " + child.Lastname); } } } else if (classe != null) { if (classe.StudentsList.Count == 0) { stringBuilder.AppendLine("Denne klasse har ingen børn tilknyttet."); } else { stringBuilder.AppendLine("De tilknyttede børn for klasse " + classe.Name + " er:"); stringBuilder.AppendLine(); foreach (Student child in classe.StudentsList) { stringBuilder.AppendLine(child.Firstname + " " + child.Lastname); } } } return(stringBuilder.ToString()); }
public bool InsertClass(ClassEx theClass) { bool success = true; int result; DB.Open(); result = DB.Exec("BEGIN TRANSACTION BEGIN TRY INSERT INTO [Class](Name, fk_TeacherId, fk_SchoolId)" + "VALUES('" + theClass.Name + "'," + theClass.Fkteacherid + "," + 1 + ");" + " COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION END CATCH"); if (result == -1) { success = false; } DB.Close(); return(success); }
public async void Confirm(Object o) { bool success = false; // vurder ud fra viewstate om der skal oprettes en user deraf dets username password mm. // eller om der skal oprettes en user. // her skal der tjekkes på hvad type objektet er. if (Viewstate == Enums.ViewState.Create) { ClassEx theClass = new ClassEx(); theClass.Name = ClassName; theClass.Fkteacherid = SelectedTeacher.Id; success = await BusinessLogic.Instance.CreateClass(theClass); } else if (Viewstate == Enums.ViewState.Edit) // for next week! { // her vil det ikke være nødvendigt at oprette password, id og username. // BusinessLogic.Instance.UpdateParent(CurrentParent); CurrentClass.Name = ClassName; CurrentClass.Fkteacherid = SelectedTeacher.Id; success = await BusinessLogic.Instance.UpdateClass(CurrentClass); } Isloading = false; MessageBox.Show(success ? "Klassen er oprettet/opdateret! Vinduet lukkes." : "Noget gik galt. Klassen er ikke blevet oprettet/opdateret. Vinduet lukkes."); OnClassViewClose(); //tjek med id.findes id allerede på user skal der ikke genereres username eller password. }
private void btnCopy_Click(object sender, EventArgs e) { DialogResult dr = MsgBox.Show("您確認要複製所選班級?", MessageBoxButtons.YesNo, MessageBoxDefaultButton.Button2); if (dr == System.Windows.Forms.DialogResult.No) { MsgBox.Show("已取消..."); return; } try { #region 取得所要複製的ischool班級清單 List<OBJ_Class> SelectRows = new List<OBJ_Class>(); foreach (DataGridViewRow row in grdProgramPlanList.SelectedRows) { SelectRows.Add(row.Tag as OBJ_Class); } #endregion //取得排課班級 List<ClassEx> records = tool._A.Select<ClassEx>(); #region 判斷新增或更新班級 List<ClassEx> updaterecords = new List<ClassEx>(); List<ClassEx> insertrecords = new List<ClassEx>(); foreach (OBJ_Class each in SelectRows) { //取得清單內是否有重覆"班級名稱"的物件 ClassEx srecord = records.Find(x => x.ClassName.Equals(each.ClassName)); if (srecord == null) { //新增 ClassEx ex = new ClassEx(); ex.ClassName = each.ClassName; ex.GradeYear = int.Parse(each.ClassGrade_year); insertrecords.Add(ex); } else { //更新 srecord.GradeYear = int.Parse(each.ClassGrade_year); updaterecords.Add(srecord); } } #endregion #region 開始新增或覆蓋 StringBuilder log_sb = new StringBuilder(); log_sb.AppendLine("複製「ischool班級」至「排課班級」:"); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendLine("複製班級清單成功"); if (insertrecords.Count > 0) { sb.AppendLine("新增「" + insertrecords.Count + "」筆"); tool._A.InsertValues(insertrecords); log_sb.AppendLine("新增清單「" + insertrecords.Count + "」"); foreach (ClassEx each in insertrecords) { log_sb.AppendLine("班級名稱「" + each.ClassName + "」年級「" + each.GradeYear.Value + "」"); } } if (updaterecords.Count > 0) { DialogResult update_dr = MsgBox.Show("共有" + updaterecords.Count + "筆班級資料已存在,是否覆蓋?", MessageBoxButtons.YesNo, MessageBoxDefaultButton.Button2); if (update_dr == System.Windows.Forms.DialogResult.Yes) { sb.AppendLine("覆蓋「" + updaterecords.Count + "」筆"); tool._A.UpdateValues(updaterecords); log_sb.AppendLine("更新清單「" + updaterecords.Count + "」"); foreach (ClassEx each in updaterecords) { log_sb.AppendLine("班級 " + each.ClassName + " 已修改年級為「" + each.GradeYear.Value + "」"); } } } if (insertrecords.Count > 0 || updaterecords.Count > 0) { FISCA.LogAgent.ApplicationLog.Log("排課", "匯入班級", log_sb.ToString()); MsgBox.Show(sb.ToString()); } #endregion } catch (Exception ve) { FISCA.ErrorBox.Show("在複製過程中發生錯誤!", ve); MotherForm.SetStatusBarMessage("在複製過程中發生錯誤!"); SmartSchool.ErrorReporting.ReportingService.ReportException(ve); } }