/// <summary> /// <para> /// Creates the service dependencies parameter object for a <see cref="ProviderConventionSetBuilder" />. /// </para> /// <para> /// Do not call this constructor directly from either provider or application code as it may change /// as new dependencies are added. Instead, use this type in your constructor so that an instance /// will be created and injected automatically by the dependency injection container. To create /// an instance with some dependent services replaced, first resolve the object from the dependency /// injection container, then replace selected services using the 'With...' methods. Do not call /// the constructor at any point in this process. /// </para> /// <para> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </para> /// </summary> /// <param name="typeMappingSource"> The type mapping source. </param> /// <param name="constructorBindingFactory"> The constructor binding factory. </param> /// <param name="parameterBindingFactories"> The parameter binding factories. </param> /// <param name="memberClassifier"> The member classifier. </param> /// <param name="logger"> The model logger. </param> /// <param name="setFinder"> The set finder. </param> /// <param name="context"> The current context instance. </param> public ProviderConventionSetBuilderDependencies( [NotNull] ITypeMappingSource typeMappingSource, [CanBeNull] IConstructorBindingFactory constructorBindingFactory, [CanBeNull] IParameterBindingFactories parameterBindingFactories, [CanBeNull] IMemberClassifier memberClassifier, [CanBeNull] IDiagnosticsLogger <DbLoggerCategory.Model> logger, [CanBeNull] IDbSetFinder setFinder, [CanBeNull] ICurrentDbContext context) { Check.NotNull(typeMappingSource, nameof(typeMappingSource)); TypeMappingSource = typeMappingSource; if (parameterBindingFactories == null) { parameterBindingFactories = new ParameterBindingFactories( null, new RegisteredServices(Enumerable.Empty <Type>())); } ParameterBindingFactories = parameterBindingFactories; if (memberClassifier == null) { memberClassifier = new MemberClassifier( typeMappingSource, parameterBindingFactories); } MemberClassifier = memberClassifier; if (constructorBindingFactory == null) { ConstructorBindingFactory = new ConstructorBindingFactory( new PropertyParameterBindingFactory(), parameterBindingFactories); } ConstructorBindingFactory = constructorBindingFactory; Logger = logger ?? new DiagnosticsLogger <DbLoggerCategory.Model>( new ScopedLoggerFactory(new LoggerFactory(), dispose: true), new LoggingOptions(), new DiagnosticListener(""), new LoggingDefinitions()); SetFinder = setFinder; Context = context; }
/// <summary> /// <para> /// Creates the service dependencies parameter object for a <see cref="CoreConventionSetBuilder" />. /// </para> /// <para> /// Do not call this constructor directly from either provider or application code as it may change /// as new dependencies are added. Instead, use this type in your constructor so that an instance /// will be created and injected automatically by the dependency injection container. To create /// an instance with some dependent services replaced, first resolve the object from the dependency /// injection container, then replace selected services using the 'With...' methods. Do not call /// the constructor at any point in this process. /// </para> /// <para> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </para> /// </summary> public CoreConventionSetBuilderDependencies( [NotNull] ITypeMappingSource typeMappingSource, [CanBeNull] IConstructorBindingFactory constructorBindingFactory, [CanBeNull] IParameterBindingFactories parameterBindingFactories, [CanBeNull] IMemberClassifier memberClassifier, [CanBeNull] IDiagnosticsLogger <DbLoggerCategory.Model> logger, #pragma warning disable 618 [CanBeNull] ITypeMapper _ = null) // Only needed for D.I. to resolve this constructor #pragma warning restore 618 { Check.NotNull(typeMappingSource, nameof(typeMappingSource)); TypeMappingSource = typeMappingSource; if (parameterBindingFactories == null) { parameterBindingFactories = new ParameterBindingFactories( null, new RegisteredServices(Enumerable.Empty <Type>())); } ParameterBindingFactories = parameterBindingFactories; if (memberClassifier == null) { memberClassifier = new MemberClassifier( typeMappingSource, parameterBindingFactories); } MemberClassifier = memberClassifier; if (constructorBindingFactory == null) { ConstructorBindingFactory = new ConstructorBindingFactory( new PropertyParameterBindingFactory(), parameterBindingFactories); } ConstructorBindingFactory = constructorBindingFactory; Logger = logger ?? new DiagnosticsLogger <DbLoggerCategory.Model>(new LoggerFactory(), new LoggingOptions(), new DiagnosticListener("")); }
/// <summary> /// <para> /// Creates the service dependencies parameter object for a <see cref="CoreConventionSetBuilder" />. /// </para> /// <para> /// Do not call this constructor directly from either provider or application code as it may change /// as new dependencies are added. Instead, use this type in your constructor so that an instance /// will be created and injected automatically by the dependency injection container. To create /// an instance with some dependent services replaced, first resolve the object from the dependency /// injection container, then replace selected services using the 'With...' methods. Do not call /// the constructor at any point in this process. /// </para> /// <para> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </para> /// </summary> public CoreConventionSetBuilderDependencies( [NotNull] ITypeMappingSource typeMappingSource, [CanBeNull] IConstructorBindingFactory constructorBindingFactory, [CanBeNull] IParameterBindingFactories parameterBindingFactories, [CanBeNull] IMemberClassifier memberClassifier) { Check.NotNull(typeMappingSource, nameof(typeMappingSource)); TypeMappingSource = typeMappingSource; if (parameterBindingFactories == null) { parameterBindingFactories = new ParameterBindingFactories( null, new RegisteredServices(Enumerable.Empty <Type>())); } ParameterBindingFactories = parameterBindingFactories; if (memberClassifier == null) { memberClassifier = new MemberClassifier( typeMappingSource, parameterBindingFactories); } MemberClassifier = memberClassifier; if (constructorBindingFactory == null) { ConstructorBindingFactory = new ConstructorBindingFactory( new PropertyParameterBindingFactory(), parameterBindingFactories); } ConstructorBindingFactory = constructorBindingFactory; }
public void JaggedArray_Should_Return_Correct_Classifications() { Assert.AreEqual(new[] { "Open", "Senior", "Open", "Senior" }, MemberClassifier.OpenOrSenior(new[] { new[] { 45, 12 }, new[] { 55, 21 }, new[] { 19, 2 }, new[] { 104, 20 } })); Assert.AreEqual(new[] { "Open", "Open", "Open", "Open" }, MemberClassifier.OpenOrSenior(new[] { new[] { 3, 12 }, new[] { 55, 1 }, new[] { 91, -2 }, new[] { 54, 23 } })); Assert.AreEqual(new[] { "Senior", "Open", "Open", "Open" }, MemberClassifier.OpenOrSenior(new[] { new[] { 59, 12 }, new[] { 45, 21 }, new[] { -12, -2 }, new[] { 12, 12 } })); }