diff --git a/src/providers/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs b/src/providers/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs index d3a190930..e42d025ea 100644 --- a/src/providers/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs +++ b/src/providers/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs @@ -54,6 +54,7 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts ConfigureActivityDefinition(modelBuilder); ConfigureActivityInstance(modelBuilder); ConfigureBlockingActivity(modelBuilder); + ConfigureScheduledActivity(modelBuilder); ConfigureConnectionDefinition(modelBuilder); } @@ -78,6 +79,7 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); + modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); modelBuilder.ApplyConfiguration(new SchemaEntityTypeConfiguration(DbContextCustomSchema)); @@ -128,11 +130,8 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts .WithOne(x => x.WorkflowInstance); entity - .Property(x => x.ScheduledActivities) - .HasConversion( - x => Serialize(x), - x => Deserialize>(x) - ); + .HasMany(x => x.ScheduledActivities) + .WithOne(x => x.WorkflowInstance); } private void ConfigureActivityDefinition(ModelBuilder modelBuilder) @@ -143,7 +142,7 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts entity .Property(x => x.State) - .HasConversion(x => Serialize(x), x => Deserialize(x)); + .HasConversion(x => Serialize(x), x => Deserialize(x)); } private void ConfigureConnectionDefinition(ModelBuilder modelBuilder) @@ -161,11 +160,11 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts entity .Property(x => x.State) - .HasConversion(x => Serialize(x), x => Deserialize(x)); + .HasConversion(x => Serialize(x), x => Deserialize(x)); entity .Property(x => x.Output) - .HasConversion(x => Serialize(x), x => Deserialize(x)); + .HasConversion(x => Serialize(x), x => Deserialize(x)); } private void ConfigureBlockingActivity(ModelBuilder modelBuilder) @@ -174,6 +173,17 @@ namespace Elsa.Persistence.EntityFrameworkCore.DbContexts entity.HasKey(x => x.Id); } + + private void ConfigureScheduledActivity(ModelBuilder modelBuilder) + { + var entity = modelBuilder.Entity(); + + entity.HasKey(x => x.Id); + + entity + .Property(x => x.Input) + .HasConversion(x => Serialize(x), x => Deserialize(x)); + } private string Serialize(object value) { diff --git a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityDefinitionEntity.cs b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityDefinitionEntity.cs index 17c068adb..f76a88483 100644 --- a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityDefinitionEntity.cs +++ b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityDefinitionEntity.cs @@ -1,3 +1,4 @@ +using Elsa.Models; using Newtonsoft.Json.Linq; namespace Elsa.Persistence.EntityFrameworkCore.Entities @@ -10,6 +11,6 @@ namespace Elsa.Persistence.EntityFrameworkCore.Entities public string Type { get; set; } public int Left { get; set; } public int Top { get; set; } - public JObject State { get; set; } + public Variables State { get; set; } } } \ No newline at end of file diff --git a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityInstanceEntity.cs b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityInstanceEntity.cs index 90f7b86c9..4a96d7fdd 100644 --- a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityInstanceEntity.cs +++ b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ActivityInstanceEntity.cs @@ -1,3 +1,4 @@ +using Elsa.Models; using Newtonsoft.Json.Linq; namespace Elsa.Persistence.EntityFrameworkCore.Entities @@ -8,7 +9,7 @@ namespace Elsa.Persistence.EntityFrameworkCore.Entities public string ActivityId { get; set; } public WorkflowInstanceEntity WorkflowInstance { get; set; } public string Type { get; set; } - public JObject State { get; set; } - public JObject Output { get; set; } + public Variables State { get; set; } + public Variables Output { get; set; } } } \ No newline at end of file diff --git a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ScheduledActivityEntity.cs b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ScheduledActivityEntity.cs new file mode 100644 index 000000000..3203bf576 --- /dev/null +++ b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/ScheduledActivityEntity.cs @@ -0,0 +1,12 @@ +using Elsa.Models; + +namespace Elsa.Persistence.EntityFrameworkCore.Entities +{ + public class ScheduledActivityEntity + { + public int Id { get; set; } + public WorkflowInstanceEntity WorkflowInstance { get; set; } + public string ActivityId { get; set; } + public Variable? Input { get; set; } + } +} \ No newline at end of file diff --git a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs index 58c7ac0a9..a6f17fe92 100644 --- a/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs +++ b/src/providers/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs @@ -23,6 +23,6 @@ namespace Elsa.Persistence.EntityFrameworkCore.Entities public WorkflowFault Fault { get; set; } public ICollection Activities { get; set; } public ICollection BlockingActivities { get; set; } - public Stack ScheduledActivities { get; set; } + public Stack ScheduledActivities { get; set; } } } \ No newline at end of file