private string?DeterminDtoPropertyCheck(DtoProperty property, DtoPropertyIsValidCheckConfig dtoValidityCheck)
        {
            if (dtoValidityCheck.CheckIsValid)
            {
                return($"{property.PropertyName}?.CheckIsValid() is true");
            }

            var basicValidityCheck = new DtoBasicPropertyIsValidCheckConfig(dtoValidityCheck.AllowNull);

            return(DeterminBasicPropertyCheck(property, basicValidityCheck));
        }
 private string?DeterminBasicPropertyCheck(DtoProperty property, DtoBasicPropertyIsValidCheckConfig validityCheckConfig)
 {
     if (validityCheckConfig.AllowNull)
     {
         return(null);
     }
     //else if (validityCheckConfig.IsCollection)
     //{
     //}
     else
     {
         //Make sure it's not null
         return($"{property.PropertyName} is not null");
     }
 }
        public string?GenerateCheckIsValidCode(DtoProperty property)
        {
            switch (property.IsValidCheckConfig)
            {
            case DtoStringPropertyIsValidCheckConfig stringValidityCheck:
                return(DeterminStringPropertyCheck(property, stringValidityCheck));

            case DtoPropertyIsValidCheckConfig dtoValidityCheck:
                return(DeterminDtoPropertyCheck(property, dtoValidityCheck));

            case DtoBasicPropertyIsValidCheckConfig basicValidityCheck:
                return(DeterminBasicPropertyCheck(property, basicValidityCheck));

            default:
                throw new Exception("This shouldn't happen");
            }
        }
Exemplo n.º 4
0
        public void OnePropertyStrongPropertyTests()
        {
            DtoInfo <OneProperty>          info     = DtoInfo.GetInfo <OneProperty>();
            DtoProperty <OneProperty, int> property = info.GetProperty <int>("Integer");

            info.GetProperty(x => x.Integer).Should().Be(property);
            property.Name.Should().Be("Integer");
            property.ValueType.Should().Be(typeof(int));
            property.IsReadOnly.Should().BeFalse();
            ((PropertyInfo)property.MemberInfo).GetMethod !.Name.Should().Be("get_Integer");

            OneProperty dto = new() { Integer = 42 };

            property.GetValue(dto).Should().Be(dto.Integer);
            property.SetValue(dto, 24);
            dto.Integer.Should().Be(24);
        }
Exemplo n.º 5
0
        public void OneFieldStrongFieldTests()
        {
            DtoInfo <OneField>          info     = DtoInfo.GetInfo <OneField>();
            DtoProperty <OneField, int> property = info.GetProperty <int>("Integer");

            info.GetProperty(x => x.Integer).Should().Be(property);
            property.Name.Should().Be("Integer");
            property.ValueType.Should().Be(typeof(int));
            property.IsReadOnly.Should().BeFalse();
            ((FieldInfo)property.MemberInfo).Name.Should().Be("Integer");

            OneField dto = new() { Integer = 42 };

            property.GetValue(dto).Should().Be(dto.Integer);
            property.SetValue(dto, 24);
            dto.Integer.Should().Be(24);
        }
        private string?DeterminStringPropertyCheck(DtoProperty property, DtoStringPropertyIsValidCheckConfig validityCheckConfig)
        {
            switch (validityCheckConfig.StringIsValidCheck)
            {
            case StringIsValidCheckType.AllowNull:
                return(null);

            case StringIsValidCheckType.AllowEmptyString:
                return($"{property.PropertyName} is object");

            case StringIsValidCheckType.AllowWhenOnlyWhiteSpace:
                return($"!string.IsNullOrEmpty({property.PropertyName})");

            case StringIsValidCheckType.RequiresNonWhitespaceText:
                return($"!string.IsNullOrWhiteSpace({property.PropertyName})");

            default:
                return($"!string.IsNullOrWhiteSpace({property.PropertyName})");
            }
        }