Example #1
0
        private void Email2(IQueryable <Person> q, int queuedBy, string fromAddr, string fromName, string subject,
                            string body)
        {
            //db.Log($"Email2 {subject}");
            var from = new MailAddress(fromAddr, fromName);

            q = from p in q
                where p.EmailAddress != null
                where p.EmailAddress != ""
                where (p.SendEmailAddress1 ?? true) || (p.SendEmailAddress2 ?? false)
                select p;
            var tag = db.PopulateSpecialTag(q, DbUtil.TagTypeId_Emailer);

            Util.IsInRoleEmailTest = TestEmail;
            var queueremail = db.People.Where(pp => pp.PeopleId == queuedBy).Select(pp => pp.EmailAddress).Single();

            Util.UserEmail = queueremail;
            db.SetCurrentOrgId(CurrentOrgId);

            var emailqueue = db.CreateQueue(queuedBy, from, subject, body, null, tag.Id, false);

            emailqueue.Transactional = Transactional;
            db.SendPeopleEmail(emailqueue.Id);
            //db.Log($"Email2 (queued) {subject}");
        }
Example #2
0
        private void Email2(CMSDataContext db2, IQueryable <Person> q, int queuedBy, string fromAddr, string fromName, string subject,
                            string body)
        {
            var from = new MailAddress(fromAddr, fromName);

            q = from p in q
                where p.EmailAddress != null
                where p.EmailAddress != ""
                where (p.SendEmailAddress1 ?? true) || (p.SendEmailAddress2 ?? false)
                select p;
            var tag = db2.PopulateSpecialTag(q, DbUtil.TagTypeId_Emailer);

            Util.IsInRoleEmailTest = TestEmail;
            var queueremail = db2.People.Where(pp => pp.PeopleId == queuedBy).Select(pp => pp.EmailAddress).SingleOrDefault();

            if (!queueremail.HasValue())
            {
                throw new Exception("QueuedBy PeopleId not found in model.Email");
            }
            Util.UserEmail = queueremail;
            db2.SetCurrentOrgId(CurrentOrgId);

            var emailqueue = db2.CreateQueue(queuedBy, from, subject, body, null, tag.Id, false);

            emailqueue.Transactional = Transactional;
            db2.SendPeopleEmail(emailqueue.Id);
        }
Example #3
0
        // this will run replacements in a new dataContext
        //
        public string DoReplacements(int pid, EmailQueueTo emailqueueto)
        {
            using (db = CMSDataContext.Create(connStr, host))
            {
                if (currentOrgId.HasValue)
                    db.SetCurrentOrgId(currentOrgId);
                var p = db.LoadPersonById(pid);
                person = p;
                var pi = emailqueueto.OrgId.HasValue
                    ? (from m in db.OrganizationMembers
                       let ts = db.ViewTransactionSummaries.SingleOrDefault(tt => tt.RegId == m.TranId && tt.PeopleId == m.PeopleId)
                       where m.PeopleId == emailqueueto.PeopleId && m.OrganizationId == emailqueueto.OrgId
                       select new PayInfo
                       {
                           PayLink = m.PayLink2(db),
                           Amount = ts.IndAmt,
                           AmountPaid = ts.IndPaid,
                           AmountDue = ts.IndDue,
                           RegisterMail = m.RegisterEmail
                       }).SingleOrDefault()
                    : null;

                var aa = db.GetAddressList(p);
                if (emailqueueto.EmailQueue.CCParents ?? false)
                    aa.AddRange(db.GetCcList(p, emailqueueto));

                if (emailqueueto.AddEmail.HasValue())
                    foreach (var ad in emailqueueto.AddEmail.SplitStr(","))
                        Util.AddGoodAddress(aa, ad);

                if (emailqueueto.OrgId.HasValue && pi != null)
                    Util.AddGoodAddress(aa, Util.FullEmail(pi.RegisterMail, p.Name));

                ListAddresses = aa.DistinctEmails();

                var noreplacements = emailqueueto.EmailQueue.NoReplacements ?? false;
                var texta = new List<string>(stringlist);
                for (var i = 1; i < texta.Count; i += 2)
                    if (noreplacements)
                        texta[i] = "";
                    else
                        texta[i] = DoReplaceCode(texta[i], p, pi, emailqueueto);

                db.SubmitChanges();
                return string.Join("", texta);
            }
        }
