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; } } }
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; } } }