public async Task <SyncJob> GetSyncJobAsync([ActivityTrigger] JobReaderRequest request) { await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(JobReaderFunction)} function started", RunId = request.RunId }); var syncJob = await _graphUpdaterService.GetSyncJobAsync(request.JobPartitionKey, request.JobRowKey); await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(JobReaderFunction)} function started", RunId = request.RunId }); return(syncJob); }
public async Task UpdateJobStatusAsync([ActivityTrigger] JobStatusUpdaterRequest request) { await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(JobStatusUpdaterFunction)} function started", RunId = request.RunId }); var syncJob = await _graphUpdaterService.GetSyncJobAsync(request.JobPartitionKey, request.JobRowKey); syncJob.ThresholdViolations = request.ThresholdViolations; if (syncJob != null) { await _graphUpdaterService.UpdateSyncJobStatusAsync(syncJob, request.Status, request.IsDryRun, request.RunId); } await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(JobStatusUpdaterFunction)} function completed", RunId = request.RunId }); }
public async Task <bool> ValidateGroupAsync([ActivityTrigger] GroupValidatorRequest request) { await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(GroupValidatorFunction)} function started", RunId = request.RunId }); bool isExistingGroup = false; var groupExistsResult = await _graphUpdaterService.GroupExistsAsync(request.GroupId, request.RunId); if (groupExistsResult.Outcome == OutcomeType.Successful && groupExistsResult.Result) { await _loggingRepository.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Group with ID {request.GroupId} exists." }); isExistingGroup = true; } else { if (groupExistsResult.Outcome == OutcomeType.Successful) { await _loggingRepository.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Group with ID {request.GroupId} doesn't exist." }); var syncJob = await _graphUpdaterService.GetSyncJobAsync(request.JobPartitionKey, request.JobRowKey); if (syncJob != null) { await _graphUpdaterService.SendEmailAsync( syncJob.Requestor, SyncDisabledNoGroupEmailBody, new[] { request.GroupId.ToString(), _emailSenderAndRecipients.SupportEmailAddresses }, request.RunId); } } else if (groupExistsResult.FaultType == FaultType.ExceptionHandledByThisPolicy) { await _loggingRepository.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Exceeded {NumberOfGraphRetries} while trying to determine if a group exists." }); } if (groupExistsResult.FinalException != null) { throw groupExistsResult.FinalException; } isExistingGroup = false; } await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(GroupValidatorFunction)} function completed", RunId = request.RunId }); return(isExistingGroup); }