Merge pull request #118 from darrenferguson/6.2.0

Adding new Memership provider implementation
This commit is contained in:
Morten Christensen
2013-09-04 06:14:40 -07:00
6 changed files with 883 additions and 63 deletions

View File

@@ -1,4 +1,6 @@
namespace Umbraco.Core.Services
using Umbraco.Core.Models.Membership;
namespace Umbraco.Core.Services
{
/// <summary>
/// Defines the MemberService, which is an easy access to operations involving (umbraco) members.
@@ -15,5 +17,17 @@
/// Idea is to have this is an isolated interface so that it can be easily 'replaced' in the membership provider impl.
/// </remarks>
internal interface IMembershipMemberService : IService
{}
{
IMembershipUser CreateMember(string username, string email, string password, string memberType, int userId = 0);
IMembershipUser GetByUsername(string login);
IMembershipUser GetByEmail(string email);
IMembershipUser GetById(object id);
void Delete(IMembershipUser membershipUser);
void Save(IMembershipUser membershipUser);
}
}

View File

@@ -1,5 +1,8 @@
using Umbraco.Core.Persistence;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.UnitOfWork;
using System.Linq;
namespace Umbraco.Core.Services
{
@@ -26,5 +29,70 @@ namespace Umbraco.Core.Services
_repositoryFactory = repositoryFactory;
_uowProvider = provider;
}
public IMembershipUser CreateMember(string username, string email, string password, string memberType, int userId = 0)
{
var uow = _uowProvider.GetUnitOfWork();
var member = new Member();
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
{
member.Username = username;
member.Email = email;
member.Password = password;
repository.AddOrUpdate(member);
uow.Commit();
}
return member;
}
public IMembershipUser GetByUsername(string userName)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
var query = Query<IMembershipUser>.Builder.Where(x => x.Username == userName);
var membershipUser = repository.GetByQuery(query).FirstOrDefault();
return membershipUser;
}
}
public IMembershipUser GetByEmail(string email)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
var query = Query<IMembershipUser>.Builder.Where(x => x.Email == email);
var membershipUser = repository.GetByQuery(query).FirstOrDefault();
return membershipUser;
}
}
public IMembershipUser GetById(object id)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
var query = Query<IMembershipUser>.Builder.Where(x => x.Id == id);
var membershipUser = repository.GetByQuery(query).FirstOrDefault();
return membershipUser;
}
}
public void Delete(IMembershipUser membershipUser)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
repository.Delete(membershipUser);
}
}
public void Save(IMembershipUser membershipUser)
{
throw new System.NotImplementedException();
}
}
}