예제 #1
0
        protected static IQueryable<Member> MemberSort(IProviderMemberFilter filter, IQueryable<Member> query)
        {
            // Sort grid data.  Sord is sort order, Sidx is the index to sort on
            if (filter.Sord == "desc")
            {
                // Sort by date if we don't know what this was
                query = query.OrderByDescending(aMember => aMember.SystemCreateDate);
            }
            else if (filter.Sord == "asc")
            {
                // Sort by date if we don't know what this was
                query = query.OrderBy(aMember => aMember.SystemCreateDate);
            }

            return query;
        }
예제 #2
0
 public static List<ProviderMember> Load(IProviderMemberFilter filter)
 {
     int m = (filter.Page - 1);
     if (m < 0) m = 0;
     int skip = filter.Rows * m;
     IQueryable<Member> query = DbCtx.Instance.Members;
     query = MemberFilter(filter, query);
     query = MemberSort(filter, query);
     return query.Skip(skip)
                 .Take(filter.Rows)
                 .ToList()
                 .ConvertAll(_converterEntityToProvider);
 }
예제 #3
0
 protected static IQueryable<Member> MemberFilter(IProviderMemberFilter filter, IQueryable<Member> query)
 {
     int userNameType = (int)ProviderAlternateMemberId.AlternateType.UserName;
     int emailType = (int)ProviderAlternateMemberId.AlternateType.Email;
     int openIdType = (int)ProviderAlternateMemberId.AlternateType.OpenId;
     return query.Where(aMember => ((filter.Id == null || aMember.Id == filter.Id) &&
                                                  (filter.UserName == null || aMember.AlternateMemberIds
                                                                                            .Where(altId => altId.AlternateType == userNameType &&
                                                                                                             altId.AlternateId.Contains(filter.UserName))
                                                                                            .Count() > 0) &&
                                                  (filter.Email == null || aMember.AlternateMemberIds
                                                                                            .Where(altId => altId.AlternateType == emailType &&
                                                                                                             altId.AlternateId.Contains(filter.Email) &&
                                                                                                             (filter.IsValidEmail == null || altId.IsValidated == filter.IsValidEmail))
                                                                                            .Count() > 0) &&
                                                  (filter.HasPassword == null || (aMember.Password != null) == filter.HasPassword) &&
                                                  (filter.HasOpenId == null || (aMember.AlternateMemberIds
                                                                                             .Where(altId => altId.AlternateType == openIdType)
                                                                                             .Count() > 0) == filter.HasOpenId) &&
                                                  (filter.IsSuperAdmin == null || aMember.IsSuperAdmin == filter.IsSuperAdmin) &&
                                                  (filter.IsMasterAdmin == null || aMember.IsMasterAdmin == filter.IsMasterAdmin) &&
                                                  (filter.IsMemberAdmin == null || aMember.IsUserAdmin == filter.IsMemberAdmin) &&
                                                  (filter.IsCategoryAdmin == null || aMember.IsCategoryAdmin == filter.IsCategoryAdmin) &&
                                                  (filter.IsArticleAdmin == null || aMember.IsArticleAdmin == filter.IsArticleAdmin) &&
                                                  (filter.IsActive == null || ((aMember.AlternateMemberIds
                                                                                               .Where(altId => altId.AlternateType == openIdType)
                                                                                               .Count() > 0) ||
                                                                                       (aMember.Password != null && (aMember.AlternateMemberIds
                                                                                                                             .Where(altId => altId.IsValidated == true &&
                                                                                                                                              (altId.AlternateType == emailType ||
                                                                                                                                                altId.AlternateType == userNameType))
                                                                                                                             .Count() > 0))
                                                                                     ) == filter.IsActive) &&
                                                  (filter.IsBanned == null || aMember.IsBanned == filter.IsBanned) &&
                                                  (filter.IsSuperAdmin == null || aMember.IsSuperAdmin == filter.IsSuperAdmin))
                                     );
 }
예제 #4
0
 public static int Count(IProviderMemberFilter filter)
 {
     IQueryable<Member> query = DbCtx.Instance.Members;
     query = MemberFilter(filter, query);
     return query.Count();
 }