private bool IsStrongTypeId(IPropertyInspector propertyInspector) { var systemType = propertyInspector.Type.GetUnderlyingSystemType(); if (systemType is null) { return(false); } return(StrongTypeIdHelper.IsStrongTypeId(systemType)); }
public static IRequestExecutorBuilder BindStrongTypeInAssembly(this IRequestExecutorBuilder builder, Assembly assembly) { foreach (var type in assembly.GetTypes()) { if (StrongTypeIdHelper.IsStrongTypeId(type)) { var graphType = StrongTypeIdGraphType.MakeType(type); builder.BindRuntimeType(type, graphType); } } return(builder); }
public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) { StrongTypeIdHelper.IsStrongTypeId(typeToConvert, out var idType); var strongType = typeof(StrongTypeIdConverterInner <>) .MakeGenericType(new Type[] { idType }); JsonConverter converter = (JsonConverter)Activator.CreateInstance( strongType, BindingFlags.Instance | BindingFlags.Public, binder: null, args: new object[] { options }, culture: null); return(converter); }
public void Apply(IIdentityInstance instance) { var systemType = instance.Type.GetUnderlyingSystemType(); if (systemType is null) { return; } var isStrongType = StrongTypeIdHelper.IsStrongTypeId(systemType); if (isStrongType) { var customType = typeof(NHStrongTypeIdUserType <>).MakeGenericType(systemType); instance.CustomType(customType); } }
public void ProcessPropertyAdded(IConventionPropertyBuilder propertyBuilder, IConventionContext <IConventionPropertyBuilder> context) { if (propertyBuilder.Metadata.ClrType is null) { return; } Type idType; var isStrongTypeId = StrongTypeIdHelper.IsStrongTypeId(propertyBuilder.Metadata.ClrType, out idType); if (!isStrongTypeId) { return; } var valueConverter = CreateValueConverter(propertyBuilder.Metadata.ClrType, idType); propertyBuilder.HasConversion(valueConverter); }
public void ProcessEntityTypeAdded(IConventionEntityTypeBuilder entityTypeBuilder, IConventionContext <IConventionEntityTypeBuilder> context) { if (entityTypeBuilder.Metadata.ClrType is null) { return; } var properties = entityTypeBuilder.Metadata.ClrType.GetProperties() .Where(p => StrongTypeIdHelper.IsStrongTypeId(p.PropertyType)) .ToList(); if (entityTypeBuilder.Metadata is IMutableEntityType entityType) { foreach (var property in properties) { entityType.AddProperty(property.Name, property.PropertyType, property); } } }
public override bool CanConvert(Type typeToConvert) { return(StrongTypeIdHelper.IsStrongTypeId(typeToConvert)); }
public override bool CanConvert(Type objectType) { return(StrongTypeIdHelper.IsStrongTypeId(objectType)); }