Example #4
0
        // this will run replacements in a new dataContext
        //
        public string DoReplacements(int pid, EmailQueueTo emailqueueto)
        {
            using (db = CMSDataContext.Create(connStr, host))
            {
                if (currentOrgId.HasValue)
                {
                    db.SetCurrentOrgId(currentOrgId);
                }
                var p = db.LoadPersonById(pid);
                person = p;

                pi = GetPayInfo(emailqueueto.OrgId ?? currentOrgId ?? db.CurrentSessionOrgId, p.PeopleId);

                var aa = db.GetAddressList(p);

                if (emailqueueto.EmailQueue.FinanceOnly == true)
                {
                    var contributionemail = (from ex in db.PeopleExtras
                                             where ex.PeopleId == p.PeopleId
                                             where ex.Field == "ContributionEmail"
                                             select ex.Data).SingleOrDefault();
                    if (contributionemail.HasValue())
                    {
                        contributionemail = contributionemail.trim();
                    }
                    if (!Util.ValidEmail(contributionemail))
                    {
                        contributionemail = p.FromEmail;
                    }
                    aa.Clear();
                    aa.Add(Util.TryGetMailAddress(contributionemail));
                }

                if (OptOuts != null && emailqueueto.EmailQueue.CCParents == true)
                {
                    var pp = OptOuts.SingleOrDefault(vv => vv.PeopleId == emailqueueto.PeopleId);
                    if (pp != null)
                    {
                        if (pp.HhPeopleId.HasValue && Util.ValidEmail(pp.HhEmail))
                        {
                            aa.Add(new MailAddress(pp.HhEmail, pp.HhName));
                            emailqueueto.Parent1 = pp.HhPeopleId;
                        }
                        if (pp.HhSpPeopleId.HasValue && Util.ValidEmail(pp.HhSpEmail))
                        {
                            aa.Add(new MailAddress(pp.HhSpEmail, pp.HhSpName));
                            emailqueueto.Parent2 = pp.HhSpPeopleId;
                        }
                    }
                }
                if (emailqueueto.AddEmail.HasValue())
                {
                    foreach (var ad in emailqueueto.AddEmail.SplitStr(","))
                    {
                        Util.AddGoodAddress(aa, ad);
                    }
                }

                if (emailqueueto.OrgId.HasValue && pi != null)
                {
                    Util.AddGoodAddress(aa, Util.FullEmail(pi.RegisterMail, p.Name));
                }

                ListAddresses = aa.DistinctEmails();

                var noreplacements = emailqueueto.EmailQueue.NoReplacements ?? false;
                var texta          = new List <string>(stringlist);
                for (var i = 1; i < texta.Count; i += 2)
                {
                    if (noreplacements && !texta[i].StartsWith("<style"))
                    {
                        texta[i] = "";
                    }
                    else
                    {
                        texta[i] = DoReplaceCode(texta[i], emailqueueto);
                    }
                }

                db.SubmitChanges();
                return(string.Join("", texta));
            }
        }
