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:
Shannon
2013-10-10 14:51:01 +11:00
parent a3bca42117
commit 4170713e29
6 changed files with 17 additions and 29 deletions

View File

@@ -12,6 +12,5 @@ namespace Umbraco.Core.Persistence.Repositories
/// <returns></returns>
IEnumerable<IMember> GetByMemberGroup(string groupName);
IEnumerable<IMember> GetMembersByEmails(params string[] emails);
}
}

View File

@@ -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)

View File

@@ -36,6 +36,6 @@ namespace Umbraco.Core.Services
void Save(IMember membershipUser);
IEnumerable<IMember> GetMembersByEmails(params string[] emails);
IEnumerable<IMember> FindMembersByEmail(string emailStringToMatch);
}
}

View File

@@ -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);
}
}