public async Task SendEmailAsync([ActivityTrigger] EmailSenderRequest request)
        {
            if (request.SyncJob != null)
            {
                await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(EmailSenderFunction)} function started", RunId = request.RunId });

                await _calculator.SendEmailAsync(request.SyncJob, request.RunId, SyncDisabledNoValidGroupIds, new[] { request.SyncJob.Query, _emailSenderRecipient.SupportEmailAddresses });

                await _loggingRepository.LogMessageAsync(new LogMessage { Message = $"{nameof(EmailSenderFunction)} function completed", RunId = request.RunId });
            }
        }
예제 #2
0
        public async Task <bool> ValidateGroupAsync([ActivityTrigger] GroupValidatorRequest request, ILogger log)
        {
            bool isExistingGroup = false;
            await _log.LogMessageAsync(new LogMessage { Message = $"{nameof(GroupValidatorFunction)} function started", RunId = request.RunId });

            var groupExistsResult = await _calculator.GroupExistsAsync(request.ObjectId, request.RunId);

            if (groupExistsResult.Outcome == OutcomeType.Successful && groupExistsResult.Result)
            {
                await _log.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Group with ID {request.ObjectId} exists." });

                isExistingGroup = true;
            }
            else
            {
                if (groupExistsResult.Outcome == OutcomeType.Successful)
                {
                    await _log.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Group with ID {request.ObjectId} doesn't exist. Stopping sync and marking as error." });

                    if (request.SyncJob != null)
                    {
                        await _calculator.SendEmailAsync(request.SyncJob, request.RunId, SyncDisabledNoGroupEmailBody, new[] { request.ObjectId.ToString() });
                    }
                }
                else if (groupExistsResult.FaultType == FaultType.ExceptionHandledByThisPolicy)
                {
                    await _log.LogMessageAsync(new LogMessage { RunId = request.RunId, Message = $"Exceeded {NumberOfGraphRetries} while trying to determine if a group exists. Stopping sync and marking as error." });
                }

                if (groupExistsResult.FinalException != null)
                {
                    throw groupExistsResult.FinalException;
                }
                isExistingGroup = false;
            }
            await _log.LogMessageAsync(new LogMessage { Message = $"{nameof(GroupValidatorFunction)} function completed", RunId = request.RunId });

            return(isExistingGroup);
        }