コード例 #1
0
        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}'.");
        }
コード例 #2
0
        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."));
        }