protected override void Process()
        {
            var invoices = Session.Query <Invoice>()
                           .Where(i => ((i.SendToEmail && i.Payer.InvoiceSettings.EmailInvoice) || (i.SendToMinimail && i.Payer.InvoiceSettings.SendToMinimail)) && i.Date <= DateTime.Today);

            foreach (var invoice in invoices)
            {
                _mailer.Clear();
                if (invoice.SendToEmail && invoice.Payer.InvoiceSettings.EmailInvoice)
                {
                    _mailer.InvoiceToEmail(invoice, false);
                }
                else if (invoice.SendToMinimail && invoice.Payer.InvoiceSettings.SendToMinimail)
                {
                    _mailer.SendInvoiceToMinimail(invoice);
                    invoice.SendToMinimail = false;
                }
                _mailer.Send();

                Session.Save(invoice);
            }
        }
예제 #2
0
        protected override void Process()
        {
            var timeToSendMail = ConfigurationManager.AppSettings["SendPremoderatedPomotionListAt"]
                                 .Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);

            var timeToSendMailHour    = int.Parse(timeToSendMail[0]);
            var timeToSendMailMinutes = timeToSendMail.Length > 1 ? int.Parse(timeToSendMail[1]) : 0;
            var mailTime = SystemTime.Now().Date.AddHours(timeToSendMailHour).AddMinutes(timeToSendMailMinutes);

            if (SystemTime.Now() >= mailTime && SystemTime.Now() < mailTime.AddMinutes(30))
            {
                using (new SessionScope(FlushAction.Never)) {
                    var promotions = ActiveRecordLinq.AsQueryable <SupplierPromotion>()
                                     .Where(p => !p.Moderated && p.Enabled && p.Moderator == null).OrderBy(s => s.Begin).ToList();
                    if (promotions.Count > 0)
                    {
                        _mailer = (_mailer ?? new MonorailMailer()).PremoderatedPromotions(promotions);
                        _mailer.Send();
                    }
                }
            }
        }
예제 #3
0
        public void Enable_changed()
        {
            //просто сконструированный клиент больше не подходит
            //тк в методе есть хак var client = session.Load<Client>(((Service)item).Id); //(Client) item;
            //хибер конструирует прокси для item наследуя ее от Service тк он не знает кто это будет Client или Supplier
            //что бы обойти это и нужен хак, возможно есть какой то правильный способ что бы
            //хибер конструировал правельные прокми но я его не знаю
            //mailer.EnableChanged(client);

            var client = DataMother.TestClient(c => c.Name = "Тестовый клиент");

            mailer.EnableChanged(client);
            mailer.Send();
            Assert.That(message.Body, Is.StringContaining("Наименование: Тестовый клиент"));
        }