MigSharp.Process.MigrationSelector.MigrationSelector C# (CSharp) Method

MigrationSelector() public method

public MigrationSelector ( IEnumerable importedMigrations, IEnumerable executedMigrations ) : System
importedMigrations IEnumerable
executedMigrations IEnumerable
return System
        public MigrationSelector(IEnumerable<ImportedMigration> importedMigrations, IEnumerable<IMigrationMetadata> executedMigrations)
        {
            var duplicateMigration = importedMigrations
                .GroupBy(m => m.Metadata, (metadata, enumerable) => new { metadata.Timestamp, metadata.ModuleName, Count = enumerable.Count() }, new MigrationMetadataComparer())
                .FirstOrDefault(m => m.Count > 1);
            if (duplicateMigration != null)
            {
                throw new InvalidMigrationExportException(string.Format(CultureInfo.CurrentCulture,
                    "The migration with timestamp {0} and module name '{1}' is defined more than once.",
                    duplicateMigration.Timestamp,
                    duplicateMigration.ModuleName));
            }

            _importedMigrations = importedMigrations;
            _executedMigrations = executedMigrations;
        }