public void Run(Type type, BsonDocument document) { var documentVersion = _documentVersionService.GetVersionOrDefault(document); var currentOrLatest = _documentVersionService.GetCurrentOrLatestMigrationVersion(type); if (documentVersion == currentOrLatest) { return; } MigrateUpOrDown(type, document, documentVersion, currentOrLatest); }
private FilterDefinition <BsonDocument> CreateQueryForRelevantDocuments( Type type) { var currentVersion = _documentVersionService.GetCurrentOrLatestMigrationVersion(type); var existFilter = Builders <BsonDocument> .Filter.Exists(_documentVersionService.GetVersionFieldName(), false); var notEqualFilter = Builders <BsonDocument> .Filter.Ne( _documentVersionService.GetVersionFieldName(), currentVersion); return(Builders <BsonDocument> .Filter.Or(existFilter, notEqualFilter)); }