Exemple #1
0
        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);
 }