public override void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, IBasicProperties properties, byte[] body)
        {
            //Console.WriteLine($"Consuming Message");
            //Console.WriteLine(string.Concat("Message received from the exchange ", exchange));
            //Console.WriteLine(string.Concat("Consumer tag: ", consumerTag));
            //Console.WriteLine(string.Concat("Delivery tag: ", deliveryTag));
            //Console.WriteLine(string.Concat("Routing tag: ", routingKey));
            //Console.WriteLine(string.Concat("Message: ", Encoding.UTF8.GetString(body)));

            string message = Encoding.UTF8.GetString(body);

            Console.Write("Mail gönderiliyor----\t");

            MailMotoru mailMotoru = new MailMotoru();

            MailBilgi mailBilgi = JsonConvert.DeserializeObject <MailBilgi>(message);

            MailGonderimSonuc mailGonderimSonuc = mailMotoru.MailGonder(mailBilgi);

            if (mailGonderimSonuc.Basarili)
            {
                Console.WriteLine("----Mail gönderildi.");
            }
            else
            {
                Console.WriteLine("----Mail gönderimi başarısız.");
            }

            _channel.BasicAck(deliveryTag, false);
        }
예제 #2
0
        public MailGonderimSonuc Gonder(MailBilgi mailBilgi)
        {
            MailGonderimSonuc mailGonderimSonuc = new MailGonderimSonuc();

            mailGonderimSonuc.Hatalar = new List <string>();
            try
            {
                //Bilgi kontrol et hataliysa logla ve basarisiz don.
                mailGonderimSonuc = bilgiKontroluYap(mailBilgi, mailGonderimSonuc);
                if (!mailGonderimSonuc.Basarili)
                {
                    return(mailGonderimSonuc);
                }

                //mail gonderimi yap. exception alinmazsa basarilidir.
                _mailIslemcisi.MailGonderimiYap(mailBilgi, _smtpAyarlayan);

                //Gönderim başarılı
                mailGonderimSonuc.Basarili = true;
                _veritabaniIslemcisi.BasariliGonderimKaydet(mailBilgi);
                return(mailGonderimSonuc);
            }
            catch (Exception ex)
            {
                mailGonderimSonuc.Hatalar.Add(ex.Message);
                _veritabaniIslemcisi.HataliGonderimKaydet(mailBilgi, mailGonderimSonuc.HatalarStr);
                mailGonderimSonuc.Basarili = false;
                return(mailGonderimSonuc);
            }
        }
        public void PostaGonderilecekMailAdresiHataliysa_BasarisizSonucDoner()
        {
            //given
            _mailKontrolcu.Setup(x => x.MailAdresiKontrolEt(_mailBilgiHatali)).Returns(false);

            //when
            MailGonderimSonuc mailGonderimSonuc = _mailGonderen.Gonder(_mailBilgiHatali);

            //then
            Assert.IsFalse(mailGonderimSonuc.Basarili);
        }
        public void PostaGonderimiBasariliDegilse_VeritabaninaHataliKaydetCagirilir()
        {
            //given
            _mailKontrolcu.Setup(x => x.MailAdresiKontrolEt(_mailBilgiHatali)).Returns(true);

            //when
            MailGonderimSonuc mailGonderimSonuc = _mailGonderen.Gonder(_mailBilgiHatali);

            //then
            if (!mailGonderimSonuc.Basarili)
            {
                _veritabaniIslemcisi.Verify(x => x.HataliGonderimKaydet(_mailBilgiHatali, It.IsAny <string>()));
            }
        }
        public void PostaGonderimiBasariliysa_VeritabaninaBasariliKaydetCagirilir()
        {
            //given
            _mailKontrolcu.Setup(x => x.MailAdresiKontrolEt(_mailBilgi)).Returns(true);

            //when
            MailGonderimSonuc mailGonderimSonuc = _mailGonderen.Gonder(_mailBilgi);

            //then
            if (mailGonderimSonuc.Basarili)
            {
                _veritabaniIslemcisi.Verify(x => x.BasariliGonderimKaydet(_mailBilgi));
            }
        }
예제 #6
0
        private MailGonderimSonuc bilgiKontroluYap(MailBilgi mailBilgi, MailGonderimSonuc mailGonderimSonuc)
        {
            if (!_mailKontrolcu.MailAdresiKontrolEt(mailBilgi))
            {
                mailGonderimSonuc.Hatalar.Add("Mail adresi hatalı, lütfen kontrol edin.");
                _veritabaniIslemcisi.HataliGonderimKaydet(mailBilgi, "Mail adresi hatalı, lütfen kontrol edin.");
                mailGonderimSonuc.Basarili = false;
            }
            else
            {
                mailGonderimSonuc.Basarili = true;
            }

            return(mailGonderimSonuc);
        }