From c97b8b0b1fda0fc1f24645f2c94bd4eddf95dca1 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Tue, 21 Oct 2025 08:42:29 -0400 Subject: [PATCH] add user info to returned JSON (placeholder for now) --- .../BuildUIResponseMethodImplementation.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mocha-dotnet/src/lib/Mocha.Core/MethodImplementations/BuildUIResponseMethodImplementation.cs b/mocha-dotnet/src/lib/Mocha.Core/MethodImplementations/BuildUIResponseMethodImplementation.cs index 4877ba6..8c01543 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/MethodImplementations/BuildUIResponseMethodImplementation.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/MethodImplementations/BuildUIResponseMethodImplementation.cs @@ -39,6 +39,7 @@ public class BuildUIResponseMethodImplementation : MethodImplementation JsonObject objRoot = new JsonObject(); objRoot.Add("widget", "root"); objRoot.Add("body", objChild); + objRoot.Add("currentUser", CreateUserInfo(oms, oms.GetInstancesOf(oms.GetInstance(KnownInstanceGuids.Classes.User)).First())); JsonObject objTitle = new JsonObject(); // task like 2501$6 (View Organization) has EC which has display option `Display as Page Title`, in which @@ -61,6 +62,30 @@ public class BuildUIResponseMethodImplementation : MethodImplementation return element; } + private JsonNode? CreateUserInfo(Oms oms, InstanceHandle userInstance) + { + JsonObject objUser = new JsonObject(); + objUser.Add("widget", "currentUser"); + objUser.Add("iid", oms.GetInstanceKey(userInstance).ToString()); + objUser.Add("label", oms.GetInstanceText(userInstance)); + + JsonObject objLink = new JsonObject(); + objLink.Add("widget", "link"); + objLink.Add("rel", "related-tasks"); + objLink.Add("uri", String.Format("/{0}/inst/{1}/rel-tasks", oms.GetTenantName(oms.CurrentTenant), oms.GetInstanceKey(userInstance).ToString())); + objLink.Add("pv", true); + objLink.Add("rt", true); + objUser.Add("relatedTasksLink", objLink); + + objLink = new JsonObject(); + objLink.Add("widget", "link"); + objLink.Add("rel", "self"); + objLink.Add("uri", String.Format("/{0}/inst/{1}/{2}", oms.GetTenantName(oms.CurrentTenant), "1$37", oms.GetInstanceKey(userInstance).ToString())); + objLink.Add("v", true); + objUser.Add("selfLink", objLink); + return objUser; + } + private JsonObject CreateMoniker(Oms oms, InstanceHandle inst) { JsonObject obj = new JsonObject();