private async Task CreateCore(CreateContent c) { var status = await context.GetInitialStatusAsync(); GuardContent.CanCreate(c, context.Schema); var dataNew = c.Data; if (!c.DoNotValidate) { await context.ValidateInputAsync(dataNew); } if (!c.DoNotScript) { dataNew = await context.ExecuteScriptAndTransformAsync(s => s.Create, new ScriptVars { Operation = "Create", Data = dataNew, Status = status, StatusOld = default });
public override Task <object?> ExecuteAsync(IAggregateCommand command) { switch (command) { case UpsertContent uspertContent: { if (Version > EtagVersion.Empty) { var updateContent = SimpleMapper.Map(uspertContent, new UpdateContent()); return(ExecuteAsync(updateContent)); } else { var createContent = SimpleMapper.Map(uspertContent, new CreateContent()); return(ExecuteAsync(createContent)); } } case CreateContent createContent: return(CreateReturnAsync(createContent, async c => { await LoadContext(c, c.OptimizeValidation); await GuardContent.CanCreate(c, context.Workflow, context.Schema); var status = await context.GetInitialStatusAsync(); if (!c.DoNotValidate) { await context.ValidateInputAsync(c.Data, createContent.Publish); } if (!c.DoNotScript) { c.Data = await context.ExecuteScriptAndTransformAsync(s => s.Create, new ScriptVars { Operation = "Create", Data = c.Data, Status = status, StatusOld = default }); } await context.GenerateDefaultValuesAsync(c.Data); if (!c.DoNotValidate) { await context.ValidateContentAsync(c.Data); } if (!c.DoNotScript && c.Publish) { c.Data = await context.ExecuteScriptAndTransformAsync(s => s.Change, new ScriptVars { Operation = "Published", Data = c.Data, Status = Status.Published, StatusOld = default });