/// <inheritdoc />
        public virtual IEnumerable <IMigration> GetMigrationsAfter(IAppliedMigration currentVersion)
        {
            var migrations = GetAllMigrations();

            if (currentVersion != null)
            {
                migrations = migrations.Where(m => m.Version > currentVersion.Version);
            }

            return(migrations.OrderBy(m => m.Version));
        }
 /// <inheritdoc />
 public virtual void CompleteMigration(IAppliedMigration appliedMigration)
 {
     appliedMigration.Complete();
     GetAppliedMigrationsCollection()
     .ReplaceOne(m => m.Version == appliedMigration.Version, appliedMigration as AppliedMigration);
 }