Beispiel #1
0
        /// <inheritdoc />
        public void Initialize(ExtensionConfigContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            INameResolver nameResolver = context.Config.NameResolver;

            _defaultApiKey = nameResolver.Resolve(AzureWebJobsSendGridApiKeyName);

            IConverterManager converterManager = context.Config.GetService <IConverterManager>();

            converterManager.AddConverter <string, Mail>(SendGridHelpers.CreateMessage);
            converterManager.AddConverter <JObject, Mail>(SendGridHelpers.CreateMessage);

            BindingFactory   factory        = new BindingFactory(nameResolver, converterManager);
            IBindingProvider outputProvider = factory.BindToAsyncCollector <SendGridAttribute, Mail>((attr) =>
            {
                string apiKey            = FirstOrDefault(attr.ApiKey, ApiKey, _defaultApiKey);
                ISendGridClient sendGrid = _sendGridClientCache.GetOrAdd(apiKey, a => ClientFactory.Create(a));
                return(new SendGridMailAsyncCollector(this, attr, sendGrid));
            });

            IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>();

            extensions.RegisterBindingRules <SendGridAttribute>(ValidateBinding, nameResolver, outputProvider);
        }
        private IAsyncCollector <SendGridMessage> CreateCollector(SendGridAttribute attr)
        {
            string          apiKey   = FirstOrDefault(attr.ApiKey, _options.Value.ApiKey);
            ISendGridClient sendGrid = _sendGridClientCache.GetOrAdd(apiKey, a => ClientFactory.Create(a));

            return(new SendGridMessageAsyncCollector(_options.Value, attr, sendGrid));
        }
        public async Task SendEmailAsync(Reservation reservation, string userEmail)
        {
            var options = new SendGridClientOptions {
                ApiKey = apiKey
            };

            client = new SendGridClient(options);
            var msg = new SendGridMessage()
            {
                From             = new EmailAddress("*****@*****.**", "Hotel Booking"),
                Subject          = "Reservation Confirmed",
                PlainTextContent = "Plain text not supported.",
                HtmlContent      = await BuildConfirmEmailBody(reservation)
            };

            msg.AddTo(new EmailAddress(userEmail));
            Response response;

            try
            {
                response = await client.SendEmailAsync(msg);
            }
            catch (HttpRequestException)
            {
                Console.WriteLine("{0}", "SendEmailAsync Failed");
            }
        }
Beispiel #4
0
 public MailSender(ISendGridClient sendGridClient, HeyImInConfiguration configuration, ILogger <MailSender> logger)
 {
     _sendGridClient = sendGridClient;
     _senderMail     = configuration.SenderEmailAddress;
     _senderName     = configuration.SenderEmailName;
     _logger         = logger;
 }
Beispiel #5
0
 public ConfirmationService(IHostingEnvironment env, IUnitOfWork unitOfWork, IOptions <EmailSettings> emailSettings, ISendGridClient emailClient)
 {
     _env           = env;
     _unitOfWork    = unitOfWork;
     _emailSettings = emailSettings.Value;
     _emailClient   = emailClient;
 }
Beispiel #6
0
 public ConnectSendGridService(IOptions <SendGridConfig> sendGridConfig, ISendGridClient sendGridClient, IMemDistCache <Template> memDistCacheTemplate, IMemDistCache <UnsubscribeGroup> memDistCacheUnsubscribeGroup)
 {
     _sendGridConfig               = sendGridConfig;
     _sendGridClient               = sendGridClient;
     _memDistCacheTemplate         = memDistCacheTemplate;
     _memDistCacheUnsubscribeGroup = memDistCacheUnsubscribeGroup;
 }
        public async Task SendPasswordResetEmailAsync(string password, string userEmail)
        {
            var options = new SendGridClientOptions {
                ApiKey = apiKey
            };

            client = new SendGridClient(options);
            var msg = new SendGridMessage()
            {
                From             = new EmailAddress("*****@*****.**", "Hotel Booking"),
                Subject          = "Password Reset",
                PlainTextContent = "Plain text not supported.",
                HtmlContent      = BuildPasswordResetEmailBody(password)
            };

            msg.AddTo(new EmailAddress(userEmail));
            Response response;

            try
            {
                response = await client.SendEmailAsync(msg);
            }
            catch (HttpRequestException)
            {
                Console.WriteLine("SendEmailAsync Failed to address: {0}", userEmail);;
            }
        }
