示例#1
0
        public static async Task <string> RunActivity(
            [ActivityTrigger] IDurableActivityContext functionContext)
        {
            if (functionContext is null)
            {
                throw new ArgumentNullException(nameof(functionContext));
            }

            var(instanceId, command) =
                functionContext.GetInput <(string, ICommand)>();

            try
            {
                var callbackUrl = await CallbackTrigger
                                  .AcquireCallbackUrlAsync(instanceId, command)
                                  .ConfigureAwait(false);

                return(callbackUrl);
            }
            catch (Exception exc) when(!exc.IsSerializable(out var serializableExc))
            {
                throw serializableExc;
            }
        }
    }
示例#2
0
        public static async Task <string> RunActivity(
            [ActivityTrigger] IDurableActivityContext functionContext,
            ILogger log)
        {
            if (functionContext is null)
            {
                throw new ArgumentNullException(nameof(functionContext));
            }

            var(instanceId, command) =
                functionContext.GetInput <(string, ICommand)>();

            using (log.BeginCommandScope(command))
            {
                try
                {
                    log.LogInformation($"Acquire callback url for instance '{instanceId}' of command {command.GetType().Name} ({command.CommandId})");

                    var callbackUrl = await CallbackTrigger
                                      .GetUrlAsync(instanceId, command)
                                      .ConfigureAwait(false);

                    return(callbackUrl);
                }
                catch (Exception exc)
                {
                    log.LogError(exc, $"Failed to acquire callback url for instance '{instanceId}' of command {command.GetType().Name} ({command.CommandId}): {exc.Message}");

                    throw exc.AsSerializable();
                }
            }
        }
        public static async Task RunActivity(
            [ActivityTrigger] IDurableActivityContext functionContext)
        {
            if (functionContext is null)
            {
                throw new ArgumentNullException(nameof(functionContext));
            }

            var instanceId =
                functionContext.GetInput <string>();

            try
            {
                await CallbackTrigger
                .InvalidateCallbackUrlAsync(instanceId)
                .ConfigureAwait(false);
            }
            catch (Exception exc) when(!exc.IsSerializable(out var serializableExc))
            {
                throw serializableExc;
            }
        }
    }