public static async ValueTask <Completion> WriteToAsync(TextWriter writer, TextEncoder encoder, TemplateContext context)
        {
            var activityExecutionContext = (ActivityExecutionContext)context.Model;
            var correlationId            = activityExecutionContext.CorrelationId !;
            var clientState = new ClientStatePayload(correlationId);
            await writer.WriteLineAsync(clientState.ToBase64());

            return(Completion.Normal);
        }
        private string GetCorrelationId(Payload payload)
        {
            if (!string.IsNullOrWhiteSpace(payload.ClientState))
            {
                var clientStatePayload = ClientStatePayload.FromBase64(payload.ClientState);
                return(clientStatePayload.CorrelationId);
            }

            if (payload is CallPayload callPayload)
            {
                return(callPayload.CallSessionId);
            }

            throw new NotSupportedException($"The received payload type {payload.GetType().Name} is not supported yet.");
        }