Exemple #1
0
        public void StaticOverridesAreApplied()
        {
            var testingStaticOverrides = new OverrideList();

            testingStaticOverrides.Add(new ToOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new CcOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new BccOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new SubjectOverride().Prepend("SubjectSpecialString"));
            testingStaticOverrides.Add(new BodyOverride().Prepend("BodySpecialString"));

            var staticOverridesProviderMock = new Mock <IStaticOverridesProvider>();

            staticOverridesProviderMock.Setup(m => m.StaticOverrides).Returns(testingStaticOverrides);

            MailMessageQueue    queue    = new MailMessageQueue(Repository, AttachmentFileSystem);
            MailMessageDequeuer dequeuer = new MailMessageDequeuer(Config, SmtpClient, Repository, AttachmentFileSystem, staticOverridesProviderMock.Object);

            var mm = new MailMessage();

            queue.EnqueueMessage(mm);

            var emailQueueItem = Repository.Fetch().First();

            var fl = new DequeueFilterList();

            fl.And(new IdDequeueFilter(emailQueueItem.ID));

            var result = dequeuer.SendQueuedMessages(fl, new OverrideList());

            var sent = result.First().SentMailMessage;

            Assert.AreEqual("*****@*****.**", sent.To.ToString(), "Static To Override was not applied");
            Assert.AreEqual("*****@*****.**", sent.CC.ToString(), "Static Cc Override was not applied");
            Assert.AreEqual("*****@*****.**", sent.Bcc.ToString(), "Static Bcc Override was not applied");
            Assert.AreEqual("SubjectSpecialString", sent.Subject, "Static Subject Override was not applied");
            Assert.AreEqual("BodySpecialString", sent.Body, "Static Body Override was not applied");
        }
Exemple #2
0
        private OverrideList CreateStaticOverrideList()
        {
            OverrideList list = new OverrideList();

            StaticOverrideConfigurationSectionGroup section = (StaticOverrideConfigurationSectionGroup)ConfigurationManager.GetSection("staticOverrides");

            if (section != null)
            {
                foreach (StaticOverrideConfigurationElement overrideConfig in section.StaticOverrides)
                {
                    MailMessageOverride mmOverride = (MailMessageOverride)Activator.CreateInstance(overrideConfig.StaticOverrideType);

                    if (overrideConfig.DoOverride)
                    {
                        mmOverride.Override(overrideConfig.Override);
                    }

                    if (overrideConfig.DoAppend)
                    {
                        mmOverride.Append(overrideConfig.Append);
                    }

                    if (overrideConfig.DoPrepend)
                    {
                        mmOverride.Prepend(overrideConfig.Prepend);
                    }

                    if (overrideConfig.Clear)
                    {
                        mmOverride.Clear();
                    }

                    list.Add(mmOverride);
                }
            }

            return(list);
        }
        private OverrideList CreateStaticOverrideList()
        {
            OverrideList list = new OverrideList();

            StaticOverrideConfigurationSectionGroup section = (StaticOverrideConfigurationSectionGroup)ConfigurationManager.GetSection("staticOverrides");

            if (section != null)
            {
                foreach (StaticOverrideConfigurationElement overrideConfig in section.StaticOverrides)
                {
                    MailMessageOverride mmOverride = (MailMessageOverride)Activator.CreateInstance(overrideConfig.StaticOverrideType);

                    if(overrideConfig.DoOverride)
                    {
                        mmOverride.Override(overrideConfig.Override);
                    }

                    if (overrideConfig.DoAppend)
                    {
                        mmOverride.Append(overrideConfig.Append);
                    }

                    if (overrideConfig.DoPrepend)
                    {
                        mmOverride.Prepend(overrideConfig.Prepend);
                    }

                    if (overrideConfig.Clear)
                    {
                        mmOverride.Clear();
                    }

                    list.Add(mmOverride);
                }
            }

            return list;
        }
