More member service and provider updates
Conflicts: src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
This commit is contained in:
@@ -12,6 +12,5 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <returns></returns>
|
||||
IEnumerable<IMember> GetByMemberGroup(string groupName);
|
||||
|
||||
IEnumerable<IMember> GetMembersByEmails(params string[] emails);
|
||||
}
|
||||
}
|
||||
@@ -404,28 +404,6 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
return BuildFromDtos(dtos);
|
||||
}
|
||||
|
||||
public IEnumerable<IMember> 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<ContentVersionDto>(x => x.VersionDate);
|
||||
|
||||
var dtos =
|
||||
Database.Fetch<MemberReadOnlyDto, PropertyDataReadOnlyDto, MemberReadOnlyDto>(
|
||||
new PropertyDataRelator().Map, sql);
|
||||
|
||||
return BuildFromDtos(dtos);
|
||||
}
|
||||
|
||||
private IMember BuildFromDto(List<MemberReadOnlyDto> dtos)
|
||||
{
|
||||
if (dtos == null || dtos.Any() == false)
|
||||
|
||||
@@ -36,6 +36,6 @@ namespace Umbraco.Core.Services
|
||||
|
||||
void Save(IMember membershipUser);
|
||||
|
||||
IEnumerable<IMember> GetMembersByEmails(params string[] emails);
|
||||
IEnumerable<IMember> FindMembersByEmail(string emailStringToMatch);
|
||||
}
|
||||
}
|
||||
@@ -108,11 +108,22 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IMember> GetMembersByEmails(params string[] emails)
|
||||
/// <summary>
|
||||
/// Does a search for members that contain the specified string in their email address
|
||||
/// </summary>
|
||||
/// <param name="emailStringToMatch"></param>
|
||||
/// <returns></returns>
|
||||
public IEnumerable<IMember> 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<IMember>();
|
||||
|
||||
|
||||
query.Where(member => member.Email.Contains(emailStringToMatch));
|
||||
|
||||
return repository.GetByQuery(query);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user