Example #1
0
        public string DoReplacements(Person p, EmailQueueTo emailqueueto)
        {
            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 (string 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);
                }
            }

            return(string.Join("", texta));
        }
Example #2
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 #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.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 (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].StartsWith("<style"))
                    {
                        texta[i] = "";
                    }
                    else
                    {
                        texta[i] = DoReplaceCode(texta[i], p, pi, emailqueueto);
                    }
                }

                db.SubmitChanges();
                return(string.Join("", texta));
            }
        }