diff --git a/src/Umbraco.Core/Services/IMemberService.cs b/src/Umbraco.Core/Services/IMemberService.cs
index 8894c419fc..cc8e665eb0 100644
--- a/src/Umbraco.Core/Services/IMemberService.cs
+++ b/src/Umbraco.Core/Services/IMemberService.cs
@@ -9,6 +9,13 @@ namespace Umbraco.Core.Services
///
internal interface IMemberService : IMembershipMemberService
{
+ ///
+ /// Checks if a member with the id exists
+ ///
+ ///
+ ///
+ bool Exists(int id);
+
IMember GetById(int id);
IMember GetByKey(Guid id);
IEnumerable GetMembersByMemberType(string memberTypeAlias);
diff --git a/src/Umbraco.Core/Services/MemberService.cs b/src/Umbraco.Core/Services/MemberService.cs
index 87eee84863..5c9f77a3fd 100644
--- a/src/Umbraco.Core/Services/MemberService.cs
+++ b/src/Umbraco.Core/Services/MemberService.cs
@@ -35,6 +35,19 @@ namespace Umbraco.Core.Services
#region IMemberService Implementation
+ ///
+ /// Checks if a member with the id exists
+ ///
+ ///
+ ///
+ public bool Exists(int id)
+ {
+ using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ {
+ return repository.Exists(id);
+ }
+ }
+
///
/// Gets a Member by its integer Id
///
@@ -43,7 +56,7 @@ namespace Umbraco.Core.Services
public IMember GetById(int id)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
- {
+ {
return repository.Get(id);
}
}
diff --git a/src/umbraco.cms/businesslogic/member/Member.cs b/src/umbraco.cms/businesslogic/member/Member.cs
index 3a2389d35b..73ec6ce170 100644
--- a/src/umbraco.cms/businesslogic/member/Member.cs
+++ b/src/umbraco.cms/businesslogic/member/Member.cs
@@ -8,6 +8,7 @@ using System.Web;
using System.Xml;
using Umbraco.Core;
using Umbraco.Core.Cache;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models.Rdbms;
using umbraco.cms.businesslogic.cache;
using umbraco.BusinessLogic;
@@ -34,11 +35,9 @@ namespace umbraco.cms.businesslogic.member
public static readonly string UmbracoRoleProviderName = Constants.Conventions.Member.UmbracoRoleProviderName;
public static readonly Guid _objectType = new Guid(Constants.ObjectTypes.Member);
- private static readonly object m_Locker = new object();
-
// zb-00004 #29956 : refactor cookies names & handling
- private const string m_SQLOptimizedMany = @"
+ private const string _sQLOptimizedMany = @"
select
umbracoNode.id, umbracoNode.uniqueId, umbracoNode.level,
umbracoNode.parentId, umbracoNode.path, umbracoNode.sortOrder, umbracoNode.createDate,
@@ -53,11 +52,11 @@ namespace umbraco.cms.businesslogic.member
#endregion
#region Private members
- private string m_Text;
- private string m_Email;
- private string m_Password;
- private string m_LoginName;
- private Hashtable m_Groups = null;
+ private string _text;
+ private string _email;
+ private string _password;
+ private string _loginName;
+ private Hashtable _groups = null;
#endregion
#region Constructors
@@ -103,13 +102,13 @@ namespace umbraco.cms.businesslogic.member
public static IEnumerable GetAllAsList()
{
var tmp = new List();
- using (IRecordsReader dr = SqlHelper.ExecuteReader(
- string.Format(m_SQLOptimizedMany.Trim(), "1=1", "umbracoNode.text"),
+ using (var dr = SqlHelper.ExecuteReader(
+ string.Format(_sQLOptimizedMany.Trim(), "1=1", "umbracoNode.text"),
SqlHelper.CreateParameter("@nodeObjectType", Member._objectType)))
{
while (dr.Read())
{
- Member m = new Member(dr.GetInt("id"), true);
+ var m = new Member(dr.GetInt("id"), true);
m.PopulateMemberFromReader(dr);
tmp.Add(m);
}
@@ -126,13 +125,13 @@ namespace umbraco.cms.businesslogic.member
{
var tmp = new List();
- using (IRecordsReader dr = SqlHelper.ExecuteReader(
- string.Format(m_SQLOptimizedMany.Trim(), "LOWER(SUBSTRING(text, 1, 1)) NOT IN ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')", "umbracoNode.text"),
+ using (var dr = SqlHelper.ExecuteReader(
+ string.Format(_sQLOptimizedMany.Trim(), "LOWER(SUBSTRING(text, 1, 1)) NOT IN ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')", "umbracoNode.text"),
SqlHelper.CreateParameter("@nodeObjectType", Member._objectType)))
{
while (dr.Read())
{
- Member m = new Member(dr.GetInt("id"), true);
+ var m = new Member(dr.GetInt("id"), true);
m.PopulateMemberFromReader(dr);
tmp.Add(m);
}
@@ -156,8 +155,8 @@ namespace umbraco.cms.businesslogic.member
string field = matchByNameInsteadOfLogin ? "umbracoNode.text" : "cmsMember.loginName";
var tmp = new List();
- using (IRecordsReader dr = SqlHelper.ExecuteReader(
- string.Format(m_SQLOptimizedMany.Trim(),
+ using (var dr = SqlHelper.ExecuteReader(
+ string.Format(_sQLOptimizedMany.Trim(),
string.Format("{0} like @letter", field),
"umbracoNode.text"),
SqlHelper.CreateParameter("@nodeObjectType", Member._objectType),
@@ -165,7 +164,7 @@ namespace umbraco.cms.businesslogic.member
{
while (dr.Read())
{
- Member m = new Member(dr.GetInt("id"), true);
+ var m = new Member(dr.GetInt("id"), true);
m.PopulateMemberFromReader(dr);
tmp.Add(m);
}
@@ -219,20 +218,20 @@ namespace umbraco.cms.businesslogic.member
throw new ArgumentException("The loginname must be different from an empty string", "loginName");
// Test for e-mail
- if (Email != "" && Member.GetMemberFromEmail(Email) != null && Membership.Providers[UmbracoMemberProviderName].RequiresUniqueEmail)
+ if (Email != "" && GetMemberFromEmail(Email) != null && Membership.Providers[UmbracoMemberProviderName].RequiresUniqueEmail)
throw new Exception(String.Format("Duplicate Email! A member with the e-mail {0} already exists", Email));
- else if (Member.GetMemberFromLoginName(loginName) != null)
+ else if (GetMemberFromLoginName(loginName) != null)
throw new Exception(String.Format("Duplicate User name! A member with the user name {0} already exists", loginName));
// Lowercased to prevent duplicates
Email = Email.ToLower();
- Guid newId = Guid.NewGuid();
+ var newId = Guid.NewGuid();
//create the cms node first
- CMSNode newNode = MakeNew(-1, _objectType, u.Id, 1, Name, newId);
+ var newNode = MakeNew(-1, _objectType, u.Id, 1, Name, newId);
//we need to create an empty member and set the underlying text property
- Member tmp = new Member(newId, true);
+ var tmp = new Member(newId, true);
tmp.SetText(Name);
//create the content data for the new member
@@ -246,9 +245,9 @@ namespace umbraco.cms.businesslogic.member
SqlHelper.CreateParameter("@email", Email));
//read the whole object from the db
- Member m = new Member(newId);
+ var m = new Member(newId);
- NewEventArgs e = new NewEventArgs();
+ var e = new NewEventArgs();
m.OnNew(e);
@@ -270,7 +269,7 @@ namespace umbraco.cms.businesslogic.member
throw new ArgumentException("The username of a Member must be different from an emptry string", "loginName");
if (IsMember(loginName))
{
- object o = SqlHelper.ExecuteScalar