Beispiel #8
0
        public EmailService()
        {
            _hostName = Environment.GetEnvironmentVariable("RESERVATIONSYSTEM_HOSTNAME");
            var apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY");

            _client = new SendGridClient(apiKey);
        }
        public FamSendGridEmailServiceTests()
        {
            var defaultTemplate = new EmailTemplate
            {
                To      = "*****@*****.**",
                Body    = "Body",
                Subject = DefaultSubject,
            };

            fakeEmailTemplateRepository = A.Fake <IEmailTemplateRepository>();
            A.CallTo(() => fakeEmailTemplateRepository.GetByTemplateName(A <string> .Ignored)).Returns(defaultTemplate);

            fakeMergeEmailContentService = A.Fake <IMergeEmailContent <ContactUsRequest> >();
            fakeSendGridClient           = A.Fake <ISendGridClient>();
            var defaultResponse = new Response(HttpStatusCode.Accepted, A.Fake <HttpContent>(), null);

            A.CallTo(() => fakeSendGridClient.SendEmailAsync(A <SendGridMessage> .Ignored, A <CancellationToken> .Ignored)).Returns(defaultResponse);

            fakeSimulateEmailResponsesService = A.Fake <ISimulateEmailResponses>();
            fakeAuditRepository   = A.Fake <IAuditNoncitizenEmailRepository <ContactUsRequest> >();
            fakeHttpClientService = A.Fake <IHttpClientService <INoncitizenEmailService <ContactUsRequest> > >();

            var areaRoutingApiResponse = new AreaRoutingApiResponse {
                EmailAddress = EmailAddressFromAreaRouting
            };
            var httpResponseMessage = new HttpResponseMessage {
                Content = new StringContent(JsonConvert.SerializeObject(areaRoutingApiResponse), Encoding.Default, "application/json")
            };

            A.CallTo(() => fakeHttpClientService.GetAsync(A <string> .Ignored, A <FaultToleranceType> .Ignored)).Returns(httpResponseMessage);
            fakeMapper = A.Fake <IMapper>();
            fakeConfigurationProvider = A.Fake <IConfigurationProvider>();
            fakeApplicationLogger     = A.Fake <IApplicationLogger>();
        }
Beispiel #10
0
        private IAsyncCollector <Mail> CreateCollector(SendGridAttribute attr)
        {
            string          apiKey   = FirstOrDefault(attr.ApiKey, ApiKey);
            ISendGridClient sendGrid = _sendGridClientCache.GetOrAdd(apiKey, a => ClientFactory.Create(a));

            return(new SendGridMailAsyncCollector(this, attr, sendGrid));
        }
Beispiel #11
0
 public EmailSender(IConfiguration configuration,
                    ISendGridClient sendGridClient, ILoggerFactory logger)
 {
     _configuration  = configuration;
     _sendGridClient = sendGridClient;
     _logger         = logger.CreateLogger <EmailSender>();
 }
Beispiel #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SendGridEmailService"/> class.
 /// </summary>
 /// <param name="sendGridClient">The SendGrid API Client.</param>
 /// <param name="sendGridConfigurationOption">The application configuration for Email customisations.</param>
 /// <param name="logger">The application logger.</param>
 public SendGridEmailService(ISendGridClient sendGridClient,
                             IOptions <SendGridConfiguration> sendGridConfigurationOption,
                             ILogger <SendGridEmailService> logger)
 {
     this.logger         = logger;
     this.sendGridClient = sendGridClient;
     this.sendGridConfigurationOption = sendGridConfigurationOption;
 }
Beispiel #13
0
 public EmailService(string subject, string recipientsEmail)
 {
     _client          = new SendGridClient("someApiKey");
     _fromEmail       = "*****@*****.**";
     _fromName        = "Me";
     _subject         = subject;
     _recipientsEmail = recipientsEmail;
 }
Beispiel #14
0
 public EmailSender(
     ISendGridClient sendGridClient,
     IConfiguration configuration, ILogger <EmailSender> logger)
 {
     _sendGridClient = sendGridClient;
     _configuration  = configuration;
     _logger         = logger;
 }
 public SendGridEmailMessenger(ISendGridClient sendGridClient,
                               IEmailTemplateRepository emailTemplateRepository,
                               SendGridSettings sendGridSettings)
 {
     _sendGridClient          = sendGridClient;
     _emailTemplateRepository = emailTemplateRepository;
     _sendGridSettings        = sendGridSettings;
 }
Beispiel #16
0
        public EmailSender(ITracer tracer)
        {
            this.tracer = Diagnostics.EnsureArgumentNotNull(() => tracer);

            var apiKey = ConfigurationReader.ReadConfig("SendgridApiKey", false);

            this.sendGridClient = string.IsNullOrWhiteSpace(apiKey) ? null : new SendGridClient(apiKey);
        }
