Beispiel #1
0
        public IEnumerable <ValidationError> Visit(DateTimeFieldProperties properties)
        {
            if (!properties.Editor.IsEnumValue())
            {
                yield return(new ValidationError(Not.Valid(nameof(properties.Editor)),
                                                 nameof(properties.Editor)));
            }

            if (IsMaxGreaterThanMin(properties.MaxValue, properties.MinValue))
            {
                yield return(new ValidationError(Not.GreaterThan(nameof(properties.MaxValue), nameof(properties.MinValue)),
                                                 nameof(properties.MinValue),
                                                 nameof(properties.MaxValue)));
            }

            if (properties.CalculatedDefaultValue.HasValue)
            {
                if (!properties.CalculatedDefaultValue.Value.IsEnumValue())
                {
                    yield return(new ValidationError(Not.Valid(nameof(properties.CalculatedDefaultValue)),
                                                     nameof(properties.CalculatedDefaultValue)));
                }

                if (properties.DefaultValue.HasValue)
                {
                    yield return(new ValidationError(T.Get("schemas.dateTimeCalculatedDefaultAndDefaultError"),
                                                     nameof(properties.CalculatedDefaultValue),
                                                     nameof(properties.DefaultValue)));
                }
            }
        }
Beispiel #2
0
        public IEnumerable <IValidator> Visit(DateTimeFieldProperties properties)
        {
            if (properties.IsRequired)
            {
                yield return(new RequiredValidator());
            }

            if (properties.MinValue.HasValue || properties.MaxValue.HasValue)
            {
                yield return(new RangeValidator <Instant>(properties.MinValue, properties.MaxValue));
            }
        }
        public void Should_not_add_error_if_sut_is_valid()
        {
            var sut = new DateTimeFieldProperties
            {
                MinValue     = FutureDays(10),
                MaxValue     = FutureDays(20),
                DefaultValue = FutureDays(15)
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            Assert.Empty(errors);
        }
        public void Should_add_error_if_default_value_is_greater_than_min()
        {
            var sut = new DateTimeFieldProperties {
                MaxValue = FutureDays(10), DefaultValue = FutureDays(15)
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Default value must be less than max value.", "DefaultValue")
            });
        }
        public void Should_add_error_if_editor_is_not_valid()
        {
            var sut = new DateTimeFieldProperties {
                Editor = (DateTimeFieldEditor)123
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Editor is not a valid value.", "Editor")
            });
        }
        public void Should_add_error_if_calculated_default_value_is_not_valid()
        {
            var sut = new DateTimeFieldProperties {
                CalculatedDefaultValue = (DateTimeCalculatedDefaultValue)123
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Calculated default value is not valid.", "CalculatedDefaultValue")
            });
        }
Beispiel #7
0
        public JToken Visit(DateTimeFieldProperties properties)
        {
            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Now)
            {
                return(now.ToString());
            }

            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Today)
            {
                return(now.ToString().Substring(10));
            }

            return(properties.DefaultValue?.ToString());
        }
        public JToken Visit(DateTimeFieldProperties properties)
        {
            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Now)
            {
                return(now.ToString());
            }

            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Today)
            {
                return(now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
            }

            return(properties.DefaultValue?.ToString());
        }
        public void Should_add_error_if_min_greater_than_max()
        {
            var sut = new DateTimeFieldProperties {
                MinValue = FutureDays(10), MaxValue = FutureDays(5)
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max value must be greater than min value.", "MinValue", "MaxValue")
            });
        }
        public void Should_add_error_if_calculated_default_value_default_value_is_defined()
        {
            var sut = new DateTimeFieldProperties {
                CalculatedDefaultValue = DateTimeCalculatedDefaultValue.Now, DefaultValue = FutureDays(10)
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Calculated default value and default value cannot be used together.", "CalculatedDefaultValue", "DefaultValue")
            });
        }
        public IJsonValue Visit(DateTimeFieldProperties properties, Args args)
        {
            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Now)
            {
                return(JsonValue.Create(args.Now));
            }

            if (properties.CalculatedDefaultValue == DateTimeCalculatedDefaultValue.Today)
            {
                return(JsonValue.Create($"{args.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)}T00:00:00Z"));
            }

            var value = GetDefaultValue(properties.DefaultValue, properties.DefaultValues, args.Partition);

            return(JsonValue.Create(value));
        }
