Exemple #1
0
        /// <summary>
        /// Creates a MantaEvent object and Fills it with the values from the data record.
        /// </summary>
        /// <param name="record">Record to get the data from.</param>
        /// <returns>MantaAubseEvent or MantaBounceEvent</returns>
        private static MantaEvent CreateAndFillMantaEventFromRecord(IDataRecord record)
        {
            MantaEventType type      = (MantaEventType)record.GetInt32("evn_type_id");
            MantaEvent     thisEvent = null;

            switch (type)
            {
            case MantaEventType.Abuse:
                thisEvent = new MantaAbuseEvent();
                break;

            case MantaEventType.Bounce:
                thisEvent = new MantaBounceEvent();
                FillMantaBounceEvent((thisEvent as MantaBounceEvent), record);
                break;

            case MantaEventType.TimedOutInQueue:
                thisEvent = new MantaTimedOutInQueueEvent();
                break;

            default:
                throw new NotImplementedException("Unknown Event Type (" + type + ")");
            }

            thisEvent.EmailAddress = record.GetString("evn_event_emailAddress");
            thisEvent.EventTime    = record.GetDateTime("evn_event_timestamp");
            thisEvent.EventType    = type;
            thisEvent.ID           = record.GetInt32("evn_event_id");
            thisEvent.SendID       = record.GetString("snd_send_id");
            thisEvent.Forwarded    = record.GetBoolean("evn_event_forwarded");
            return(thisEvent);
        }
Exemple #2
0
        public void FeedbackLoop()
        {
            using (CreateTransactionScopeObject())
            {
                EmailProcessingDetails processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.AolAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                MantaEventCollection events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(1, events.Count);
                Assert.IsTrue(events[0] is MantaAbuseEvent);
                MantaAbuseEvent abuse = (MantaAbuseEvent)events[0];
                Assert.AreEqual("test@remote", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);


                processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.YahooAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(2, events.Count);
                Assert.IsTrue(events[1] is MantaAbuseEvent);
                abuse = (MantaAbuseEvent)events[1];
                Assert.AreEqual("*****@*****.**", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);

                processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.HotmailAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(3, events.Count);
                Assert.IsTrue(events[2] is MantaAbuseEvent);
                abuse = (MantaAbuseEvent)events[2];
                Assert.AreEqual("*****@*****.**", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);
            }
        }
Exemple #3
0
        public void SaveAndGetAbuse()
        {
            using (CreateTransactionScopeObject())
            {
                MantaAbuseEvent origAbuse = new MantaAbuseEvent
                {
                    EmailAddress = "*****@*****.**",
                    EventTime    = DateTime.UtcNow,
                    EventType    = MantaEventType.Abuse,
                    SendID       = "qwerty"
                };

                origAbuse.ID = EventsManager.Instance.Save(origAbuse);
                MantaAbuseEvent savedAbuse = (MantaAbuseEvent)EventsManager.Instance.GetEvent(origAbuse.ID);
                Assert.NotNull(savedAbuse);
                Assert.AreEqual(origAbuse.EmailAddress, savedAbuse.EmailAddress);
                Assert.That(savedAbuse.EventTime, Is.EqualTo(origAbuse.EventTime).Within(TimeSpan.FromSeconds(1)));
                Assert.AreEqual(origAbuse.EventType, savedAbuse.EventType);
                Assert.AreEqual(origAbuse.ID, savedAbuse.ID);
                Assert.AreEqual(origAbuse.SendID, savedAbuse.SendID);
            }
        }