本文整理汇总了C#中CmsData.CMSDataContext.EmailFinanceInformation方法的典型用法代码示例。如果您正苦于以下问题:C# CMSDataContext.EmailFinanceInformation方法的具体用法?C# CMSDataContext.EmailFinanceInformation怎么用?C# CMSDataContext.EmailFinanceInformation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CmsData.CMSDataContext
的用法示例。
在下文中一共展示了CMSDataContext.EmailFinanceInformation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoGiving
public int DoGiving(CMSDataContext db)
{
var total = (from a in db.RecurringAmounts
where a.PeopleId == PeopleId
where a.ContributionFund.FundStatusId == 1
where a.ContributionFund.OnlineSort != null
select a.Amt).Sum();
if (!total.HasValue || total == 0)
return 0;
var paymentInfo = db.PaymentInfos.Single(x => x.PeopleId == PeopleId);
var preferredType = paymentInfo.PreferredGivingType;
var gw = GetGateway(db, paymentInfo);
var orgid = (from o in db.Organizations
where o.RegistrationTypeId == RegistrationTypeCode.ManageGiving
select o.OrganizationId).FirstOrDefault();
var t = new Transaction
{
TransactionDate = DateTime.Now,
TransactionId = "started",
First = Person.FirstName,
MiddleInitial = Person.MiddleName.Truncate(1) ?? "",
Last = Person.LastName,
Suffix = Person.SuffixCode,
Amt = total,
Description = "Recurring Giving",
Testing = false,
TransactionGateway = gw.GatewayType,
Financeonly = true,
PaymentType = preferredType,
LastFourCC = preferredType == PaymentType.CreditCard ? paymentInfo.MaskedCard.Last(4) : null,
LastFourACH = preferredType == PaymentType.Ach ? paymentInfo.MaskedAccount.Last(4) : null,
OrgId = orgid,
};
db.Transactions.InsertOnSubmit(t);
db.SubmitChanges();
var ret = gw.PayWithVault(PeopleId, total ?? 0, "Recurring Giving", t.Id, preferredType);
t.Message = ret.Message;
t.AuthCode = ret.AuthCode;
t.Approved = ret.Approved;
t.TransactionId = ret.TransactionId;
var gift = db.Setting("NameForPayment", "gift");
var church = db.Setting("NameOfChurch", db.CmsHost);
var q = from a in db.RecurringAmounts
where a.PeopleId == PeopleId
select a;
var tot = q.Where(aa => aa.ContributionFund.FundStatusId == 1).Sum(aa => aa.Amt);
t.TransactionPeople.Add(new TransactionPerson
{
PeopleId = Person.PeopleId,
Amt = tot,
});
var notify = db.RecurringGivingNotifyPersons();
var from = Util.TryGetMailAddress(notify[0].EmailAddress);
if (ret.Approved)
{
foreach (var a in q)
{
if (a.ContributionFund.FundStatusId == 1 && a.ContributionFund.OnlineSort != null && a.Amt > 0)
Person.PostUnattendedContribution(db, a.Amt ?? 0, a.FundId, "Recurring Giving", tranid: t.Id);
}
NextDate = FindNextDate(Util.Now.Date.AddDays(1));
db.SubmitChanges();
if (tot > 0)
{
var msg = db.Content("RecurringGiftNotice") ?? new Content
{ Title = $"Recurring {gift} for {{church}}",
Body = "Your gift of {total} was processed this morning." };
var subject = msg.Title.Replace("{church}", church);
var body = msg.Body.Replace("{total}", $"${tot:N2}");
var m = new EmailReplacements(db, body, from);
body = m.DoReplacements(db, Person);
db.EmailFinanceInformation(from, Person, null, subject, body);
}
}
else
{
db.SubmitChanges();
var msg = db.Content("RecurringGiftFailedNotice") ?? new Content
{ Title = $"Recurring {gift} for {{church}} did not succeed",
Body = @"Your payment of {total} failed to process this morning.<br>
The message was '{message}'.
Please contact the Finance office at the church." };
var subject = msg.Title.Replace("{church}", church);
var body = msg.Body.Replace("{total}", $"${tot:N2}")
.Replace("{message}", ret.Message);
var m = new EmailReplacements(db, body, from);
body = m.DoReplacements(db, Person);
db.Email(from, Person, null, subject, body, false);
foreach (var p in db.RecurringGivingNotifyPersons())
//.........这里部分代码省略.........