diff --git a/src/Umbraco.Core/Models/IMemberGroup.cs b/src/Umbraco.Core/Models/IMemberGroup.cs
index 8454767ef3..f865a7d991 100644
--- a/src/Umbraco.Core/Models/IMemberGroup.cs
+++ b/src/Umbraco.Core/Models/IMemberGroup.cs
@@ -7,6 +7,14 @@ namespace Umbraco.Core.Models
///
public interface IMemberGroup : IAggregateRoot
{
+ ///
+ /// The name of the member group
+ ///
string Name { get; set; }
+
+ ///
+ /// Profile of the user who created this Entity
+ ///
+ int CreatorId { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/MemberGroup.cs b/src/Umbraco.Core/Models/MemberGroup.cs
index 8a8b7a72d7..caaeb1d860 100644
--- a/src/Umbraco.Core/Models/MemberGroup.cs
+++ b/src/Umbraco.Core/Models/MemberGroup.cs
@@ -13,8 +13,10 @@ namespace Umbraco.Core.Models
public class MemberGroup : Entity, IMemberGroup
{
private string _name;
+ private int _creatorId;
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo(x => x.Name);
+ private static readonly PropertyInfo CreatorIdSelector = ExpressionHelper.GetPropertyInfo(x => x.CreatorId);
[DataMember]
public string Name
@@ -29,5 +31,18 @@ namespace Umbraco.Core.Models
}, _name, NameSelector);
}
}
+
+ public int CreatorId
+ {
+ get { return _creatorId; }
+ set
+ {
+ SetPropertyValueAndDetectChanges(o =>
+ {
+ _creatorId = value;
+ return _creatorId;
+ }, _creatorId, CreatorIdSelector);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Factories/MemberGroupFactory.cs b/src/Umbraco.Core/Persistence/Factories/MemberGroupFactory.cs
index 2b87884c9a..207eea83b3 100644
--- a/src/Umbraco.Core/Persistence/Factories/MemberGroupFactory.cs
+++ b/src/Umbraco.Core/Persistence/Factories/MemberGroupFactory.cs
@@ -46,7 +46,7 @@ namespace Umbraco.Core.Persistence.Factories
Text = entity.Name,
Trashed = false,
UniqueId = entity.Key,
- UserId = 0
+ UserId = entity.CreatorId
};
if (entity.HasIdentity)
diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberGroupRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberGroupRepository.cs
new file mode 100644
index 0000000000..0f9464808e
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberGroupRepository.cs
@@ -0,0 +1,9 @@
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Persistence.Repositories
+{
+ public interface IMemberGroupRepository : IRepositoryQueryable
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
index 53c26c1321..267e0f2d00 100644
--- a/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
@@ -11,7 +11,9 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Persistence.Repositories
{
- internal class MemberGroupRepository : PetaPocoRepositoryBase
+
+
+ internal class MemberGroupRepository : PetaPocoRepositoryBase, IMemberGroupRepository
{
public MemberGroupRepository(IDatabaseUnitOfWork work) : base(work)
{
diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
index 4d67838ffd..0460f8e6fd 100644
--- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs
+++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
@@ -160,6 +160,11 @@ namespace Umbraco.Core.Persistence
return new MemberTypeRepository(uow, _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current);
}
+ internal virtual IMemberGroupRepository CreateMemberGroupRepository(IDatabaseUnitOfWork uow)
+ {
+ return new MemberGroupRepository(uow, _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current);
+ }
+
internal virtual IEntityRepository CreateEntityRepository(IDatabaseUnitOfWork uow)
{
return new EntityRepository(uow);
diff --git a/src/Umbraco.Core/Services/IMemberGroupService.cs b/src/Umbraco.Core/Services/IMemberGroupService.cs
new file mode 100644
index 0000000000..2b83d24651
--- /dev/null
+++ b/src/Umbraco.Core/Services/IMemberGroupService.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Services
+{
+ public interface IMemberGroupService : IService
+ {
+ IEnumerable GetAll(params int[] ids);
+ IMemberGroup Get(int id);
+ void Save(IMemberGroup memberGroup, int userId = 0);
+ void Delete(IMemberType memberType, int userId = 0);
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Services/IMemberService.cs b/src/Umbraco.Core/Services/IMemberService.cs
index 3634688f68..1c66640cd1 100644
--- a/src/Umbraco.Core/Services/IMemberService.cs
+++ b/src/Umbraco.Core/Services/IMemberService.cs
@@ -16,14 +16,7 @@ namespace Umbraco.Core.Services
///
///
bool Exists(int id);
-
- ///
- /// Get a member by its id
- ///
- ///
- ///
- IMember GetById(int id);
-
+
///
/// Get a member by the unique key
///
diff --git a/src/Umbraco.Core/Services/IMemberTypeService.cs b/src/Umbraco.Core/Services/IMemberTypeService.cs
index 7989becce1..dc0ee59b08 100644
--- a/src/Umbraco.Core/Services/IMemberTypeService.cs
+++ b/src/Umbraco.Core/Services/IMemberTypeService.cs
@@ -3,7 +3,7 @@ using Umbraco.Core.Models;
namespace Umbraco.Core.Services
{
- internal interface IMemberTypeService : IService
+ public interface IMemberTypeService : IService
{
///
/// Gets a list of all available objects
diff --git a/src/Umbraco.Core/Services/MemberTypeService.cs b/src/Umbraco.Core/Services/MemberTypeService.cs
index df323f8951..d2fbce96ef 100644
--- a/src/Umbraco.Core/Services/MemberTypeService.cs
+++ b/src/Umbraco.Core/Services/MemberTypeService.cs
@@ -11,7 +11,7 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- internal class MemberTypeService : ContentTypeServiceBase, IMemberTypeService
+ public class MemberTypeService : ContentTypeServiceBase, IMemberTypeService
{
private readonly IDatabaseUnitOfWorkProvider _uowProvider;
private readonly RepositoryFactory _repositoryFactory;
diff --git a/src/Umbraco.Core/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs
index c57081f51a..63f71bd5e2 100644
--- a/src/Umbraco.Core/Services/ServiceContext.cs
+++ b/src/Umbraco.Core/Services/ServiceContext.cs
@@ -251,7 +251,7 @@ namespace Umbraco.Core.Services
///
/// Gets the
///
- internal IUserService UserService
+ public IUserService UserService
{
get { return _userService.Value; }
}
@@ -259,7 +259,7 @@ namespace Umbraco.Core.Services
///
/// Gets the
///
- internal IMemberService MemberService
+ public IMemberService MemberService
{
get { return _memberService.Value; }
}
@@ -283,7 +283,7 @@ namespace Umbraco.Core.Services
///
/// Gets the MemberTypeService
///
- internal IMemberTypeService MemberTypeService
+ public IMemberTypeService MemberTypeService
{
get { return _memberTypeService.Value; }
}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index b9fe5da3bb..4b8d1f0085 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -210,6 +210,7 @@
+
@@ -772,6 +773,7 @@
+