Ejemplo n.º 1
0
        private int CheckUser()
        {
            ErrorControls.NotEmptyTextBox(tbTitle);
            ErrorControls.NotEmptyTextBox(tbContent);

            return(ErrorControls.GetCount());
        }
Ejemplo n.º 2
0
        private int CheckUser()
        {
            ErrorControls.NotEmptyTextBox(btnName);
            ErrorControls.RegexTextBox(btnEmail, "^[0-9a-z_\\.-]+@[0-9a-z_\\.-]+\\.[a-z]{2,}?$");
            ErrorControls.NotEmptyTextBox(btnMessage);

            return(ErrorControls.GetCount());
        }
Ejemplo n.º 3
0
        private int CheckUser()
        {
            if (!ErrorControls.NotEmptyTextBox(tbName))
            {
                errs.Add(tbName.ID, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbMiddleName))
            {
                errs.Add(tbMiddleName.ID, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbLastName))
            {
                errs.Add(tbLastName.ID, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbEmail))
            {
                errs.Add(tbEmail.ID, "Поле не должно быть пустым");
            }
            else if (!ErrorControls.RegexTextBox(tbEmail, "^[0-9a-z_\\.-]+@[0-9a-z_\\.-]+\\.[a-z]{2,}?$"))
            {
                errs.Add(tbEmail.ID, "Не правильный формат");
            }
            // если режим добавления проверяем это
            if (Mode == "add")
            {
                if (!ErrorControls.NotEmptyTextBox(tbLogin))
                {
                    errs.Add(tbLogin.ID, "Поле не должно быть пустым");
                }
                else if (!ErrorControls.RegexTextBox(tbLogin, "^[a-zA-Z]+$"))
                {
                    errs.Add(tbLogin.ID, "Только латинские буквы");
                }
                else if (GlobalVariables.Link.UniqueLogin(tbLogin.Text))
                {
                    errs.Add(tbLogin.ID, "Присутствует в системе");
                }
                if (!ErrorControls.NotEmptyTextBox(tbPass))
                {
                    errs.Add(tbPass.ID, "Поле не должно быть пустым");
                }
                else if (tbPass.Text != tbRePass.Text)
                {
                    errs.Add(tbPass.ID, "Пароли должны совпадать");
                    errs.Add(tbRePass.ID, "Пароли должны совпадать");
                }
            }



            return(ErrorControls.GetCount());
        }
Ejemplo n.º 4
0
        private int CheckFields() // возвращаем количество ошибок
        {
            bool check;
            int  i = 0;

            check = ErrorControls.EmptyTextBox(textBox1); // Логин
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox2); // Пароль
            ErrorControls.CountErrors(ref i, check);

            return(i);
        }
Ejemplo n.º 5
0
        void control_BindingValidationError(object sender, ValidationErrorEventArgs e)
        {
            var control = e.OriginalSource as Control;

            if (e.Action == ValidationErrorEventAction.Removed && ErrorControls.Contains(control))
            {
                ErrorControls.Remove(control);
            }
            else if (e.Action == ValidationErrorEventAction.Added && !ErrorControls.Contains(control) && control.IsEnabled && control.Visibility == Visibility.Visible)
            {
                ErrorControls.Add(control);
            }
        }
