コード例 #1
0
        public void Show_method_should_return_rejected_messages_for_current_day()
        {
            var mail1 = new RejectedEmail {
                SmtpId = 64789, Comment = "нафиг", LogTime = DateTime.Now, From = "*****@*****.**", Subject = "test"
            };

            session.Save(mail1);
            var mail2 = new RejectedEmail {
                SmtpId = 65469, Comment = "еще нафиг", LogTime = DateTime.Now, From = "*****@*****.**", Subject = "test"
            };

            session.Save(mail2);
            var mail3 = new RejectedEmail {
                SmtpId = 64619, Comment = "снова нафиг", LogTime = DateTime.Now.AddDays(-1), From = "*****@*****.**", Subject = "test"
            };

            session.Save(mail3);

            controller.Show();

            var mails = (RejectedEmail[])ControllerContext.PropertyBag["rejects"];

            Assert.That(mails.Length, Is.EqualTo(2));
            Assert.That(mails[0].Id, Is.EqualTo(mail1.Id));
            Assert.That(mails[1].Id, Is.EqualTo(mail2.Id));
            Assert.That(ControllerContext.PropertyBag["fromDate"], Is.EqualTo(DateTime.Today));
            Assert.That(ControllerContext.PropertyBag["toDate"], Is.EqualTo(DateTime.Today));
        }
コード例 #2
0
 public void Search(string searchText, DateTime fromDate, DateTime toDate)
 {
     if (searchText.IsNullOrEmpty())
     {
         searchText = "";
     }
     PropertyBag["fromDate"]   = fromDate;
     PropertyBag["toDate"]     = toDate;
     PropertyBag["searchText"] = searchText;
     PropertyBag["rejects"]    = RejectedEmail.Find(DbSession, searchText, fromDate, toDate);
 }
コード例 #3
0
 public void Setup()
 {
     spam = new RejectedEmail {
         Comment     = "test",
         LogTime     = DateTime.Now,
         MessageType = RejectedMessageType.MiniMail,
         SmtpId      = 1000,
         Subject     = "test subject",
         From        = "*****@*****.**",
         To          = "*****@*****.**"
     };
     session.Save(spam);
     defaultUrl = "SmapRejector/Show";
 }
コード例 #4
0
        protected override void ErrorOnMessageProcessing(Mime m, AddressList from, EMailSourceHandlerException e)
        {
            try {
                var subject = e.MailTemplate.Subject;
                var body    = e.MailTemplate.Body;
                var message = e.Message;
                if (String.IsNullOrEmpty(body))
                {
                    SendUnrecLetter(m, from, e);
                    return;
                }

                var attachments = m.Attachments.Where(a => !String.IsNullOrEmpty(a.GetFilename())).Aggregate("", (s, a) => s + String.Format("\"{0}\"\r\n", a.GetFilename()));
                SendErrorLetterToSupplier(e, m);

                if (e is EmailFromUnregistredMail)
                {
                    var mail1 = new RejectedEmail {
                        Comment = message, LogTime = DateTime.Now, From = @from.Mailboxes.First().EmailAddress, Subject = subject
                    };
                    using (var session = ActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(typeof(ActiveRecordBase)).OpenSession())
                        using (var transaction = session.BeginTransaction()) {
                            session.Save(mail1);
                            transaction.Commit();
                        }
                }

                var comment = $@"{message}
Отправители     : {@from.ToAddressListString()}
Получатели      : {m.MainEntity.To.ToAddressListString()}
Список вложений :
{attachments}
Тема письма поставщику : {subject}
Тело письма поставщику :
{body}";
                _logger.Warn($"Не удалось разобрать письмо с адреса {@from.ToAddressListString()}", e);
                if (_currentDocumentType != null)
                {
                    DocumentReceiveLog.Log(GetFirmCodeByFromList(@from), _addressId, null, _currentDocumentType.DocType, comment, IMAPHandler.CurrentUID);
                }
            }
            catch (Exception exMatch) {
                _logger.Error("Не удалось отправить нераспознанное письмо", exMatch);
            }
        }
コード例 #5
0
        public void Search_should_find_rejects_with_given_text_in_from_and_subject_for_given_period()
        {
            var mail1 = new RejectedEmail {
                SmtpId = 64789, Comment = "нафиг", LogTime = new DateTime(2008, 10, 1, 12, 10, 00), From = "*****@*****.**", Subject = "Самоучитель Windows Vista"
            };

            session.Save(mail1);
            var mail2 = new RejectedEmail {
                SmtpId = 65469, Comment = "нафиг", LogTime = new DateTime(2008, 10, 3, 15, 40, 00), From = "*****@*****.**", Subject = "Увеличение объемов продаж test"
            };

            session.Save(mail2);
            var mail3 = new RejectedEmail {
                SmtpId = 4613, Comment = "нафиг", LogTime = new DateTime(2008, 10, 2, 13, 1, 00), From = "*****@*****.**", Subject = "Увеличение объемов продаж"
            };

            session.Save(mail3);
            var mail4 = new RejectedEmail {
                SmtpId = 4634, Comment = "нафиг", LogTime = new DateTime(2008, 9, 30, 12, 10, 0), From = "*****@*****.**", Subject = "Увеличение объемов продаж"
            };

            session.Save(mail4);
            var mail5 = new RejectedEmail {
                SmtpId = 4497, Comment = "нафиг", LogTime = new DateTime(2008, 10, 4, 8, 10, 0), From = "*****@*****.**", Subject = "Увеличение объемов продаж"
            };

            session.Save(mail5);

            controller.Search("test", new DateTime(2008, 10, 1), new DateTime(2008, 10, 3));

            var mails = (RejectedEmail[])ControllerContext.PropertyBag["rejects"];

            Assert.That(mails.Length, Is.EqualTo(2));
            Assert.That(mails[0].Id, Is.EqualTo(mail1.Id));
            Assert.That(mails[1].Id, Is.EqualTo(mail2.Id));
            Assert.That(ControllerContext.PropertyBag["fromDate"], Is.EqualTo(new DateTime(2008, 10, 1)));
            Assert.That(ControllerContext.PropertyBag["toDate"], Is.EqualTo(new DateTime(2008, 10, 3)));
            Assert.That(ControllerContext.PropertyBag["searchText"], Is.EqualTo("test"));
        }