Beispiel #12
0
        public IEnumerable <ValidationError> Visit(DateTimeFieldProperties properties)
        {
            if (!properties.Editor.IsEnumValue())
            {
                yield return(new ValidationError(Not.Valid("Editor"),
                                                 nameof(properties.Editor)));
            }

            if (properties.DefaultValue.HasValue && properties.MinValue.HasValue && properties.DefaultValue.Value < properties.MinValue.Value)
            {
                yield return(new ValidationError(Not.GreaterEquals("Default value", "min value"),
                                                 nameof(properties.DefaultValue)));
            }

            if (properties.DefaultValue.HasValue && properties.MaxValue.HasValue && properties.DefaultValue.Value > properties.MaxValue.Value)
            {
                yield return(new ValidationError(Not.LessEquals("Default value", "max value"),
                                                 nameof(properties.DefaultValue)));
            }

            if (properties.MaxValue.HasValue && properties.MinValue.HasValue && properties.MinValue.Value >= properties.MaxValue.Value)
            {
                yield return(new ValidationError(Not.GreaterThan("Max value", "min value"),
                                                 nameof(properties.MinValue),
                                                 nameof(properties.MaxValue)));
            }

            if (properties.CalculatedDefaultValue.HasValue)
            {
                if (!properties.CalculatedDefaultValue.Value.IsEnumValue())
                {
                    yield return(new ValidationError(Not.Valid("Calculated default value"),
                                                     nameof(properties.CalculatedDefaultValue)));
                }

                if (properties.DefaultValue.HasValue)
                {
                    yield return(new ValidationError("Calculated default value and default value cannot be used together.",
                                                     nameof(properties.CalculatedDefaultValue),
                                                     nameof(properties.DefaultValue)));
                }
            }
        }
        public IEnumerable <ValidationError> Visit(DateTimeFieldProperties properties)
        {
            if (!properties.Editor.IsEnumValue())
            {
                yield return(new ValidationError("Editor is not a valid value.",
                                                 nameof(properties.Editor)));
            }

            if (properties.DefaultValue.HasValue && properties.MinValue.HasValue && properties.DefaultValue.Value < properties.MinValue.Value)
            {
                yield return(new ValidationError("Default value must be greater than min value.",
                                                 nameof(properties.DefaultValue)));
            }

            if (properties.DefaultValue.HasValue && properties.MaxValue.HasValue && properties.DefaultValue.Value > properties.MaxValue.Value)
            {
                yield return(new ValidationError("Default value must be less than max value.",
                                                 nameof(properties.DefaultValue)));
            }

            if (properties.MaxValue.HasValue && properties.MinValue.HasValue && properties.MinValue.Value >= properties.MaxValue.Value)
            {
                yield return(new ValidationError("Max value must be greater than min value.",
                                                 nameof(properties.MinValue),
                                                 nameof(properties.MaxValue)));
            }

            if (properties.CalculatedDefaultValue.HasValue)
            {
                if (!properties.CalculatedDefaultValue.Value.IsEnumValue())
                {
                    yield return(new ValidationError("Calculated default value is not valid.",
                                                     nameof(properties.CalculatedDefaultValue)));
                }

                if (properties.DefaultValue.HasValue)
                {
                    yield return(new ValidationError("Calculated default value and default value cannot be used together.",
                                                     nameof(properties.CalculatedDefaultValue),
                                                     nameof(properties.DefaultValue)));
                }
            }
        }
Beispiel #14
0
 public static Field <DateTimeFieldProperties> DateTime(long id, string name, Partitioning partitioning, DateTimeFieldProperties properties = null)
 {
     return(new Field <DateTimeFieldProperties>(id, name, partitioning, properties ?? new DateTimeFieldProperties()));
 }
Beispiel #15
0
 public FieldPropertiesDto Visit(DateTimeFieldProperties properties)
 {
     return(SimpleMapper.Map(properties, new DateTimeFieldPropertiesDto()));
 }
Beispiel #16
0
 private static Field <DateTimeFieldProperties> Field(DateTimeFieldProperties properties)
 {
     return(Fields.DateTime(1, "my-datetime", Partitioning.Invariant, properties));
 }
        private static FieldPropertiesDto Convert(DateTimeFieldProperties source)
        {
            var result = SimpleMapper.Map(source, new DateTimeFieldPropertiesDto());

            return(result);
        }
Beispiel #18
0
 private static DateTimeField Field(DateTimeFieldProperties properties)
 {
     return(new DateTimeField(1, "my-datetime", Partitioning.Invariant, properties));
 }
Beispiel #19
0
 public static Schema AddDateTime(this Schema schema, long id, string name, Partitioning partitioning, DateTimeFieldProperties properties = null)
 {
     return(schema.AddField(DateTime(id, name, partitioning, properties)));
 }