Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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));
        }