From 4170713e29acf4040dd81bc3329036e8d41c5442 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 10 Oct 2013 14:51:01 +1100 Subject: [PATCH] More member service and provider updates Conflicts: src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs --- .../Interfaces/IMemberRepository.cs | 1 - .../Repositories/MemberRepository.cs | 22 ------------------- src/Umbraco.Core/Services/IMemberService.cs | 2 +- src/Umbraco.Core/Services/MemberService.cs | 17 +++++++++++--- .../Providers/MembersMembershipProvider.cs | 2 +- .../members/MembersMembershipProvider.cs | 2 +- 6 files changed, 17 insertions(+), 29 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs index c0df447dfa..55f3099640 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs @@ -12,6 +12,5 @@ namespace Umbraco.Core.Persistence.Repositories /// IEnumerable GetByMemberGroup(string groupName); - IEnumerable GetMembersByEmails(params string[] emails); } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs index bd3bba2ccd..caa92f94ef 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs @@ -404,28 +404,6 @@ namespace Umbraco.Core.Persistence.Repositories return BuildFromDtos(dtos); } - public IEnumerable GetMembersByEmails(params string[] emails) - { - var sql = GetBaseQuery(false); - if (emails.Any()) - { - var statement = string.Join(" OR ", - emails.Select(x => - string.Format( - "cmsMember.Email='{0}'", - //we have to escape the @ symbol for petapoco to work!! with 2 @@ symbols - Database.EscapeAtSymbols(x)))); - sql.Where(statement); - } - sql.OrderByDescending(x => x.VersionDate); - - var dtos = - Database.Fetch( - new PropertyDataRelator().Map, sql); - - return BuildFromDtos(dtos); - } - private IMember BuildFromDto(List dtos) { if (dtos == null || dtos.Any() == false) diff --git a/src/Umbraco.Core/Services/IMemberService.cs b/src/Umbraco.Core/Services/IMemberService.cs index 343f1b47b5..8894c419fc 100644 --- a/src/Umbraco.Core/Services/IMemberService.cs +++ b/src/Umbraco.Core/Services/IMemberService.cs @@ -36,6 +36,6 @@ namespace Umbraco.Core.Services void Save(IMember membershipUser); - IEnumerable GetMembersByEmails(params string[] emails); + IEnumerable FindMembersByEmail(string emailStringToMatch); } } \ No newline at end of file diff --git a/src/Umbraco.Core/Services/MemberService.cs b/src/Umbraco.Core/Services/MemberService.cs index 21cce31400..87eee84863 100644 --- a/src/Umbraco.Core/Services/MemberService.cs +++ b/src/Umbraco.Core/Services/MemberService.cs @@ -108,11 +108,22 @@ namespace Umbraco.Core.Services } } - public IEnumerable GetMembersByEmails(params string[] emails) + /// + /// Does a search for members that contain the specified string in their email address + /// + /// + /// + public IEnumerable FindMembersByEmail(string emailStringToMatch) { - using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork())) + var uow = _uowProvider.GetUnitOfWork(); + using (var repository = _repositoryFactory.CreateMemberRepository(uow)) { - return repository.GetMembersByEmails(emails); + var query = new Query(); + + + query.Where(member => member.Email.Contains(emailStringToMatch)); + + return repository.GetByQuery(query); } } diff --git a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs index 0cc4146f85..1f83d7a686 100644 --- a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs +++ b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs @@ -689,7 +689,7 @@ namespace Umbraco.Web.Security.Providers /// public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { - var byEmail = MemberService.GetMembersByEmails(emailToMatch).ToArray(); + var byEmail = MemberService.FindMembersByEmail(emailToMatch).ToArray(); totalRecords = byEmail.Length; var pagedResult = new PagedResult(totalRecords, pageIndex, pageSize); diff --git a/src/umbraco.providers/members/MembersMembershipProvider.cs b/src/umbraco.providers/members/MembersMembershipProvider.cs index 7c8fe8e63a..d1da270942 100644 --- a/src/umbraco.providers/members/MembersMembershipProvider.cs +++ b/src/umbraco.providers/members/MembersMembershipProvider.cs @@ -445,7 +445,7 @@ namespace umbraco.providers.members /// public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { - var byEmail = ApplicationContext.Current.Services.MemberService.GetMembersByEmails(emailToMatch).ToArray(); + var byEmail = ApplicationContext.Current.Services.MemberService.FindMembersByEmail(emailToMatch).ToArray(); totalRecords = byEmail.Length; var pagedResult = new PagedResult(totalRecords, pageIndex, pageSize);