From d6e9740babaeb46e29a202cf5ce184b4190ce2d7 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Wed, 10 Oct 2018 16:00:50 +0200 Subject: [PATCH] Solved problem with importing singleton schemas with validations. --- .../Contents/Commands/CreateContent.cs | 2 ++ src/Squidex.Domain.Apps.Entities/Contents/ContentGrain.cs | 6 +++++- .../Contents/SingletonCommandMiddleware.cs | 2 +- .../Contents/State/ContentState.cs | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Squidex.Domain.Apps.Entities/Contents/Commands/CreateContent.cs b/src/Squidex.Domain.Apps.Entities/Contents/Commands/CreateContent.cs index 2eec65f73..c382d28c3 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/Commands/CreateContent.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/Commands/CreateContent.cs @@ -18,6 +18,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.Commands public bool Publish { get; set; } + public bool DoNotValidate { get; set; } + public CreateContent() { ContentId = Guid.NewGuid(); diff --git a/src/Squidex.Domain.Apps.Entities/Contents/ContentGrain.cs b/src/Squidex.Domain.Apps.Entities/Contents/ContentGrain.cs index e01f16486..85d847e62 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/ContentGrain.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/ContentGrain.cs @@ -68,7 +68,11 @@ namespace Squidex.Domain.Apps.Entities.Contents await ctx.ExecuteScriptAndTransformAsync(x => x.ScriptCreate, "Create", c, c.Data); await ctx.EnrichAsync(c.Data); - await ctx.ValidateAsync(c.Data); + + if (!c.DoNotValidate) + { + await ctx.ValidateAsync(c.Data); + } if (c.Publish) { diff --git a/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs b/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs index 71fa52761..401a0a67b 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs @@ -31,7 +31,7 @@ namespace Squidex.Domain.Apps.Entities.Contents var data = new NamedContentData(); var contentId = schemaId.Id; - var content = new CreateContent { Data = data, ContentId = contentId, SchemaId = schemaId }; + var content = new CreateContent { Data = data, ContentId = contentId, SchemaId = schemaId, DoNotValidate = true }; SimpleMapper.Map(createSchema, content); diff --git a/src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs b/src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs index 27c06a038..15f2fc357 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs @@ -86,14 +86,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.State protected void On(ContentStatusChanged @event) { ScheduleJob = null; - IsPending = false; - Status = @event.Status; if (@event.Status == Status.Published) { Data = DataDraft; } + + IsPending = false; } protected void On(ContentSchedulingCancelled @event)