The variable isPlaceAvailable has always the same value as isComplete. It seems as the function monitorContext.CallActivityAsync("GetIsPlaceAvailable", input.Id) isn't even executed.
while (monitorContext.CurrentUtcDateTime < endTime)
{
// Check the weather
if (!monitorContext.IsReplaying)
{
bool isComplete = await monitorContext.CallActivityAsync<bool>("SendConfirmationAlert", msg);
log.LogInformation($"Checking current course conditions for {input.Id} at {monitorContext.CurrentUtcDateTime}.");
}
bool isPlaceAvailable = await monitorContext.CallActivityAsync<bool>("GetIsPlaceAvailable", input.Id);
if (isPlaceAvailable)
{
// It's not raining! Or snowing. Or misting. Tell our user to take advantage of it.
if (!monitorContext.IsReplaying)
{
log.LogInformation($"Detected place available for {input.Id}. Notifying {input.Phone}.");
}
await monitorContext.CallActivityAsync("SendPlaceAvailableAlert", msg);
break;
}
else
{
// Wait for the next checkpoint
var interval = await monitorContext.CallActivityAsync<int>("GetInterval", null);
var nextCheckpoint = monitorContext.CurrentUtcDateTime.AddMinutes(interval);
if (!monitorContext.IsReplaying) { log.LogInformation($"Next check for {input.Id} at {nextCheckpoint}."); }
await monitorContext.CreateTimer(nextCheckpoint, CancellationToken.None);
}
}
log.LogInformation($"Monitor expiring.");
}
GetIsPlaceAvailablefunction then those are being logged? During debug, are the debug point being hit?