From 18e9522f78e16192f35aee5ec16830c74ea3b14c Mon Sep 17 00:00:00 2001 From: glucaci Date: Tue, 3 Dec 2019 14:27:23 +0100 Subject: [PATCH 1/2] Replace obsolate index creation method --- .../Services/MongoPersistenceProvider.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs b/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs index 940b99194..0c00cea13 100644 --- a/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs +++ b/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs @@ -72,8 +72,14 @@ static void CreateIndexes(MongoPersistenceProvider instance) { if (!indexesCreated) { - instance.WorkflowInstances.Indexes.CreateOne(Builders.IndexKeys.Ascending(x => x.NextExecution), new CreateIndexOptions() { Background = true, Name = "idx_nextExec" }); - instance.Events.Indexes.CreateOne(Builders.IndexKeys.Ascending(x => x.IsProcessed), new CreateIndexOptions() { Background = true, Name = "idx_processed" }); + instance.WorkflowInstances.Indexes.CreateOne(new CreateIndexModel( + Builders.IndexKeys.Ascending(x => x.NextExecution), + new CreateIndexOptions {Background = true, Name = "idx_nextExec"})); + + instance.Events.Indexes.CreateOne(new CreateIndexModel( + Builders.IndexKeys.Ascending(x => x.IsProcessed), + new CreateIndexOptions {Background = true, Name = "idx_processed"})); + indexesCreated = true; } } From 1ef942a2a508bcea676042288cded3421a4d897a Mon Sep 17 00:00:00 2001 From: glucaci Date: Tue, 3 Dec 2019 14:34:39 +0100 Subject: [PATCH 2/2] Add enum to string convention --- .../Services/MongoPersistenceProvider.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs b/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs index 0c00cea13..91e796314 100644 --- a/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs +++ b/src/providers/WorkflowCore.Persistence.MongoDB/Services/MongoPersistenceProvider.cs @@ -5,6 +5,8 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using MongoDB.Bson; +using MongoDB.Bson.Serialization.Conventions; using MongoDB.Driver.Linq; using WorkflowCore.Interface; using WorkflowCore.Models; @@ -24,6 +26,13 @@ public MongoPersistenceProvider(IMongoDatabase database) static MongoPersistenceProvider() { + ConventionRegistry.Register( + "workflow.conventions", + new ConventionPack + { + new EnumRepresentationConvention(BsonType.String) + }, t => t.FullName?.StartsWith("WorkflowCore") ?? false); + BsonClassMap.RegisterClassMap(x => { x.MapIdProperty(y => y.Id)