private IMailService GetService(Guid token) { Logger.Current.Verbose("Request received for getting mail-service with token :" + token); var service = default(IMailService); var provider = MailProvider.Undefined; var registration = unitOfWork.MailRegistrationsRepository.FirstOrDefault(ft => ft.Guid == token); if (registration != null) { provider = registration.MailProviderID; } switch (provider) { case MailProvider.Smtp: service = new SmtpMailService(unitOfWork, token); Logger.Current.Informational("smtp mail service is configured for the above token"); break; case MailProvider.SendGrid: service = new SendGridMailService(unitOfWork, token); Logger.Current.Informational("SendGrid mail service is configured for the above token"); break; case MailProvider.SmartTouch: service = new VmtaMailService(unitOfWork, token); Logger.Current.Informational("VMTA mail service is configured for the above token"); break; default: break; } return(service); }
public SendGridMailServiceFixture() { var optionsMock = new Mock <IOptions <MailSecrets> >(); optionsMock.Setup(o => o.Value).Returns( () => new MailSecrets { SendGridServiceApiKey = ">>Update your API key<<" }); var config = new MapperConfiguration(cfg => { cfg.AddProfile(new DomainProfile()); }); var mapper = config.CreateMapper(); SendGridMailService = new SendGridMailService(optionsMock.Object, mapper); }
static void Main(string[] args) { async void SendMail(string email, string subject, string message) { SendGridMailService sendGridMailService = new SendGridMailService(); await sendGridMailService.SendEmail(email, subject, message); } try { RabbitMQService _rabbitMQService = new RabbitMQService(); using (var connection = _rabbitMQService.GetRabbitMQConnection()) { //kanal olusturma using (var channel = connection.CreateModel()) { //kuyruk olusturma channel.QueueDeclare("mailQueque", false, false, false, null); var consumer = new EventingBasicConsumer(channel); channel.BasicConsume("mailQueque", true, consumer); consumer.Received += (s, e) => { string serializeJson = Encoding.UTF8.GetString(e.Body.Span); UserEmailModel user = JsonSerializer.Deserialize <UserEmailModel>(serializeJson); SendMail(user.Email, user.Title, user.Message); Console.WriteLine($"Email Başarıyla {user.Email} gönderildi"); }; Console.ReadLine(); //rabbitmq gönderme } } } catch (Exception e) { Console.WriteLine($"Hata Oldu {e.Message}"); } Console.Read(); }
public MailController(IServiceProvider serviceProvider) { // to satisfy cases for initial unit tests if (serviceProvider == null) { return; } // since two implementation of the IMailService interface are injected in the startup, GetServices is used to resolved both of them var services = serviceProvider.GetServices <IMailService>(); // prevent possible enumaration of services IEnumarable var mailServices = services as IMailService[] ?? services.ToArray(); // resolving SendGrid mail service sendGridMailService = (SendGridMailService)mailServices.First(s => s.GetType() == typeof(SendGridMailService)); // resolving MailGun mail service mailGunMailService = (MailGunMailService)mailServices.First(s => s.GetType() == typeof(MailGunMailService)); }