From f8d8e7d752c2d4baeccddd3c8152fb8b905083ae Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Fri, 17 Jan 2025 22:46:34 -0500 Subject: [PATCH] update related work sets --- .../Commands/ElementCommand.cs | 44 ++++++++++--------- .../src/lib/Mocha.Core/KnownInstanceGuids.cs | 4 ++ .../src/lib/Mocha.Core/UI/Widgets/Text.cs | 2 + 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/mocha-dotnet/src/lib/Mocha.Core.UI.Server/Commands/ElementCommand.cs b/mocha-dotnet/src/lib/Mocha.Core.UI.Server/Commands/ElementCommand.cs index d5f2d58..63c51b1 100644 --- a/mocha-dotnet/src/lib/Mocha.Core.UI.Server/Commands/ElementCommand.cs +++ b/mocha-dotnet/src/lib/Mocha.Core.UI.Server/Commands/ElementCommand.cs @@ -64,6 +64,29 @@ public class ElementCommand : InstanceCommand } else { + // update related work sets + foreach (KeyValuePair kvp in e.Context.Request.Form) + { + if (kvp.Key == "relatedInstance") + { + object? v = oms.ParseValue(kvp.Value); + + InstanceHandle relatedWorkSet = oms.GetRelatedInstance(ProcessingInstance, oms.GetInstance(KnownRelationshipGuids.Task__has_related__Work_Set)); + if (relatedWorkSet != InstanceHandle.Empty) + { + ctx.SetWorkData(relatedWorkSet, v); + } + ctx.SetWorkData(oms.GetInstance(KnownInstanceGuids.WorkSets.TaskRelatedInstance), v); + } + else + { + if (oms.TryParseInstanceRef(kvp.Key, out InstanceHandle h)) + { + ctx.SetWorkData(h, oms.ParseValue(kvp.Value)); + } + } + } + Renderer renderer = new Renderer(oms); if (oms.IsInstanceOf(ProcessingInstance, oms.GetInstance(KnownInstanceGuids.Classes.Element))) { @@ -97,27 +120,6 @@ public class ElementCommand : InstanceCommand } else if (oms.IsInstanceOf(ProcessingInstance, oms.GetInstance(KnownInstanceGuids.Classes.Task))) { - foreach (KeyValuePair kvp in e.Context.Request.Form) - { - if (kvp.Key == "relatedInstance") - { - object? v = oms.ParseValue(kvp.Value); - - InstanceHandle relatedWorkSet = oms.GetRelatedInstance(ProcessingInstance, oms.GetInstance(KnownRelationshipGuids.Task__has_related__Work_Set)); - if (relatedWorkSet != InstanceHandle.Empty) - { - ctx.SetWorkData(relatedWorkSet, v); - } - } - else - { - if (oms.TryParseInstanceRef(kvp.Key, out InstanceHandle h)) - { - ctx.SetWorkData(h, oms.ParseValue(kvp.Value)); - } - } - } - RespndWithTask(oms, sw, e.Context, ctx, ProcessingInstance); } else diff --git a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs index daef50e..7b8a53b 100755 --- a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs @@ -490,5 +490,9 @@ namespace Mocha.Core public static Guid OOP { get; } = new Guid("{818dfe8d-96ea-4339-8d18-a0e9a5f50908}"); public static Guid OOPMethodExamples { get; } = new Guid("{5017c102-c154-4ef0-b117-e42bd1c756c1}"); } + public static class WorkSets + { + public static Guid TaskRelatedInstance { get; } = new Guid("{d3860252-491e-469e-939e-702d56d88063}"); + } } } diff --git a/mocha-dotnet/src/lib/Mocha.Core/UI/Widgets/Text.cs b/mocha-dotnet/src/lib/Mocha.Core/UI/Widgets/Text.cs index ceabef4..a83914b 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/UI/Widgets/Text.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/UI/Widgets/Text.cs @@ -50,6 +50,8 @@ public class Text : Widget } else { + // context.SetWorkData(OMS.GetInstance(KnownInstanceGuids.WorkSets.TaskRelatedInstance), TargetInstance); + InstanceHandle workData = OMS.Execute(context, ParentInstance); object? val = context.GetWorkData(workData); value = val?.ToString();