public static async Task <IActionResult> ConfirmUser( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, [Queue(Global.QUEUE)] IAsyncCollector <string> console, [OrchestrationClient] IDurableOrchestrationClient durableClient, ILogger log) { log.LogInformation("ConfirmUser called."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); string name = data?.name; if (string.IsNullOrWhiteSpace(name)) { await console.AddAsync("An attempt to confirm a user with no name was made."); return(new BadRequestObjectResult("User name is required.")); } var userCheck = await durableClient.ReadUserEntityAsync <User>(name); if (!userCheck.EntityExists) { await console.AddAsync($"Attempt to confirm missing user {name} failed."); return(new BadRequestObjectResult("Username does not exist.")); } log.LogInformation("User {user} is valid, searching for workflow.", name); var instance = await durableClient.FindJob( DateTime.UtcNow, nameof(UserConfirmationWorkflow), name); if (instance == null) { log.LogInformation("Workflow not found for user {user}.", name); return(new NotFoundResult()); } log.LogInformation("Workflow with id {instanceId} found for user {user}.", instance.InstanceId, name); await durableClient.RaiseEventAsync(instance.InstanceId, APPROVAL_TASK, true); return(new OkResult()); }