当前位置: 首页>>代码示例>>C#>>正文


C# CMSDataContext.Contributions0方法代码示例

本文整理汇总了C#中CmsData.CMSDataContext.Contributions0方法的典型用法代码示例。如果您正苦于以下问题:C# CMSDataContext.Contributions0方法的具体用法?C# CMSDataContext.Contributions0怎么用?C# CMSDataContext.Contributions0使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CmsData.CMSDataContext的用法示例。


在下文中一共展示了CMSDataContext.Contributions0方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RecentContributionCount

 internal static Expression RecentContributionCount(
     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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 0 || cnt == 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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 0
                 group c by c.CreditGiverId into g
                 where g.Count() <= cnt
                 select g.Key ?? 0;
             break;
         case CompareType.Equal:
             if (cnt == 0) // This is a very special case, use different approach
             {
                 q = from pid in Db.Contributions0(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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 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, false, false, true)
                 where fund == 0 || c.FundId == fund
                 where c.Amount > 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;
 }
开发者ID:rossspoon,项目名称:bvcms,代码行数:76,代码来源:Expressions.cs


注:本文中的CmsData.CMSDataContext.Contributions0方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。