本文整理汇总了C#中CmsData.CMSDataContext.Pledges0方法的典型用法代码示例。如果您正苦于以下问题:C# CMSDataContext.Pledges0方法的具体用法?C# CMSDataContext.Pledges0怎么用?C# CMSDataContext.Pledges0使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CmsData.CMSDataContext
的用法示例。
在下文中一共展示了CMSDataContext.Pledges0方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RecentPledgeCount
internal static Expression RecentPledgeCount(
ParameterExpression parm, CMSDataContext Db,
int days,
int fund,
CompareType op,
int cnt)
{
if (Db.CurrentUser == null || Db.CurrentUser.Roles.All(rr => rr != "Finance"))
return AlwaysFalse(parm);
var now = DateTime.Now;
var dt = now.AddDays(-days);
IQueryable<int> q = null;
switch (op)
{
case CompareType.Greater:
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() > cnt
select g.Key ?? 0;
break;
case CompareType.GreaterEqual:
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() >= cnt
select g.Key ?? 0;
break;
case CompareType.Less:
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() < cnt
select g.Key ?? 0;
break;
case CompareType.LessEqual:
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() <= cnt
select g.Key ?? 0;
break;
case CompareType.Equal:
if (cnt == 0) // special case, use different approach
{
q = from pid in Db.Pledges0(dt, now, fund, 0)
select pid.PeopleId;
Expression<Func<Person, bool>> pred0 = p => q.Contains(p.PeopleId);
Expression expr0 = Expression.Invoke(pred0, parm);
return expr0;
}
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() == cnt
select g.Key ?? 0;
break;
case CompareType.NotEqual:
q = from c in Db.Contributions2(dt, now, 0, true, false, true)
where fund == 0 || c.FundId == fund
where c.PledgeAmount > 0
group c by c.CreditGiverId into g
where g.Count() != cnt
select g.Key ?? 0;
break;
}
var tag = Db.PopulateTemporaryTag(q);
Expression<Func<Person, bool>> pred = p => p.Tags.Any(t => t.Id == tag.Id);
Expression expr = Expression.Invoke(pred, parm);
return expr;
}