private void SendNoDbEmail(Person goer, GoerSupporter gs) { var from = new MailAddress(goer.EmailAddress ?? goer.EmailAddress2, goer.Name); var db = DbUtil.Db; try { var text = Body; text = text.Replace("{salutation}", gs.Salutation, true); text = text.Replace("{track}", "", true); var qs = "OptOut/UnSubscribe/?gid=" + Util.EncryptForUrl($"{gs.Id}"); var url = db.ServerLink(qs); var link = $@"<a href=""{url}"">Unsubscribe</a>"; text = text.Replace("{unsubscribe}", link, true); text = text.Replace("%7Bfromemail%7D", from.Address, true); var supportlink = EmailReplacements.SupportLinkAnonymousReplacement(db, OrgId.ToString(), gs.Id.ToString()); text = text.Replace("http://supportlink", supportlink, true); text = text.Replace("https://supportlink", supportlink, true); db.SendEmail(from, Subject, text, Util.ToMailAddressList(gs.NoDbEmail), gs.Id); } catch (Exception ex) { db.SendEmail(from, "sent emails - error", ex.ToString(), Util.ToMailAddressList(from), gs.Id); throw; } }
public void Should_Return_Anonymous_Replacement_Link() { using (var db = CMSDataContext.Create(DatabaseFixture.Host)) { var link = EmailReplacements.SupportLinkAnonymousReplacement(db, "1", "1"); String[] separator = { "//", "/" }; var url = link.Split(separator, StringSplitOptions.RemoveEmptyEntries); var linkId = url[4]; var guid = linkId.ToGuid(); var ot = db.OneTimeLinks.SingleOrDefault(oo => oo.Id == guid.Value); ot.ShouldNotBeNull(); } }