public static void Activity_SendEmailConfirmation( [ActivityTrigger] EmailConfirmationInfo confirmationInfo, [Table("EmailConfirmations")] out EmailConfirmationTableEntity tableEntity, ILogger log) { tableEntity = new EmailConfirmationTableEntity(confirmationInfo); UriBuilder uriBuilder = new UriBuilder { Scheme = confirmationInfo.RequestUri.Scheme, Host = confirmationInfo.RequestUri.Host, Port = confirmationInfo.RequestUri.Port, Path = $"api/{nameof(ConfirmEmail)}/{confirmationInfo.Id}", Query = "result=Approved" }; log.LogInformation($"Confirm email with the URL: '{uriBuilder}'."); }
public static async Task <IActionResult> ConfirmEmail( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "ConfirmEmail/{id}")] HttpRequest request, [DurableClient] IDurableClient client, [Table("EmailConfirmations", EmailConfirmationTableEntity.PartitionKeyValue, "{id}")] EmailConfirmationTableEntity tableEntity, ILogger log) { if (tableEntity is null) { return(new BadRequestObjectResult("Invalid request.")); } else if (tableEntity.Result != "Sent") { return(new OkObjectResult("The email is already confirmed.")); } string result = request.Query["result"]; // This is just an extra parameter. //--> Send confirmation external event to this orchestration. await client.RaiseEventAsync(tableEntity.OrchestrationId, _eventName, result); log.LogInformation("RaiseEvent called to confirm email."); return(new OkObjectResult("Email confirmed.")); }