Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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));
        }