Exemplo n.º 1
0
 public void OnDelete()
 {
     //FIXME: failed if continously delete 2nd time
     ctx.Courses.Remove(SelectedCourse);
     ctx.SaveChanges();
     LoadCourse();
 }
Exemplo n.º 2
0
        private void PayButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                List <string> errList = new List <string>();
                if (curUser == null)
                {
                    return;
                }

                if (tbPayAccount.Text.Length < 5 || tbPayAccount.Text.Length > 30)
                {
                    errList.Add("Account must be 5 -30 characters");
                }


                if (tbAmount.Text.Length == 0)
                {
                    errList.Add("Account can not be empty");
                }


                if (!decimal.TryParse(tbAmount.Text, out decimal amount) && tbAmount.Text.Length > 0)
                {
                    errList.Add("Account must be a valid number");
                }


                if (errList.Count > 0)
                {
                    string errStr = "";

                    foreach (string r in errList)
                    {
                        errStr += $"{r}\n";
                    }

                    MessageBox.Show($"Error found:\n{errStr}");
                    return;
                }


                using (YZYDbContextAzure ctx = new YZYDbContextAzure())
                {
                    Payment payment = new Payment {
                        UserID = curUser.UserID, PayAccount = tbPayAccount.Text, Amount = amount, PayDate = DateTime.Today
                    };
                    ctx.Payments.Add(payment);
                    ctx.SaveChanges();
                    this.InitializeComponent();
                    LoadData();
                    ClearField();
                }
            }
            catch (SystemException ex)
            {
                MessageBox.Show($"Fetal Error: {ex.Message}");
                Environment.Exit(1);
            }
        }
        private void ButtonAddCourse_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (ctx = new YZYDbContextAzure())
                {
                    Register existRecord = ctx.Registers.Where(r => r.UserID == curUser.UserID && r.CourseID == curOpenCour.CourseID).FirstOrDefault();
                    if (existRecord != null)
                    {
                        MessageBox.Show("You have registered this course before.");
                        return;
                    }

                    Register newRecord = new Register {
                        UserID = curUser.UserID, CourseID = curOpenCour.CourseID, RegisterStatus = RegisterStatusEnum.Pending
                    };
                    ctx.Registers.Add(newRecord);
                    ctx.SaveChanges();
                    this.InitializeComponent();
                    LoadData();
                    ClearField();
                }
            }
            catch (SystemException ex)
            {
                MessageBox.Show("Failed to connect to database: " + ex.Message);
            }
        }
Exemplo n.º 4
0
        public void OnDelete()
        {
            //FIXME: if not selected
            //FIXME: failed if continously delete 2nd time
            try
            {
                ctx.Users.Remove(SelectedUser);
                ctx.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                Log.WriteLine(SelectedUser.UserID + "[DELETE]: " + ex.Message);
            }

            LoadCourse();
        }
Exemplo n.º 5
0
 public void OnUpdate()
 {
     try
     {
         LoginUser.Photo = this.Photo;
         ctx.SaveChanges();
     }
     catch (Exception ex)
         when((ex is InvalidParameterException) || (ex is SystemException))
         {
             Log.WriteLine(ex.Message);
         }
 }
 private void ButtonDeleteRegister_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         using (ctx = new YZYDbContextAzure())
         {
             Register existRecord = ctx.Registers.Where(r => r.RegisterID == curRegister.RegisterID).FirstOrDefault();
             ctx.Registers.Remove(existRecord);
             ctx.SaveChanges();
             this.InitializeComponent();
             LoadData();
             ClearField();
         }
     }
     catch (SystemException ex)
     {
         MessageBox.Show("Failed to connect to database: " + ex.Message);
     }
 }
 public void OnUpdateGrade()
 {
     try
     {
         var regid = SelectedRegister.RegisterID;
         var grade = SelectedRegister.Grade;
         var item  = (from r in ctx.Registers where r.RegisterID == regid select r).FirstOrDefault <Register>();
         if (item != null)
         {
             item.Grade = grade;
             ctx.SaveChanges();
         }
         LoadRegistrations();
     }
     catch (Exception ex)
         when((ex is InvalidParameterException) || (ex is SystemException))
         {
             Log.WriteLine(ex.Message);
         }
 }
