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}"); }
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); }
// 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); } }
// 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)); } }
// 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)); } }
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); }