in Source/Function/EnrollmentHttpStart.cs [22:52]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")]HttpRequestMessage req,
[Table("CustomerInformation", Connection = "AzureWebJobsStorage")] CloudTable table,
[OrchestrationClient]DurableOrchestrationClient starter,
ILogger log)
{
var data = await req.Content.ReadAsAsync<EnrollmentHttpRequest>();
if(data.Enrolled != EnrollmentStatusEnum.Started)
{
log.LogError($"Received {data.MobileNumber} for customer ID {data.Id} ({data.FirstName} {data.LastName}) with invalid enrolled code of {data.Enrolled}");
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
var result = await table.GetItemsAsync<CustomerInfo>(data.MobileNumber);
var customerInfofromTable = result.FirstOrDefault();
if (customerInfofromTable != null)
{
log.LogInformation($"Phone number: {data.MobileNumber} is already in the enrolling process. Cancelling.");
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
log.LogInformation($"Started Enrollment process for user: {data.FirstName} {data.LastName}");
string instanceId = await starter.StartNewAsync("EnrollmentVerificator", data);
log.LogInformation($"Starting Enrollment Orchestrator with ID: {instanceId}");
return starter.CreateCheckStatusResponse(req, instanceId);
}