From b4f5f6d924ac3e0701e057266acae4a788a40c89 Mon Sep 17 00:00:00 2001 From: Sophia Tevosyan Date: Thu, 22 May 2025 21:02:55 -0700 Subject: [PATCH 1/2] first commit --- .../Entities/ClientEntityHelpers.cs | 14 +++++++++++++ .../Entities/OrchestrationEntityContext.cs | 21 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/DurableTask.Core/Entities/ClientEntityHelpers.cs b/src/DurableTask.Core/Entities/ClientEntityHelpers.cs index 155eb1eca..7151fdbe4 100644 --- a/src/DurableTask.Core/Entities/ClientEntityHelpers.cs +++ b/src/DurableTask.Core/Entities/ClientEntityHelpers.cs @@ -25,6 +25,20 @@ namespace DurableTask.Core.Entities /// public static class ClientEntityHelpers { + /// + /// Create an event to represent an entity signal. + /// + /// The target instance. + /// A unique identifier for the request. + /// The name of the operation. + /// The serialized input for the operation. + /// The time to schedule this signal, or null if not a scheduled signal + /// The event to send. + public static EntityMessageEvent EmitOperationSignal(OrchestrationInstance targetInstance, Guid requestId, string operationName, string? input, (DateTime Original, DateTime Capped)? scheduledTimeUtc) + { + return EmitOperationSignal(targetInstance, requestId, operationName, input, scheduledTimeUtc, parentTraceContext: null, requestTime: null, createTrace: false); + } + /// /// Create an event to represent an entity signal. /// diff --git a/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs b/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs index 8a84df162..d50015bf1 100644 --- a/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs +++ b/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs @@ -219,6 +219,27 @@ public IEnumerable EmitLockReleaseMessages() } } + /// + /// Creates a request message to be sent to an entity. + /// + /// The target entity. + /// The name of the operation. + /// If true, this is a signal, otherwise it is a call. + /// A unique identifier for this request. + /// A time for which to schedule the delivery, or null if this is not a scheduled message + /// The operation input + /// The event to send. + public EntityMessageEvent EmitRequestMessage( + OrchestrationInstance target, + string operationName, + bool oneWay, + Guid operationId, + (DateTime Original, DateTime Capped)? scheduledTimeUtc, + string? input) + { + return EmitRequestMessage(target, operationName, oneWay, operationId, scheduledTimeUtc, input, requestTime: null, createTrace: false); + } + /// /// Creates a request message to be sent to an entity. /// From b54dab8aa3ff482c5569852fded874aea7128d2d Mon Sep 17 00:00:00 2001 From: Sophia Tevosyan Date: Thu, 22 May 2025 23:28:15 -0700 Subject: [PATCH 2/2] made some parameters nonoptional for the new methods --- src/DurableTask.Core/Entities/ClientEntityHelpers.cs | 4 ++-- src/DurableTask.Core/Entities/OrchestrationEntityContext.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/DurableTask.Core/Entities/ClientEntityHelpers.cs b/src/DurableTask.Core/Entities/ClientEntityHelpers.cs index 7151fdbe4..cc1482fee 100644 --- a/src/DurableTask.Core/Entities/ClientEntityHelpers.cs +++ b/src/DurableTask.Core/Entities/ClientEntityHelpers.cs @@ -36,7 +36,7 @@ public static class ClientEntityHelpers /// The event to send. public static EntityMessageEvent EmitOperationSignal(OrchestrationInstance targetInstance, Guid requestId, string operationName, string? input, (DateTime Original, DateTime Capped)? scheduledTimeUtc) { - return EmitOperationSignal(targetInstance, requestId, operationName, input, scheduledTimeUtc, parentTraceContext: null, requestTime: null, createTrace: false); + return EmitOperationSignal(targetInstance, requestId, operationName, input, scheduledTimeUtc, parentTraceContext: null, requestTime: null); } /// @@ -51,7 +51,7 @@ public static EntityMessageEvent EmitOperationSignal(OrchestrationInstance targe /// The time at which the request was made. /// Whether to create a trace for this signal operation. /// The event to send. - public static EntityMessageEvent EmitOperationSignal(OrchestrationInstance targetInstance, Guid requestId, string operationName, string? input, (DateTime Original, DateTime Capped)? scheduledTimeUtc, DistributedTraceContext? parentTraceContext = null, DateTimeOffset? requestTime = null, bool createTrace = false) + public static EntityMessageEvent EmitOperationSignal(OrchestrationInstance targetInstance, Guid requestId, string operationName, string? input, (DateTime Original, DateTime Capped)? scheduledTimeUtc, DistributedTraceContext? parentTraceContext, DateTimeOffset? requestTime, bool createTrace = false) { var request = new RequestMessage() { diff --git a/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs b/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs index d50015bf1..ad2f7c9f3 100644 --- a/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs +++ b/src/DurableTask.Core/Entities/OrchestrationEntityContext.cs @@ -237,7 +237,7 @@ public EntityMessageEvent EmitRequestMessage( (DateTime Original, DateTime Capped)? scheduledTimeUtc, string? input) { - return EmitRequestMessage(target, operationName, oneWay, operationId, scheduledTimeUtc, input, requestTime: null, createTrace: false); + return EmitRequestMessage(target, operationName, oneWay, operationId, scheduledTimeUtc, input, requestTime: null); } /// @@ -259,7 +259,7 @@ public EntityMessageEvent EmitRequestMessage( Guid operationId, (DateTime Original, DateTime Capped)? scheduledTimeUtc, string? input, - DateTimeOffset? requestTime = null, + DateTimeOffset? requestTime, bool createTrace = false) { this.CheckEntitySupport();