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"); } }
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); }
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})"); } }