Ejemplo n.º 6
0
        private bool ValidateDateRange(Control p, FrameworkElement element, FieldInfo field)
        {
            DateTime?currentDate = p.GetType().GetProperty("SelectedDate").GetValue(p, null) as DateTime?;
            var      entity      = element.DataContext as ComplexObject;

            string maxDateFrom = RestrictDatePickerAttached.GetMaxDate(element);
            string minDateFrom = RestrictDatePickerAttached.GetMinDate(element);

            if (entity != null && currentDate != null && (currentDate < DateTime.Parse(minDateFrom) || currentDate > DateTime.Parse(maxDateFrom)))
            {
                var be = element.GetBindingExpression((DependencyProperty)field.GetValue(null));
                if (be != null && be.ParentBinding != null && be.ParentBinding.Path != null)
                {
                    if (p.Tag == null)
                    {
                        p.Tag = new ValidationResult(string.Format(ValidationResource.ValidationMessage_InvalidDate, minDateFrom, maxDateFrom), new string[] { be.ParentBinding.Path.Path });
                        entity.ValidationErrors.Add(p.Tag as ValidationResult);
                    }
                    else if (!entity.ValidationErrors.Contains(p.Tag as ValidationResult))
                    {
                        entity.ValidationErrors.Add(p.Tag as ValidationResult);
                    }
                }
                if (!ErrorControls.Contains(p))
                {
                    ErrorControls.Add(element as Control);
                }
                return(false);
            }
            else if (entity != null)
            {
                if (p.Tag != null && entity.ValidationErrors.Contains(p.Tag as ValidationResult))
                {
                    entity.ValidationErrors.Remove(p.Tag as ValidationResult);
                    p.Tag = null;
                }
                if (ErrorControls.Contains(p))
                {
                    ErrorControls.Remove(element as Control);
                }
            }
            return(true);
        }
Ejemplo n.º 7
0
        private int CheckUser()
        {
            if (!ErrorControls.NotEmptyTextBox(btnOldPassword))
            {
                errs.Add(btnOldPassword.ID, "Поле не должно быть пустым");
            }
            else if (btnOldPassword.Text != account.Password)
            {
                errs.Add(btnOldPassword.ID, "Не верный пароль");
            }
            if (!ErrorControls.NotEmptyTextBox(btnPassword))
            {
                errs.Add(btnPassword.ID, "Поле не должно быть пустым");
            }
            else if (btnPassword.Text != btnRePassword.Text)
            {
                errs.Add(btnPassword.ID, "Пароли должны совпадать");
                errs.Add(btnRePassword.ID, "Пароли должны совпадать");
            }

            return(ErrorControls.GetCount());
        }
Ejemplo n.º 8
0
        private int CheckUser()
        {
            if (!ErrorControls.NotEmptyTextBox(tbName))
            {
                errs.Add(ErrorName, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbMiddleName))
            {
                errs.Add(ErrorMiddleName, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbLastName))
            {
                errs.Add(ErrorLastName, "Поле не должно быть пустым");
            }
            if (!ErrorControls.NotEmptyTextBox(tbEmail))
            {
                errs.Add(ErrorEmail, "Поле не должно быть пустым");
            }
            else if (!ErrorControls.RegexTextBox(tbEmail, "^[0-9a-z_\\.-]+@[0-9a-z_\\.-]+\\.[a-z]{2,}?$"))
            {
                errs.Add(ErrorEmail, "Не правильный формат");
            }
            if (Mode == "add")
            {
                if (!ErrorControls.NotEmptyTextBox(tbLogin))
                {
                    errs.Add(ErrorLogin, "Поле не должно быть пустым");
                }
                else if (!ErrorControls.RegexTextBox(tbLogin, "^[a-zA-Z]+$"))
                {
                    errs.Add(ErrorLogin, "Только латинские буквы");
                }
                else if (GlobalVariables.Link.UniqueLogin(tbLogin.Text))
                {
                    ErrorControls.CountErrors(false);
                    errs.Add(ErrorLogin, "Присутствует в системе");
                }
                if (!ErrorControls.NotEmptyTextBox(tbPass))
                {
                    errs.Add(ErrorPass, "Поле не должно быть пустым");
                }
                else if (tbPass.Text != tbRePass.Text)
                {
                    ErrorControls.CountErrors(false);
                    errs.Add(ErrorPass, "Пароли должны совпадать");
                    errs.Add(ErrorRePass, "Пароли должны совпадать");
                }
                string captcha = Session["captcha"] as string;
                if (!ErrorControls.NotEmptyTextBox(tbCaptcha))
                {
                    errs.Add(ErrorCaptcha, "Поле не должно быть пустым");
                }
                else if ((Session["captcha"] as string) != tbCaptcha.Text.ToLower())
                {
                    ErrorControls.CountErrors(false);
                    errs.Add(ErrorCaptcha, "Символы введены не верно");
                }
                Session["captcha"] = null;
            }

            return(ErrorControls.GetCount());
        }
