예제 #1
0
        private async Task RunTestAsync(string testName, ISendGridClientFactory factory, object argument = null, string configApiKey = null, bool includeDefaultApiKey = true)
        {
            Type           testType      = typeof(SendGridEndToEndFunctions);
            var            locator       = new ExplicitTypeLocator(testType);
            ILoggerFactory loggerFactory = new LoggerFactory();

            loggerFactory.AddProvider(_loggerProvider);

            var arguments = new Dictionary <string, object>();

            arguments.Add("triggerData", argument);

            var resolver = new TestNameResolver();

            IHost host = new HostBuilder()
                         .ConfigureWebJobs(builder =>
            {
                builder.AddSendGrid(o =>
                {
                    if (configApiKey != null)
                    {
                        o.ApiKey = configApiKey;
                    }

                    o.ToAddress   = new EmailAddress("*****@*****.**");
                    o.FromAddress = new EmailAddress("*****@*****.**");
                });
            })
                         .ConfigureServices(services =>
            {
                services.AddSingleton <ISendGridClientFactory>(factory);
                services.AddSingleton <INameResolver>(resolver);
                services.AddSingleton <ITypeLocator>(locator);
            })
                         .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.AddProvider(_loggerProvider);
            })
                         .ConfigureAppConfiguration(c =>
            {
                c.Sources.Clear();
                var collection = new Dictionary <string, string>
                {
                    { "MyKey1", AttributeApiKey1 },
                    { "MyKey2", AttributeApiKey2 }
                };

                if (includeDefaultApiKey)
                {
                    collection.Add(SendGridExtensionConfigProvider.AzureWebJobsSendGridApiKeyName, DefaultApiKey);
                }

                c.AddInMemoryCollection(collection);
            })
                         .Build();

            await host.GetJobHost().CallAsync(testType.GetMethod(testName), arguments);
        }
예제 #2
0
 public UserTenantController(UserTenantContainer container, IJwtHelpers jwtHelper, ISendGridClientFactory sendGridClientFactory, IInviteHelpers inviteHelper, UserSettingsContainer settingsContainer)
 {
     this.container             = container;
     this.jwtHelper             = jwtHelper;
     this.sendGridClientFactory = sendGridClientFactory;
     this.inviteHelper          = inviteHelper;
     this.settingsContainer     = settingsContainer;
 }
예제 #3
0
        private async Task RunTestAsync(string testName, ISendGridClientFactory factory, object argument = null, string configApiKey = null, bool includeDefaultApiKey = true)
        {
            Type testType = typeof(SendGridEndToEndFunctions);
            ExplicitTypeLocator  locator = new ExplicitTypeLocator(testType);
            JobHostConfiguration config  = new JobHostConfiguration
            {
                TypeLocator = locator,
            };

            ILoggerFactory loggerFactory = new LoggerFactory();

            loggerFactory.AddProvider(_loggerProvider);

            config.LoggerFactory = loggerFactory;

            var arguments = new Dictionary <string, object>();

            arguments.Add("triggerData", argument);

            var sendGridConfig = new SendGridConfiguration
            {
                ApiKey        = configApiKey,
                ClientFactory = factory,
                ToAddress     = new EmailAddress("*****@*****.**"),
                FromAddress   = new EmailAddress("*****@*****.**")
            };

            var resolver = new TestNameResolver();

            resolver.Values.Add("MyKey1", AttributeApiKey1);
            resolver.Values.Add("MyKey2", AttributeApiKey2);

            if (includeDefaultApiKey)
            {
                resolver.Values.Add(SendGridConfiguration.AzureWebJobsSendGridApiKeyName, DefaultApiKey);
            }

            config.NameResolver = resolver;

            config.UseSendGrid(sendGridConfig);

            JobHost host = new JobHost(config);

            await host.StartAsync();

            await host.CallAsync(testType.GetMethod(testName), arguments);

            await host.StopAsync();
        }
 /// <summary>
 /// Creates a new instance.
 /// </summary>
 public SendGridExtensionConfigProvider(IOptions <SendGridOptions> options, ISendGridClientFactory clientFactory, INameResolver nameResolver)
 {
     _options      = options;
     _nameResolver = nameResolver;
     ClientFactory = clientFactory;
 }
예제 #5
0
 /// <summary>
 /// Creates a new instance.
 /// </summary>
 public SendGridExtensionConfigProvider(IOptions <SendGridOptions> options, ISendGridClientFactory clientFactory)
 {
     _options      = options;
     ClientFactory = clientFactory;
 }
예제 #6
0
 public UserTenantController(UserTenantContainer container, IJwtHelpers jwtHelper, ISendGridClientFactory sendGridClientFactory)
 {
     this.container             = container;
     this.jwtHelper             = jwtHelper;
     this.sendGridClientFactory = sendGridClientFactory;
 }