/// <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));
 }
Пример #5
0
 void IDurableEntityContext.SignalEntity <TEntityInterface>(EntityId entityId, DateTime scheduledTimeUtc, Action <TEntityInterface> operation)
 {
     operation(EntityProxyFactory.Create <TEntityInterface>(new EntityContextProxy(this, scheduledTimeUtc), entityId));
 }
Пример #6
0
 /// <inheritdoc/>
 void IDurableEntityContext.SignalEntity <TEntityInterface>(EntityId entityId, Action <TEntityInterface> operation)
 {
     operation(EntityProxyFactory.Create <TEntityInterface>(new EntityContextProxy(this), entityId));
 }