Beispiel #17
0
        public SendGridService(IOptions <SendGridConfigurationOptions> options)
        {
            _options = options;
            _client  = new SendGridClient(options.Value.ApiKey);

            _serializerSettings = new JsonSerializerSettings();
            _serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
Beispiel #18
0
        public void Setup()
        {
            _oc             = Substitute.For <IOrderCloudClient>();
            _settings       = Substitute.For <AppSettings>();
            _sendGridClient = Substitute.For <ISendGridClient>();

            _command = new SendgridService(_settings, _oc, _sendGridClient);
        }
Beispiel #19
0
 public MailService(IConfiguration configuration, IServiceProvider serviceProvider)
 {
     _configuration            = configuration;
     _serviceProvider          = serviceProvider;
     _mailServiceConfiguration = new MailServiceConfiguration();
     _configuration.Bind("SendGrid", _mailServiceConfiguration);
     _sendgridClient = new SendGridClient(_mailServiceConfiguration.ApiKey);
 }
Beispiel #20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EmailService"/> class.
 /// </summary>
 /// <param name="emailConfiguration">The configuration.</param>
 public EmailService(IOptionsMonitor <EmailConfiguration> emailConfiguration,
                     ISendGridClient sendGridClient,
                     ILogger <EmailService> logger)
 {
     _logger             = logger;
     _sendGridClient     = sendGridClient ?? throw new ArgumentNullException(nameof(sendGridClient));
     _emailConfiguration = emailConfiguration.CurrentValue ?? throw new ArgumentNullException(nameof(emailConfiguration));
 }
Beispiel #21
0
        public EmailSender(ISendGridClient sendGridClient, SendGridMessage sendGridMessage, ILogger <EmailSender> logger)
        {
            _client  = sendGridClient;
            _message = sendGridMessage;
            _logger  = logger;

            _message.SetFrom(new EmailAddress("*****@*****.**", "TodoList Team"));
        }
        public SendGridOwnerNotificationHandler(ISendGridClient sendGridClient,
                                                IOptions <CustomOption.SendGridOptions> settings)
        {
            _sendGridClient = sendGridClient ??
                              throw new ArgumentNullException(nameof(sendGridClient));

            _options = settings.Value;
        }
 public EmailTemplateService(InstructorIQContext dataContext, IMemoryCache cache, IOptions <SendGridConfiguration> sendGridOptions, IHtmlService htmlService, ILogger <EmailTemplateService> logger, ISendGridClient sendGridClient)
 {
     _dataContext     = dataContext;
     _cache           = cache;
     _sendGridOptions = sendGridOptions;
     _htmlService     = htmlService;
     _logger          = logger;
     _sendGridClient  = sendGridClient;
 }
 public EmailService(
     ISendGridClient sendGridClient,
     SendgridConfiguration sendGridConfig,
     ILogger logger)
 {
     _sendGridClient = sendGridClient;
     _sendGridConfig = sendGridConfig;
     _logger         = logger;
 }
Beispiel #25
0
 public SendEmailNotificationHandler(
     ISendGridClient sendGridClient,
     IOptions <SendGridOptions> sendGridOptions,
     ILogger <SendEmailNotificationHandler> logger)
 {
     this.sendGridClient  = sendGridClient;
     this.sendGridOptions = sendGridOptions.Value;
     this.logger          = logger;
 }
Beispiel #26
0
 public HasuraController(IValidator <HasuraEvent> validator,
                         ILogger <HasuraController> logger, ISendGridClient sendGridClient, IConfiguration configuration,
                         UserManager <User> manager)
 {
     _validator      = validator;
     _logger         = logger;
     _sendGridClient = sendGridClient;
     _configuration  = configuration;
     _manager        = manager;
 }
Beispiel #27
0
        public NotificationService(
            ISendGridClient sendGridClient,
            IEmailBuilderRetriever emailBuilderRetriever)
        {
            Guard.ArgumentNotNull(nameof(sendGridClient), sendGridClient);
            _sendGridClient = sendGridClient;

            Guard.ArgumentNotNull(nameof(emailBuilderRetriever), emailBuilderRetriever);
            _emailBuilderRetriever = emailBuilderRetriever;
        }
Beispiel #28
0
 public Sender(
     ILogger <Sender> logger,
     ISendGridClient client,
     ISenderConfigurationRepository senderConfigurationRepository,
     IEnumerable <ITemplateApplicator> templateApplicators,
     ISenderRequestValidator senderRequestValidator)
     : base(senderConfigurationRepository, templateApplicators, senderRequestValidator)
 {
     _logger = logger;
     _client = client;
 }
Beispiel #29
0
 public RelayLogic(
     ISendGridClient client,
     SubjectParser subjectParser,
     ILogger log,
     IEnumerable <IMetadataSanitizer> sanitizers)
 {
     _client        = client ?? throw new ArgumentNullException(nameof(client));
     _subjectParser = subjectParser ?? throw new ArgumentNullException(nameof(subjectParser));
     _log           = log ?? throw new ArgumentNullException(nameof(log));
     _sanitizers    = sanitizers ?? throw new ArgumentNullException(nameof(sanitizers));
 }
Beispiel #30
0
 public EmailService(
     ISendGridClient client,
     EmailSettings settings,
     ITemplateResourceProvider templateProvider,
     ILogger <EmailService> logger)
 {
     _client           = client;
     _logger           = logger;
     _templateProvider = templateProvider;
     From = new EmailAddress(settings.FromAddress, settings.FromName);
 }