Exemplo n.º 8
0
        public void OnAdd()
        {
            try
            {
                //WORKROUND: wdit a selected item to Add
                //TOFIX: add item cannot reuse controller bound with list view
                NewUser.Password = GlobalSettings.newPassword;
                NewUser.UserRole = (UserRoleEnum)Enum.Parse(typeof(UserRoleEnum), "Student", true);
                if (GlobalSettings.currentPhoto != null && GlobalSettings.currentPhoto.Length > 0)
                {
                    NewUser.Photo = GlobalSettings.currentPhoto;
                }

                database.Users.Add(NewUser);
                database.SaveChanges();
            }
            catch (Exception ex)
                when((ex is InvalidParameterException) || (ex is SystemException))
                {
                    Log.WriteLine(ex.Message);
                    Console.WriteLine(ex.Message);
                }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
        private void btSubmit_Click(object sender, RoutedEventArgs e)
        {
            //validations
            List <string> errList = new List <string>();

            if (!Regex.IsMatch(tbNewSIN.Text, @"^[0-9]{9}$"))
            {
                errList.Add("SIN must be 9 numbers");
            }

            if (!Enum.TryParse(tbNewGender.Text, out GenderEnum gender))
            {
                errList.Add("Gender must be: Female, Male, Other or Unknown");
            }

            if (!Regex.IsMatch(tbNewStreetName.Text, @"^[\w\d\s\.\-]{2,50}$"))
            {
                errList.Add("Street name must be 2 - 50 characters");
            }

            if (!Regex.IsMatch(tbNewStreetNo.Text, @"^[\w\d\s\.\-]{2,50}$"))
            {
                errList.Add("Street number must be 2 - 50 characters");
            }

            if (!Regex.IsMatch(tbNewCity.Text, @"^[\w\d\s\.\-]{2,30}$"))
            {
                errList.Add("City must be 2 - 30 characters");
            }

            List <string> provinceList = new List <string>()
            {
                "QC", "ON", "BC", "NL", "PE", "NS", "NB", "MB", "SK", "AB", "YT", "NT", "NU"
            };

            if (!provinceList.Any(s => tbNewProvince.Text.ToUpper().Equals(s)))
            {
                errList.Add("Province must be a 2 characters  Canadian province abbreviation");
            }

            if (!Regex.IsMatch(tbNewPostalCode.Text, @"^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$"))
            {
                errList.Add("Postal code must be 6 character, in the format L0L0L0");
            }

            if (!Regex.IsMatch(tbNewPhone.Text, @"^[0-9]{10}$"))
            {
                errList.Add("Phone must be 10 numbers");
            }

            if (!Regex.IsMatch(tbNewCell.Text, @"^[0-9]{10}$"))
            {
                errList.Add("Cell must be 10 numbers");
            }

            if (!Regex.IsMatch(tbNewEmail.Text, @"^[\w\d\s\.\-\@]{2,20}$"))
            {
                errList.Add("Email must be less than 20 characters");
            }

            if (!Regex.IsMatch(tbNewPassword.Text, @"^[\w\d\s\.\-\@]{2,20}$"))
            {
                errList.Add("Password must be less than 20 characters");
            }


            if (errList.Count > 0)
            {
                string errStr = "";

                foreach (string r in errList)
                {
                    errStr += $"{r}\n";
                }

                MessageBox.Show($"Error found:\n{errStr}");
                return;
            }

            //check if password and/or confirmed password have been edited, if yes check if they are matched
            if (isPasswordModified == true)
            {
                if (!tbNewPassword.Text.Equals(tbNewConfirmPassword.Text))
                {
                    MessageBox.Show("Password didn't matched the confirmed password. please check.");
                    return;
                }
            }

            try
            {
                using (ctx = new YZYDbContextAzure())
                {
                    User udUser = ctx.Users.Where(r => r.UserID == curUser.UserID).FirstOrDefault();



                    udUser.Cell       = tbNewCell.Text;
                    udUser.City       = tbNewCity.Text;
                    udUser.Email      = tbNewEmail.Text;
                    udUser.Password   = tbNewPassword.Text;
                    udUser.Gender     = gender;
                    udUser.Phone      = tbNewPhone.Text;
                    udUser.PostalCode = tbNewPostalCode.Text;
                    udUser.Province   = tbNewProvince.Text;
                    udUser.UserSIN    = tbNewSIN.Text;
                    udUser.StreetName = tbNewStreetName.Text;
                    udUser.StreetNo   = tbNewStreetNo.Text;



                    if (isPictureModified == true)
                    {
                        udUser.Photo = curPictureArr;
                    }

                    ctx.SaveChanges();
                    MessageBox.Show("Profile updated");
                    this.InitializeComponent();
                    LoadData();
                }
            }
            catch (SystemException ex)
            {
                MessageBox.Show("Failed to connect to database: " + ex.Message);
            }
        }