public async Task SendProviderReferralEmailsAsync([QueueTrigger(QueueName.ProviderReferralEmailQueue, Connection = "BlobStorageConnectionString")] SendProviderReferralEmail providerReferralEmailData, ExecutionContext context, ILogger logger) { var stopwatch = Stopwatch.StartNew(); var opportunityId = providerReferralEmailData.OpportunityId; var backgroundProcessHistoryId = providerReferralEmailData.BackgroundProcessHistoryId; var itemIds = providerReferralEmailData.ItemIds; try { await _referralEmailService.SendProviderReferralEmailAsync(opportunityId, itemIds, backgroundProcessHistoryId, "System"); } catch (Exception e) { var errorMessage = $"Error sending provider referral email for opportunity id, {opportunityId}. Internal Error Message {e}"; logger.LogError(errorMessage); await _functionLogRepository.CreateAsync(new FunctionLog { ErrorMessage = errorMessage, FunctionName = context.FunctionName, RowNumber = -1 }); } stopwatch.Stop(); logger.LogInformation($"Function {context.FunctionName} sent emails\n" + $"\tTime taken: {stopwatch.ElapsedMilliseconds: #,###}ms"); }
public When_SendProviderReferralEmails_Function_Queue_Trigger_Fires() { _referralEmailService = Substitute.For <IReferralEmailService>(); _functionLogRepository = Substitute.For <IRepository <FunctionLog> >(); var data = new SendProviderReferralEmail { OpportunityId = 1, ItemIds = new List <int> { 101 }, BackgroundProcessHistoryId = 10 }; var providerQuarterlyUpdateEmailFunctions = new Functions.ReferralEmails(_referralEmailService, _functionLogRepository); providerQuarterlyUpdateEmailFunctions.SendProviderReferralEmailsAsync( data, new ExecutionContext(), new NullLogger <Functions.ReferralEmails>() ).GetAwaiter().GetResult(); }
public async Task PushProviderReferralEmailMessageAsync(SendProviderReferralEmail providerReferralEmail) { await PushMessageAsync( JsonConvert.SerializeObject(providerReferralEmail), QueueName.ProviderReferralEmailQueue); }