Example #5
0
        // this will run replacements in a new dataContext
        //
        public string DoReplacements(int pid, EmailQueueTo emailqueueto)
        {
            using (db = CMSDataContext.Create(connStr, host))
            {
                if (currentOrgId.HasValue)
                    db.SetCurrentOrgId(currentOrgId);
                var p = db.LoadPersonById(pid);
                person = p;
                var pi = emailqueueto.OrgId.HasValue
                    ? (from m in db.OrganizationMembers
                       let ts = db.ViewTransactionSummaries.SingleOrDefault(tt => tt.RegId == m.TranId && tt.PeopleId == m.PeopleId)
                       where m.PeopleId == emailqueueto.PeopleId && m.OrganizationId == emailqueueto.OrgId
                       select new PayInfo
                       {
                           PayLink = m.PayLink2(db),
                           Amount = ts.IndAmt,
                           AmountPaid = ts.IndPaid,
                           AmountDue = ts.IndDue,
                           RegisterMail = m.RegisterEmail
                       }).SingleOrDefault()
                    : null;

                var aa = db.GetAddressList(p);

                if (emailqueueto.EmailQueue.FinanceOnly == true)
                {
                    var contributionemail = (from ex in db.PeopleExtras
                                             where ex.PeopleId == p.PeopleId
                                             where ex.Field == "ContributionEmail"
                                             select ex.Data).SingleOrDefault();
                    if (contributionemail.HasValue())
                        contributionemail = contributionemail.trim();
                    if (!Util.ValidEmail(contributionemail))
                        contributionemail = p.FromEmail;
                    aa.Clear();
                    aa.Add(Util.TryGetMailAddress(contributionemail));
                }

                if (OptOuts != null && emailqueueto.EmailQueue.CCParents == true)
                {
                    var pp = OptOuts.SingleOrDefault(vv => vv.PeopleId == emailqueueto.PeopleId);
                    if(pp != null)
                    {
                        if (pp.HhPeopleId.HasValue && Util.ValidEmail(pp.HhEmail))
                        {
                            aa.Add(new MailAddress(pp.HhEmail, pp.HhName));
                            emailqueueto.Parent1 = pp.HhPeopleId;
                        }
                        if (pp.HhSpPeopleId.HasValue && Util.ValidEmail(pp.HhSpEmail))
                        {
                            aa.Add(new MailAddress(pp.HhSpEmail, pp.HhSpName));
                            emailqueueto.Parent2 = pp.HhSpPeopleId;
                        }
                    }
                }
                if (emailqueueto.AddEmail.HasValue())
                    foreach (var ad in emailqueueto.AddEmail.SplitStr(","))
                        Util.AddGoodAddress(aa, ad);

                if (emailqueueto.OrgId.HasValue && pi != null)
                    Util.AddGoodAddress(aa, Util.FullEmail(pi.RegisterMail, p.Name));

                ListAddresses = aa.DistinctEmails();

                var noreplacements = emailqueueto.EmailQueue.NoReplacements ?? false;
                var texta = new List<string>(stringlist);
                for (var i = 1; i < texta.Count; i += 2)
                    if (noreplacements && !texta[i].StartsWith("<style"))
                        texta[i] = "";
                    else
                        texta[i] = DoReplaceCode(texta[i], p, pi, emailqueueto);

                db.SubmitChanges();
                return string.Join("", texta);
            }
        }
        // this will run replacements in a new dataContext
        //
        public string DoReplacements(int pid, EmailQueueTo emailqueueto)
        {
            using (db = CMSDataContext.Create(connStr, host))
            {
                if (currentOrgId.HasValue)
                {
                    db.SetCurrentOrgId(currentOrgId);
                }
                var p = db.LoadPersonById(pid);
                person = p;
                var pi = emailqueueto.OrgId.HasValue
                    ? (from m in db.OrganizationMembers
                       let ts = db.ViewTransactionSummaries.SingleOrDefault(tt => tt.RegId == m.TranId && tt.PeopleId == m.PeopleId)
                                where m.PeopleId == emailqueueto.PeopleId && m.OrganizationId == emailqueueto.OrgId
                                select new PayInfo
                {
                    PayLink = m.PayLink2(db),
                    Amount = ts.IndAmt,
                    AmountPaid = ts.IndPaid,
                    AmountDue = ts.IndDue,
                    RegisterMail = m.RegisterEmail
                }).SingleOrDefault()
                    : null;

                var aa = db.GetAddressList(p);
                if (emailqueueto.EmailQueue.CCParents ?? false)
                {
                    aa.AddRange(db.GetCcList(p, emailqueueto));
                }

                if (emailqueueto.AddEmail.HasValue())
                {
                    foreach (var ad in emailqueueto.AddEmail.SplitStr(","))
                    {
                        Util.AddGoodAddress(aa, ad);
                    }
                }

                if (emailqueueto.OrgId.HasValue && pi != null)
                {
                    Util.AddGoodAddress(aa, Util.FullEmail(pi.RegisterMail, p.Name));
                }

                ListAddresses = aa.DistinctEmails();

                var noreplacements = emailqueueto.EmailQueue.NoReplacements ?? false;
                var texta          = new List <string>(stringlist);
                for (var i = 1; i < texta.Count; i += 2)
                {
                    if (noreplacements)
                    {
                        texta[i] = "";
                    }
                    else
                    {
                        texta[i] = DoReplaceCode(texta[i], p, pi, emailqueueto);
                    }
                }

                db.SubmitChanges();
                return(string.Join("", texta));
            }
        }
Example #7
0
        private void Email2(CMSDataContext db2, IQueryable<Person> q, int queuedBy, string fromAddr, string fromName, string subject,
            string body)
        {
            var from = new MailAddress(fromAddr, fromName);
            q = from p in q
                where p.EmailAddress != null
                where p.EmailAddress != ""
                where (p.SendEmailAddress1 ?? true) || (p.SendEmailAddress2 ?? false)
                select p;
            var tag = db2.PopulateSpecialTag(q, DbUtil.TagTypeId_Emailer);

            Util.IsInRoleEmailTest = TestEmail;
            var queueremail = db2.People.Where(pp => pp.PeopleId == queuedBy).Select(pp => pp.EmailAddress).SingleOrDefault();
            if(!queueremail.HasValue())
                throw new Exception("QueuedBy PeopleId not found in model.Email");
            Util.UserEmail = queueremail;
            db2.SetCurrentOrgId(CurrentOrgId);

            var emailqueue = db2.CreateQueue(queuedBy, from, subject, body, null, tag.Id, false);
            emailqueue.Transactional = Transactional;
            db2.SendPeopleEmail(emailqueue.Id);
        }