Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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();
        }
Exemple #9
0
        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());
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
            }
        }