Updated the member service/repo to have paged queries and results which use db paging for maximum efficiency (of course only works for things like email, username but those are 2 specific things that are needed by the membership provider)
This commit is contained in:
@@ -203,12 +203,13 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = MemberService.FindMembersByEmail(emailToMatch, StringPropertyMatchType.Wildcard).ToArray();
|
||||
totalRecords = byEmail.Length;
|
||||
var pagedResult = new PagedResult<IMember>(totalRecords, pageIndex, pageSize);
|
||||
var byEmail = MemberService.FindMembersByEmail(emailToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
//totalRecords = byEmail.Length;
|
||||
//var pagedResult = new PagedResult<IMember>(totalRecords, pageIndex, pageSize);
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail.Skip(pagedResult.SkipSize).Take(pageSize))
|
||||
//foreach (var m in byEmail.Skip(pagedResult.SkipSize).Take(pageSize))
|
||||
foreach (var m in byEmail)
|
||||
{
|
||||
collection.Add(m.AsConcreteMembershipUser());
|
||||
}
|
||||
@@ -227,12 +228,13 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = MemberService.FindMembersByUsername(usernameToMatch, StringPropertyMatchType.Wildcard).ToArray();
|
||||
totalRecords = byEmail.Length;
|
||||
var pagedResult = new PagedResult<IMember>(totalRecords, pageIndex, pageSize);
|
||||
var byEmail = MemberService.FindMembersByUsername(usernameToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
//totalRecords = byEmail.Length;
|
||||
//var pagedResult = new PagedResult<IMember>(totalRecords, pageIndex, pageSize);
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail.Skip(pagedResult.SkipSize).Take(pageSize))
|
||||
//foreach (var m in byEmail.Skip(pagedResult.SkipSize).Take(pageSize))
|
||||
foreach (var m in byEmail)
|
||||
{
|
||||
collection.Add(m.AsConcreteMembershipUser());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user