/// <summary> /// Creates the upsert helper /// </summary> public UpsertHelper(string connectionString, ClassMap classMap, string tableName = null, string typeName = null, string procName = null, string schema = "dbo", Settings settings = null) { _factory = new SqlConnectionFactory(connectionString); _classMap = classMap ?? throw new ArgumentNullException(nameof(classMap)); _settings = settings ?? new Settings(); var upsertTableName = tableName ?? typeof(T).Name; var dataTypeName = typeName ?? $"{upsertTableName}Type"; var procedureName = procName ?? $"{upsertTableName}Upsert"; _schemaManager = GetSchemaCreator(schema, upsertTableName, dataTypeName, procedureName); _activator = new Activator(typeof(T), _classMap.Properties.Select(p => p.PropertyName)); }
public void CanCreateClassFromProperties() { var activator = new Activator(typeof(SomeClassWithProperties), new[] { nameof(SomeClassWithProperties.Number), nameof(SomeClassWithProperties.Text) }); var values = new TestValueLookup(new Dictionary <string, object> { { nameof(SomeClassWithProperties.Number), 123 }, { nameof(SomeClassWithProperties.Text), "HELLO" }, }); var instance = (SomeClassWithProperties)activator.CreateInstance(values); Assert.That(instance.Number, Is.EqualTo(123)); Assert.That(instance.Text, Is.EqualTo("HELLO")); }
public void SkipsPropertyWhenNotIncluded_Constructor() { var activator = new Activator(typeof(SomeClassWithConstructor), new[] { nameof(SomeClassWithConstructor.Number) }); var values = new TestValueLookup(new Dictionary <string, object> { { nameof(SomeClassWithConstructor.Number), 123 }, { nameof(SomeClassWithConstructor.Text), "HELLO" }, }); var instance = (SomeClassWithConstructor)activator.CreateInstance(values); Assert.That(instance.Number, Is.EqualTo(123)); Assert.That(instance.Text, Is.EqualTo(null)); }