public MappingTablePipelineFactory(
            [NotNull] IPropertySetterProvider propertySetterProvider,
            [NotNull] IExtractPrimitivePipelineSetupHelper extractPrimitivePipelineSetupHelper)
        {
            Guard.AgainstArgumentIsNull(propertySetterProvider, nameof(propertySetterProvider));
            Guard.AgainstArgumentIsNull(extractPrimitivePipelineSetupHelper, nameof(extractPrimitivePipelineSetupHelper));

            _propertySetterProvider = propertySetterProvider;
            _extractPrimitivePipelineSetupHelper = extractPrimitivePipelineSetupHelper;
        }
예제 #2
0
        private static IMigrationInfo GetPlatformMigrationInfo(Type type)
        {
            Guard.AgainstArgumentIsNull(type, nameof(type));
            Guard.AgainstNull(type.FullName, "type.FullName != null");

            var migrationMetadata           = type.GetOneAttribute <MigrationTimestampAttribute>();
            Func <IMigration> migrationFunc = () => (IMigration)type.Assembly.CreateInstance(type.FullName);
            var description = FormattableString.Invariant($"{migrationMetadata.MigrationDate:g} - {type.FullName}");

            var migrationInfo = new MigrationInfo(migrationMetadata.Version, description, TransactionBehavior.Default, migrationFunc);

            foreach (var allAttribute in type.GetAllAttributes <MigrationTraitAttribute>())
            {
                migrationInfo.AddTrait(allAttribute.Name, allAttribute.Value);
            }
            return(migrationInfo);
        }