Ejemplo n.º 9
0
        internal bool Validate(FrameworkElement container)
        {
            ErrorControls.Clear();
            Controls.Clear();

            //1.找到所有需要验证的控件
            ForEachElement(container, p =>
            {
                var control = p as Control;
                var textBox = p as TextBox;
                if (control != null && control.IsEnabled && control.Visibility == Visibility.Visible)
                {
                    Controls.Add(control);
                    control.BindingValidationError -= new EventHandler <ValidationErrorEventArgs>(control_BindingValidationError);
                    control.BindingValidationError += new EventHandler <ValidationErrorEventArgs>(control_BindingValidationError);

                    //如果TextBox为只读,则不应该验证
                    if (textBox != null && textBox.IsReadOnly)
                    {
                        control.BindingValidationError -= new EventHandler <ValidationErrorEventArgs>(control_BindingValidationError);
                        Controls.Remove(control);
                    }
                }
            });

            Validate();

            //2.去触发所有验证;
            //if (ErrorControls.Count == 0)
            //{
            //    ValidateObject(entity);
            //}

            //3.定位到第一个控件
            if (ErrorControls.Count > 0)
            {
                ErrorControls.Sort((x, y) =>
                {
                    return(x.TabIndex - y.TabIndex);
                });

                var firstControl = ErrorControls[0];
                ScrollToElement(firstControl);
                firstControl.Dispatcher.BeginInvoke(() =>
                {
                    //Ryan:当disable或者readonly的情况下不能进行聚焦,也不应该聚焦,聚焦也没有用,反而会因为事件冒泡影响RootVisual的KeyDown事件,从而影响快捷键
                    if (firstControl.IsEnabled)
                    {
                        var control = firstControl as TextBox;
                        if (control != null)
                        {
                            if (!control.IsReadOnly)
                            {
                                firstControl.Focus();
                            }
                        }
                        else
                        {
                            firstControl.Focus();
                        }
                    }
                });
            }

            //if (ErrorControls.Count == 0)
            //{
            //    if (entity.HasValidationErrors)
            //    {
            //        entity.ValidationErrors.Clear();
            //    }
            //}

            return(ErrorControls.Count == 0);
        }
Ejemplo n.º 10
0
        private int CheckUser() // возвращаем количество ошибок
        {
            bool check;
            int  i = 0;

            check = ErrorControls.EmptyTextBox(textBox1);
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox2);
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox3);
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox4); // email
            label4.Hide();
            if (check)                                    //если гуд проверим регуляркой на буквы латинского алфавита
            {
                if (!Regex.IsMatch(textBox4.Text, "^[0-9a-z_\\.-]+@[0-9a-z_\\.-]+\\.[a-z]{2}?$"))
                {
                    textBox4.BackColor = Color.Red;
                    check = false;
                }
                else
                {
                    // последняя проврека на уникальность в базе
                    if (!logic.IsUniqueField("email", textBox4.Text))
                    {
                        textBox4.BackColor = Color.Red;
                        check = false;
                        label4.Show();
                    }
                }
            }
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox5); // login
            label12.Hide();
            if (check)                                    //если гуд проверим регуляркой на буквы латинского алфавита
            {
                if (!Regex.IsMatch(textBox5.Text, "^[a-z]+$"))
                {
                    textBox5.BackColor = Color.Red;
                    check = false;
                }
                else // последняя проврека на уникальность в базе
                {
                    if (!logic.IsUniqueField("login", textBox5.Text))
                    {
                        textBox5.BackColor = Color.Red;
                        check = false;
                        label12.Show();
                    }
                }
            }
            ErrorControls.CountErrors(ref i, check);

            check = ErrorControls.EmptyTextBox(textBox6);
            ErrorControls.CountErrors(ref i, check);

            if (image != null)  // image
            {
                button3.BackColor = Color.White;
            }
            else
            {
                button3.BackColor = Color.Red;
                check             = false;
            }
            ErrorControls.CountErrors(ref i, check);

            return(i);
        }