本文整理汇总了C#中CmsData.EmailQueueTo类的典型用法代码示例。如果您正苦于以下问题:C# EmailQueueTo类的具体用法?C# EmailQueueTo怎么用?C# EmailQueueTo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EmailQueueTo类属于CmsData命名空间,在下文中一共展示了EmailQueueTo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NextMeetingDate0
private string NextMeetingDate0(string code, EmailQueueTo emailqueueto)
{
if (!emailqueueto.OrgId.HasValue)
return code;
var mt = (from mm in db.Meetings
where mm.OrganizationId == emailqueueto.OrgId
where mm.MeetingDate > DateTime.Now
orderby mm.MeetingDate
select mm.MeetingDate).FirstOrDefault() ?? DateTime.MinValue;
return mt == DateTime.MinValue ? "none" : mt.ToString("g");
}
示例2: DoVoteLinkAnchorStyle
private string DoVoteLinkAnchorStyle(string text, EmailQueueTo emailqueueto)
{
var list = new Dictionary<string, OneTimeLink>();
const string VoteLinkRE = @"{votelink(?<inside>[^}]*)}";
var re = new Regex(VoteLinkRE, RegexOptions.Singleline | RegexOptions.Multiline);
Match match = re.Match(text);
while (match.Success)
{
string votelink = match.Value;
string anchor = "<a " + match.Groups["inside"].Value + ">text</a>";
anchor = anchor.Replace(""", "\"");
anchor = anchor.Replace("”", "\"");
anchor = anchor.Replace("“", "\"");
var doc = new HtmlDocument();
doc.LoadHtml(anchor);
HtmlNode ele = doc.DocumentNode.Element("a");
Dictionary<string, string> d = ele.Attributes.ToDictionary(aa => aa.Name.ToString(), aa => aa.Value);
string txt = "click here";
if (d.ContainsKey("text"))
txt = d["text"];
string msg = "Thank you for responding.";
if (d.ContainsKey("message"))
msg = d["message"];
string confirm = "false";
if (d.ContainsKey("confirm"))
confirm = d["confirm"];
if (!d.ContainsKey("smallgroup"))
throw new Exception("Votelink: no smallgroup attribute");
string smallgroup = d["smallgroup"];
string pre = "";
string[] a = smallgroup.SplitStr(":");
if (a.Length > 1)
pre = a[0];
var id = GetId(d, "VoteLink");
string url = VoteLinkUrl(text, emailqueueto, list, votelink, id, msg, confirm, smallgroup, pre);
text = text.Replace(votelink, @"<a href=""{0}"">{1}</a>".Fmt(url, txt));
match = match.NextMatch();
}
return text;
}
示例3: RegisterTagUrl
private string RegisterTagUrl(string text,
EmailQueueTo emailqueueto,
Dictionary<string, OneTimeLink> list,
string votelink,
string id,
bool showfamily = false)
{
string qs = "{0},{1},{2}".Fmt(id, emailqueueto.PeopleId, emailqueueto.Id);
OneTimeLink ot;
if (list.ContainsKey(qs))
ot = list[qs];
else
{
ot = new OneTimeLink
{
Id = Guid.NewGuid(),
Querystring = qs
};
OneTimeLinks.InsertOnSubmit(ot);
SubmitChanges();
list.Add(qs, ot);
}
string url = Util.URLCombine(CmsHost, "/OnlineReg/RegisterLink/{0}".Fmt(ot.Id.ToCode()));
if (showfamily)
url += "?showfamily=true";
return url;
}
示例4: DoRegisterTag2
private string DoRegisterTag2(string text, EmailQueueTo emailqueueto)
{
var list = new Dictionary<string, OneTimeLink>();
const string VoteLinkRE = @"<registertag .*?>(?<inside>.+?)</registertag>";
var re = new Regex(VoteLinkRE, RegexOptions.Singleline | RegexOptions.Multiline);
Match match = re.Match(text);
while (match.Success)
{
string tag = match.Value;
string inside = HttpUtility.HtmlDecode(match.Groups["inside"].Value);
var doc = new HtmlDocument();
doc.LoadHtml(tag);
HtmlNode ele = doc.DocumentNode.Element("registertag");
Dictionary<string, string> d = ele.Attributes.ToDictionary(aa => aa.Name.ToString(), aa => aa.Value);
var id = GetId(d, "RegisterTag");
string url = RegisterTagUrl(text, emailqueueto, list, tag, id);
text = text.Replace(tag, @"<a href=""{0}"">{1}</a>".Fmt(url, inside));
match = match.NextMatch();
}
return text;
}
示例5: DoSmallGroups
private string DoSmallGroups(string text, EmailQueueTo emailqueueto)
{
const string RE = @"\{smallgroups(:\[(?<prefix>[^\]]*)\]){0,1}\}";
var re = new Regex(RE, RegexOptions.Singleline);
Match match = re.Match(text);
while (match.Success && emailqueueto.OrgId.HasValue)
{
string tag = match.Value;
string prefix = match.Groups["prefix"].Value;
var q = from mm in OrgMemMemTags
where mm.OrgId == emailqueueto.OrgId
where mm.PeopleId == emailqueueto.PeopleId
where mm.MemberTag.Name.StartsWith(prefix) || prefix == null || prefix == ""
orderby mm.MemberTag.Name
select mm.MemberTag.Name.Substring(prefix.Length);
text = text.Replace(tag, string.Join("<br/>\n", q));
match = match.NextMatch();
}
return text;
}
示例6: DoExtraValueData
private string DoExtraValueData(string text, EmailQueueTo emailqueueto)
{
const string RE = @"{extra(?<type>.*?):(?<field>.*?)}";
var re = new Regex(RE, RegexOptions.Singleline);
Match match = re.Match(text);
while (match.Success)
{
string tag = match.Value;
string field = match.Groups["field"].Value;
string type = match.Groups["type"].Value;
var ev =
PeopleExtras.SingleOrDefault(ee => ee.Field == field && emailqueueto.PeopleId == ee.PeopleId);
string value = "";
switch (type)
{
case "value":
value = ev.StrValue;
break;
case "data":
value = ev.Data;
break;
case "date":
value = ev.DateValue.FormatDate();
break;
case "int":
value = ev.IntValue.ToString();
break;
}
text = text.Replace(tag, value);
match = match.NextMatch();
}
return text;
}
示例7: DoRegisterLink
private string DoRegisterLink(string text, EmailQueueTo emailqueueto)
{
var list = new Dictionary<string, OneTimeLink>();
const string VoteLinkRE = "<a[^>]*?href=\"https{0,1}://(?<rlink>registerlink2{0,1})/{0,1}\"[^>]*>.*?</a>";
var re = new Regex(VoteLinkRE, RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.IgnoreCase);
Match match = re.Match(text);
while (match.Success)
{
string tag = match.Value;
string rlink = match.Groups["rlink"].Value.ToLower();
var doc = new HtmlDocument();
doc.LoadHtml(tag);
HtmlNode ele = doc.DocumentNode.Element("a");
string inside = ele.InnerHtml;
Dictionary<string, string> d = ele.Attributes.ToDictionary(aa => aa.Name.ToString(), aa => aa.Value);
var id = GetId(d, "RegisterLink");
string url = RegisterTagUrl(text, emailqueueto, list, tag, id,
showfamily: rlink == "registerlink2");
text = text.Replace(tag, @"<a href=""{0}"">{1}</a>".Fmt(url, inside));
match = match.NextMatch();
}
return text;
}
示例8: RegText
private string RegText(string code, EmailQueueTo emailqueueto)
{
var match = regTextRe.Match(code);
if (!match.Success)
return code;
var field = match.Groups["field"].Value;
var type = match.Groups["type"].Value;
var answer = (from qa in db.ViewOnlineRegQAs
where qa.Question == field
where qa.Type == type
where qa.PeopleId == emailqueueto.PeopleId
where qa.OrganizationId == emailqueueto.OrgId
select qa.Answer).SingleOrDefault();
return answer;
}
示例9: RsvpLink
private string RsvpLink(string code, EmailQueueTo emailqueueto)
{
//<a dir="ltr" href="http://rsvplink" id="798" rel="meetingid" title="This is a message">test</a>
var list = new Dictionary<string, OneTimeLink>();
var doc = new HtmlDocument();
doc.LoadHtml(code);
var ele = doc.DocumentNode.Element("a");
var inside = ele.InnerHtml.Replace("{last}", person.LastName);
var d = ele.Attributes.ToDictionary(aa => aa.Name.ToString(), aa => aa.Value);
var msg = "Thank you for responding.";
if (d.ContainsKey("title"))
msg = d["title"];
string confirm = "false";
if (d.ContainsKey("dir") && d["dir"] == "ltr")
confirm = "true";
string smallgroup = null;
if (d.ContainsKey("rel"))
smallgroup = d["rel"];
var id = GetId(d, "RsvpLink");
string qs = $"{id},{emailqueueto.PeopleId},{emailqueueto.Id},{smallgroup}";
OneTimeLink ot;
if (list.ContainsKey(qs))
ot = list[qs];
else
{
ot = new OneTimeLink
{
Id = Guid.NewGuid(),
Querystring = qs
};
db.OneTimeLinks.InsertOnSubmit(ot);
db.SubmitChanges();
list.Add(qs, ot);
}
var url = db.ServerLink(
$"/OnlineReg/RsvpLinkSg/{ot.Id.ToCode()}?confirm={confirm}&message={HttpUtility.UrlEncode(msg)}");
var href = d["href"];
if (href.Contains("regretslink", ignoreCase: true))
url = url + "®rets=true";
return [email protected]"<a href=""{url}"">{inside}</a>";
}
示例10: RegisterLinkHref
private string RegisterLinkHref(string code, EmailQueueTo emailqueueto)
{
var list = new Dictionary<string, OneTimeLink>();
var match = RegisterHrefReId.Match(code);
if (!match.Success)
return code;
var id = match.Groups["id"].Value.ToInt();
var showfamily = code.Contains("registerlink2", ignoreCase: true);
string qs = $"{id},{emailqueueto.PeopleId},{emailqueueto.Id}";
OneTimeLink ot;
if (list.ContainsKey(qs))
ot = list[qs];
else
{
ot = new OneTimeLink
{
Id = Guid.NewGuid(),
Querystring = qs
};
db.OneTimeLinks.InsertOnSubmit(ot);
db.SubmitChanges();
list.Add(qs, ot);
}
string url = db.ServerLink($"/OnlineReg/RegisterLink/{ot.Id.ToCode()}");
if (showfamily)
url += "?showfamily=true";
return $"href=\"{url}\"";
}
示例11: RegisterTag
private string RegisterTag(string code, EmailQueueTo emailqueueto)
{
var doc = new HtmlDocument();
if (code.Contains("<"))
code = HttpUtility.HtmlDecode(code);
doc.LoadHtml(code);
var ele = doc.DocumentNode.FirstChild;
var inside = ele.InnerHtml.Replace("{last}", person.LastName);
var id = ele.Id.ToInt();
var url = RegisterLinkUrl(db, id, emailqueueto.PeopleId, emailqueueto.Id, "registerlink");
return [email protected]"<a href=""{url}"">{inside}</a>";
}
示例12: OrgMember
private string OrgMember(string code, EmailQueueTo emailqueueto)
{
var match = orgMemberRe.Match(code);
if (!match.Success)
return code;
var divid = match.Groups["divid"].Value.ToInt();
var type = match.Groups["type"].Value;
var org = (from om in db.OrganizationMembers
where om.PeopleId == emailqueueto.PeopleId
where om.Organization.DivOrgs.Any(dd => dd.DivId == divid)
select om.Organization).FirstOrDefault();
if (org == null)
return "?";
switch (type.ToLower())
{
case "location":
return org.Location;
case "pendinglocation":
case "pendingloc":
return org.PendingLoc;
case "orgname":
case "name":
return org.OrganizationName;
case "leader":
return org.LeaderName;
}
return code;
}
示例13: OrgExtra
private string OrgExtra(string code, EmailQueueTo emailqueueto)
{
var match = orgExtraRe.Match(code);
if (!match.Success || !emailqueueto.OrgId.HasValue)
return code;
var field = match.Groups["field"].Value;
var ev = db.OrganizationExtras.SingleOrDefault(ee => ee.Field == field && ee.OrganizationId == db.CurrentOrg.Id);
if (ev == null || !ev.Data.HasValue())
return null;
return ev.Data;
}
示例14: OrgBarcode
private string OrgBarcode(string code, EmailQueueTo emailqueueto)
{
var oid = code.StartsWith("{orgbarcode:")
? code.Substring(12).TrimEnd('}').ToInt()
: emailqueueto.OrgId;
return [email protected]"<img src='{db.ServerLink($"/Track/Barcode/{oid}-{emailqueueto.PeopleId}")}' width='95%' />";
}
示例15: DoAddSmallGroup
private string DoAddSmallGroup(string text, EmailQueueTo emailqueueto)
{
const string RE = @"\{addsmallgroup:\[(?<group>[^\]]*)\]\}";
var re = new Regex(RE, RegexOptions.Singleline);
Match match = re.Match(text);
if (match.Success && emailqueueto.OrgId.HasValue)
{
string tag = match.Value;
string group = match.Groups["group"].Value;
OrganizationMember om = (from mm in OrganizationMembers
where mm.OrganizationId == emailqueueto.OrgId
where mm.PeopleId == emailqueueto.PeopleId
select mm).SingleOrDefault();
if (om != null)
om.AddToGroup(this, group);
text = text.Replace(tag, "");
}
return text;
}