public async Task SendEmailDeliveryStatusNotification( [QueueTrigger(QueueName.EmailDeliveryStatusQueue, Connection = "BlobStorageConnectionString")] SendEmailDeliveryStatus emailDeliveryStatusData, ExecutionContext context, ILogger logger) { if (!_matchingConfiguration.SendEmailEnabled) { return; } var stopwatch = Stopwatch.StartNew(); try { await _emailDeliveryStatusService.SendEmailDeliveryStatusAsync(emailDeliveryStatusData.NotificationId); } catch (Exception e) { var errorMessage = $"Error sending failed email notification for Notification Id: {emailDeliveryStatusData.NotificationId}. 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 email\n" + $"\tTime taken: {stopwatch.ElapsedMilliseconds: #,###}ms"); }
public When_SendEmailDeliveryStatusNotification_Function_Queue_Trigger_Fires() { var matchingConfiguration = new MatchingConfiguration { SendEmailEnabled = true }; _emailDeliveryStatusService = Substitute.For <IEmailDeliveryStatusService>(); _functionLogRepository = Substitute.For <IRepository <FunctionLog> >(); var data = new SendEmailDeliveryStatus { NotificationId = _notificationId }; var emailDeliveryStatusFunctions = new Functions.EmailDeliveryStatus(matchingConfiguration, _emailDeliveryStatusService, _functionLogRepository); emailDeliveryStatusFunctions.SendEmailDeliveryStatusNotification( data, new ExecutionContext(), new NullLogger <Functions.ReferralEmails>() ).GetAwaiter().GetResult(); }
public async Task PushEmailDeliveryStatusMessageAsync(SendEmailDeliveryStatus emailDeliveryStatus) { await PushMessageAsync(JsonConvert.SerializeObject(emailDeliveryStatus), QueueName.EmailDeliveryStatusQueue); }