Exemple #4
0
        protected override bool ParseArguments(string[] args)
        {
            filterList   = new DequeueFilterList();
            overrideList = new OverrideList();

            bool     dateRangeApplied = false;
            DateTime dateFrom = DateTime.MinValue, dateTo = DateTime.MaxValue;
            bool     idRangeApplied = false;
            int      idMin = 0, idMax = int.MaxValue;

            OptionSet optionSet = new OptionSet()
                                  //filters
                                  .Add("tf=|tofilter=", v => filterList.And(new ToFilter(v)))
                                  .Add("bcf=|bodycontainsfilter=", v => filterList.And(new BodyContainsFilter(v)))
                                  .Add("bef=|bodyexactfilter=", v => filterList.And(new BodyExactFilter(v)))
                                  .Add("fd=|fromdate=", (DateTime v) => { dateRangeApplied = true; dateFrom = v; })
                                  .Add("td=|todate=", (DateTime v) => { dateRangeApplied = true; dateTo = v; })
                                  .Add("idf=|idfilter=|id=", (int v) => filterList.And(new IdDequeueFilter(v)))
                                  .Add("rtf=|retriesfilter=", (byte v) => filterList.And(new RetriesFilter(v)))
                                  .Add("sent=|sentfilter=|issent=", (bool v) => filterList.And(new SentStatusDequeueFilter(v)))
                                  .Add("scf=|subjectcontainsfilter=", v => filterList.And(new SubjectContainsFilter(v)))
                                  .Add("sef=|subjectexactfilter=", v => filterList.And(new SubjectExactFilter(v)))
                                  .Add("idrf=|idfrom=", (int v) => { idRangeApplied = true; idMin = v; })
                                  .Add("idrt=|idto=", (int v) => { idRangeApplied = true; idMax = v; })
                                  .Add("haf|hasattachmentsfilter", "filter on whether an email has attachments", v => filterList.And(new HasAttachmentsFilter(true)))

                                  //overrides
                                  .Add("to=|tooverride=", v => overrideList.Add(new ToOverride().Override(v)))
                                  .Add("cc=|ccoverride=", v => overrideList.Add(new CcOverride().Override(v)))
                                  .Add("bcc=|bccoverride=", v => overrideList.Add(new BccOverride().Override(v)))
                                  .Add("subject=|subjectoverride=", v => overrideList.Add(new SubjectOverride().Override(v)))
                                  .Add("body=|bodyoverride=", v => overrideList.Add(new BodyOverride().Override(v)))

                                  .Add("toa=|toappend=", v => overrideList.Add(new ToOverride().Append(v)))
                                  .Add("cca=|ccappend=", v => overrideList.Add(new CcOverride().Append(v)))
                                  .Add("bcca=|bccappend=", v => overrideList.Add(new BccOverride().Append(v)))
                                  .Add("subjecta=|subjectappend=", v => overrideList.Add(new SubjectOverride().Append(v)))
                                  .Add("bodya=|bodyappend=", v => overrideList.Add(new BodyOverride().Append(v)))

                                  .Add("top=|toprepend=", v => overrideList.Add(new ToOverride().Prepend(v)))
                                  .Add("ccp=|ccprepend=", v => overrideList.Add(new CcOverride().Prepend(v)))
                                  .Add("bccp=|bccprepend=", v => overrideList.Add(new BccOverride().Prepend(v)))
                                  .Add("subjectp=|subjectprepend=", v => overrideList.Add(new SubjectOverride().Prepend(v)))
                                  .Add("bodyp=|bodyprepend=", v => overrideList.Add(new BodyOverride().Prepend(v)))

                                  .Add("da|donotaudit", "whether to audit whether the email was sent (default=true)", v => Audit = false)
            ;

            try
            {
                optionSet.Parse(args);
            }
            catch (OptionException)
            {
                Console.WriteLine("Error");
                return(false);
            }

            if (dateRangeApplied)
            {
                filterList.And(new DateRangeFilter(dateFrom, dateTo));
            }

            if (idRangeApplied)
            {
                filterList.And(new IdRangeDequeueFilter(idMin, idMax));
            }

            return(true);
        }
        public void StaticOverridesAreApplied()
        {
            var testingStaticOverrides = new OverrideList();
            testingStaticOverrides.Add(new ToOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new CcOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new BccOverride().Prepend("*****@*****.**"));
            testingStaticOverrides.Add(new SubjectOverride().Prepend("SubjectSpecialString"));
            testingStaticOverrides.Add(new BodyOverride().Prepend("BodySpecialString"));

            var staticOverridesProviderMock = new Mock<IStaticOverridesProvider>();
            staticOverridesProviderMock.Setup(m => m.StaticOverrides).Returns(testingStaticOverrides);

            MailMessageQueue queue = new MailMessageQueue(Repository, AttachmentFileSystem);
            MailMessageDequeuer dequeuer = new MailMessageDequeuer(Config, SmtpClient, Repository, AttachmentFileSystem, staticOverridesProviderMock.Object);

            var mm = new MailMessage();

            queue.EnqueueMessage(mm);

            var emailQueueItem = Repository.Fetch().First();

            var fl = new DequeueFilterList();
            fl.And(new IdDequeueFilter(emailQueueItem.ID));

            var result = dequeuer.SendQueuedMessages(fl, new OverrideList());

            var sent = result.First().SentMailMessage;

            Assert.AreEqual("*****@*****.**", sent.To.ToString(), "Static To Override was not applied");
            Assert.AreEqual("*****@*****.**", sent.CC.ToString(), "Static Cc Override was not applied");
            Assert.AreEqual("*****@*****.**", sent.Bcc.ToString(), "Static Bcc Override was not applied");
            Assert.AreEqual("SubjectSpecialString", sent.Subject, "Static Subject Override was not applied");
            Assert.AreEqual("BodySpecialString", sent.Body, "Static Body Override was not applied");
        }
        protected override bool ParseArguments(string[] args)
        {
            filterList = new DequeueFilterList();
            overrideList = new OverrideList();

            bool dateRangeApplied = false;
            DateTime dateFrom = DateTime.MinValue, dateTo = DateTime.MaxValue;
            bool idRangeApplied = false;
            int idMin = 0, idMax = int.MaxValue;

            OptionSet optionSet = new OptionSet()
                //filters
                .Add("tf=|tofilter=", v => filterList.And(new ToFilter(v)))
                .Add("bcf=|bodycontainsfilter=", v => filterList.And(new BodyContainsFilter(v)))
                .Add("bef=|bodyexactfilter=", v => filterList.And(new BodyExactFilter(v)))
                .Add("fd=|fromdate=", (DateTime v) => { dateRangeApplied = true; dateFrom = v; })
                .Add("td=|todate=", (DateTime v) => { dateRangeApplied = true; dateTo = v; })
                .Add("idf=|idfilter=|id=", (int v) => filterList.And(new IdDequeueFilter(v)))
                .Add("rtf=|retriesfilter=", (byte v) => filterList.And(new RetriesFilter(v)))
                .Add("sent=|sentfilter=|issent=", (bool v) => filterList.And(new SentStatusDequeueFilter(v)))
                .Add("scf=|subjectcontainsfilter=", v => filterList.And(new SubjectContainsFilter(v)))
                .Add("sef=|subjectexactfilter=", v => filterList.And(new SubjectExactFilter(v)))
                .Add("idrf=|idfrom=", (int v) => { idRangeApplied = true; idMin = v; })
                .Add("idrt=|idto=", (int v) => { idRangeApplied = true; idMax = v; })
                .Add("haf|hasattachmentsfilter", "filter on whether an email has attachments", v => filterList.And(new HasAttachmentsFilter(true)))

                //overrides
                .Add("to=|tooverride=", v=> overrideList.Add(new ToOverride().Override(v)))
                .Add("cc=|ccoverride=", v => overrideList.Add(new CcOverride().Override(v)))
                .Add("bcc=|bccoverride=", v => overrideList.Add(new BccOverride().Override(v)))
                .Add("subject=|subjectoverride=", v => overrideList.Add(new SubjectOverride().Override(v)))
                .Add("body=|bodyoverride=", v => overrideList.Add(new BodyOverride().Override(v)))

                .Add("toa=|toappend=", v => overrideList.Add(new ToOverride().Append(v)))
                .Add("cca=|ccappend=", v => overrideList.Add(new CcOverride().Append(v)))
                .Add("bcca=|bccappend=", v => overrideList.Add(new BccOverride().Append(v)))
                .Add("subjecta=|subjectappend=", v => overrideList.Add(new SubjectOverride().Append(v)))
                .Add("bodya=|bodyappend=", v => overrideList.Add(new BodyOverride().Append(v)))

                .Add("top=|toprepend=", v => overrideList.Add(new ToOverride().Prepend(v)))
                .Add("ccp=|ccprepend=", v => overrideList.Add(new CcOverride().Prepend(v)))
                .Add("bccp=|bccprepend=", v => overrideList.Add(new BccOverride().Prepend(v)))
                .Add("subjectp=|subjectprepend=", v => overrideList.Add(new SubjectOverride().Prepend(v)))
                .Add("bodyp=|bodyprepend=", v => overrideList.Add(new BodyOverride().Prepend(v)))

                .Add("da|donotaudit", "whether to audit whether the email was sent (default=true)" , v => Audit = false)
                ;

            try
            {
                optionSet.Parse(args);
            }
            catch (OptionException)
            {
                Console.WriteLine("Error");
                return false;
            }

            if (dateRangeApplied)
            {
                filterList.And(new DateRangeFilter(dateFrom, dateTo));
            }

            if (idRangeApplied)
            {
                filterList.And(new IdRangeDequeueFilter(idMin, idMax));
            }

            return true;
        }