Exemplo n.º 1
0
        public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
        {
            BindingGroup bindingGroup = (BindingGroup)value;

            if (bindingGroup.Items.Count > 0)
            {
                SourcePostgres.Model.PgStyleLayerM layerStyle = (SourcePostgres.Model.PgStyleLayerM)bindingGroup.Items[0];

                String fontName = (String)bindingGroup.GetValue(layerStyle, "FontName");
                if (String.IsNullOrWhiteSpace(fontName))
                {
                    return(new ValidationResult(false, "Не задан шрифт точечных объектов"));
                }

                object penWidthObj = bindingGroup.GetValue(layerStyle, "PenWidth");
                int    penWidth    = -1;
                try
                {
                    penWidth = Convert.ToInt32(penWidthObj);
                }
                catch (Exception ex)
                {
                    String mes = "Ошибка в значении толщины линий: \n" + ex.Message;
                    return(new ValidationResult(false, mes));
                }

                return(ValidationResult.ValidResult);
            }
            else
            {
                return(new ValidationResult(false, "Не выбран объект для отображения"));
            }
        }
Exemplo n.º 2
0
        public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
        {
            BindingGroup bindingGroup = (BindingGroup)value;

            if (bindingGroup.Items.Count > 0)
            {
                CosmeticTableBaseM cosmLayer = (CosmeticTableBaseM)bindingGroup.Items[0];
                SourcePostgres.Model.PgStyleLayerM layerStyle = (SourcePostgres.Model.PgStyleLayerM)bindingGroup.Items[1];

                CosmeticDataRepositoryVM cosmRepo = cosmLayer.Source as CosmeticDataRepositoryVM;

                String cosmName = (String)bindingGroup.GetValue(cosmLayer, "Text");
                if (String.IsNullOrWhiteSpace(cosmName))
                {
                    return(new ValidationResult(false, "Не задано название косметического слоя"));
                }

                bool cosmNameExists =
                    (from TableBaseM cosmTable in cosmRepo.Tables where (cosmTable.Text == cosmName && cosmLayer != cosmTable) select cosmTable).Count() > 0;
                if (cosmNameExists)
                {
                    return(new ValidationResult(false, "Слой с таким названием уже существует"));
                }

                BooleanYesNoConverter boolYesNo = new BooleanYesNoConverter();
                bool useBounds = Convert.ToBoolean(boolYesNo.ConvertBack(bindingGroup.GetValue(layerStyle, "UseBounds"), null, null, null));

                object minScaleObj = bindingGroup.GetValue(layerStyle, "MinScale");
                object maxScaleObj = bindingGroup.GetValue(layerStyle, "MaxScale");

                int minScale = -1;
                int maxScale = -1;

                try
                {
                    minScale = Convert.ToInt32(minScaleObj);
                }
                catch (Exception ex)
                {
                    String mes = "Ошибка в значении нижней границы масштаба: \n" + ex.Message;
                    return(new ValidationResult(false, mes));
                }
                try
                {
                    maxScale = Convert.ToInt32(maxScaleObj);
                }
                catch (Exception ex)
                {
                    String mes = "Ошибка в значении верхней границы масштаба: \n" + ex.Message;
                    return(new ValidationResult(false, mes));
                }
                if (useBounds)
                {
                    if (minScale < 0)
                    {
                        return(new ValidationResult(false, "Минимальное значение не может быть отрицательным числом"));
                    }
                    if (maxScale < 0)
                    {
                        return(new ValidationResult(false, "Максимальное значение не может быть отрицательным числом"));
                    }
                    if (minScale > maxScale)
                    {
                        return(new ValidationResult(false, "Минимальное значение не может быть больше максимального"));
                    }
                }

                return(ValidationResult.ValidResult);
            }
            else
            {
                return(new ValidationResult(false, "Не выбран объект для отображения"));
            }
        }