/// <inheritdoc/> Task IDurableEntityClient.SignalEntityAsync <TEntityInterface>(EntityId entityId, DateTime scheduledTimeUtc, Action <TEntityInterface> operation) { var proxyContext = new EntityClientProxy(this, scheduledTimeUtc); var proxy = EntityProxyFactory.Create <TEntityInterface>(proxyContext, entityId); operation(proxy); if (proxyContext.SignalTask == null) { throw new InvalidOperationException("The operation action must perform an operation on the entity"); } return(proxyContext.SignalTask); }
/// <summary> /// Signals an entity to perform an operation. /// </summary> /// <typeparam name="TEntityInterface">Entity interface.</typeparam> /// <param name="client">orchestration client.</param> /// <param name="entityId">The target entity.</param> /// <param name="operation">A delegate that performs the desired operation on the entity.</param> /// <returns>A task that completes when the message has been reliably enqueued.</returns> public static Task SignalEntityAsync <TEntityInterface>(this IDurableEntityClient client, EntityId entityId, Action <TEntityInterface> operation) { var proxyContext = new EntityClientProxy(client); var proxy = EntityProxyFactory.Create <TEntityInterface>(proxyContext, entityId); operation(proxy); if (proxyContext.SignalTask == null) { throw new InvalidOperationException("The operation action must perform an operation on the entity"); } return(proxyContext.SignalTask); }
/// <summary> /// Signals an entity to perform an operation. /// </summary> /// <param name="context">entity context.</param> /// <param name="entityId">The target entity.</param> /// <param name="operation">A delegate that performs the desired operation on the entity.</param> /// <typeparam name="TEntityInterface">Entity interface.</typeparam> public static void SignalEntity <TEntityInterface>(this IDurableEntityContext context, EntityId entityId, Action <TEntityInterface> operation) { operation(EntityProxyFactory.Create <TEntityInterface>(new EntityContextProxy(context), entityId)); }
/// <summary> /// Create an entity proxy. /// </summary> /// <param name="context">orchestration context.</param> /// <param name="entityId">The target entity.</param> /// <typeparam name="TEntityInterface">Entity interface.</typeparam> /// <returns>Entity proxy.</returns> public static TEntityInterface CreateEntityProxy <TEntityInterface>(this IDurableOrchestrationContext context, EntityId entityId) { return(EntityProxyFactory.Create <TEntityInterface>(new OrchestrationContextProxy(context), entityId)); }
void IDurableEntityContext.SignalEntity <TEntityInterface>(EntityId entityId, DateTime scheduledTimeUtc, Action <TEntityInterface> operation) { operation(EntityProxyFactory.Create <TEntityInterface>(new EntityContextProxy(this, scheduledTimeUtc), entityId)); }
/// <inheritdoc/> void IDurableEntityContext.SignalEntity <TEntityInterface>(EntityId entityId, Action <TEntityInterface> operation) { operation(EntityProxyFactory.Create <TEntityInterface>(new EntityContextProxy(this), entityId)); }