Cleaning up a bit of the legacy member class

Conflicts:
	src/umbraco.cms/businesslogic/member/Member.cs
This commit is contained in:
Shannon
2013-12-05 14:48:30 +11:00
parent e6d8a83519
commit 5f50bae65c
3 changed files with 114 additions and 246 deletions

View File

@@ -9,6 +9,13 @@ namespace Umbraco.Core.Services
/// </summary>
internal interface IMemberService : IMembershipMemberService
{
/// <summary>
/// Checks if a member with the id exists
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
bool Exists(int id);
IMember GetById(int id);
IMember GetByKey(Guid id);
IEnumerable<IMember> GetMembersByMemberType(string memberTypeAlias);

View File

@@ -35,6 +35,19 @@ namespace Umbraco.Core.Services
#region IMemberService Implementation
/// <summary>
/// Checks if a member with the id exists
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool Exists(int id)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
return repository.Exists(id);
}
}
/// <summary>
/// Gets a Member by its integer Id
/// </summary>
@@ -43,7 +56,7 @@ namespace Umbraco.Core.Services
public IMember GetById(int id)
{
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
{
{
return repository.Get(id);
}
}

View File

@@ -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<Member> GetAllAsList()
{
var tmp = new List<Member>();
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<Member>();
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<Member>();
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<object>(
var o = SqlHelper.ExecuteScalar<object>(
"select nodeID from cmsMember where LoginName = @loginName",
SqlHelper.CreateParameter("@loginName", loginName));
@@ -301,7 +300,7 @@ namespace umbraco.cms.businesslogic.member
if (string.IsNullOrEmpty(email))
return null;
object o = SqlHelper.ExecuteScalar<object>(
var o = SqlHelper.ExecuteScalar<object>(
"select nodeID from cmsMember where Email = @email",
SqlHelper.CreateParameter("@email", email.ToLower()));
@@ -328,7 +327,7 @@ namespace umbraco.cms.businesslogic.member
return null;
var tmp = new List<Member>();
using (IRecordsReader dr = SqlHelper.ExecuteReader(string.Format(m_SQLOptimizedMany.Trim(),
using (var dr = SqlHelper.ExecuteReader(string.Format(_sQLOptimizedMany.Trim(),
"Email = @email",
"umbracoNode.text"),
SqlHelper.CreateParameter("@nodeObjectType", Member._objectType),
@@ -336,7 +335,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);
}
@@ -378,7 +377,7 @@ namespace umbraco.cms.businesslogic.member
public static Member GetMemberFromLoginAndEncodedPassword(string loginName, string password)
{
object o = SqlHelper.ExecuteScalar<object>(
var o = SqlHelper.ExecuteScalar<object>(
"select nodeID from cmsMember where LoginName = @loginName and Password = @password",
SqlHelper.CreateParameter("loginName", loginName),
SqlHelper.CreateParameter("password", password));
@@ -411,16 +410,8 @@ namespace umbraco.cms.businesslogic.member
/// <returns>True if the member exists</returns>
public static bool IsMember(string loginName)
{
Debug.Assert(loginName != null, "loginName cannot be null");
object o = SqlHelper.ExecuteScalar<object>(
"select count(nodeID) as tmp from cmsMember where LoginName = @loginName",
SqlHelper.CreateParameter("@loginName", loginName));
if (o == null)
return false;
int count;
if (!int.TryParse(o.ToString(), out count))
return false;
return count > 0;
Mandate.ParameterNotNullOrEmpty(loginName, "loginName");
return ApplicationContext.Current.Services.MemberService.GetByUsername(loginName) != null;
}
/// <summary>
@@ -434,12 +425,12 @@ namespace umbraco.cms.businesslogic.member
public static void DeleteFromType(MemberType dt)
{
var objs = getContentOfContentType(dt);
foreach (Content c in objs)
foreach (var c in objs)
{
// due to recursive structure document might already been deleted..
if (IsNode(c.UniqueId))
{
Member tmp = new Member(c.UniqueId);
var tmp = new Member(c.UniqueId);
tmp.delete();
}
}
@@ -456,17 +447,17 @@ namespace umbraco.cms.businesslogic.member
{
get
{
if (string.IsNullOrEmpty(m_Text))
if (string.IsNullOrEmpty(_text))
{
m_Text = SqlHelper.ExecuteScalar<string>(
_text = SqlHelper.ExecuteScalar<string>(
"select text from umbracoNode where id = @id",
SqlHelper.CreateParameter("@id", Id));
}
return m_Text;
return _text;
}
set
{
m_Text = value;
_text = value;
base.Text = value;
}
}
@@ -478,13 +469,13 @@ namespace umbraco.cms.businesslogic.member
{
get
{
if (string.IsNullOrEmpty(m_Password))
if (string.IsNullOrEmpty(_password))
{
m_Password = SqlHelper.ExecuteScalar<string>(
_password = SqlHelper.ExecuteScalar<string>(
"select Password from cmsMember where nodeId = @id",
SqlHelper.CreateParameter("@id", Id));
}
return m_Password;
return _password;
}
set
@@ -492,7 +483,7 @@ namespace umbraco.cms.businesslogic.member
// We need to use the provider for this in order for hashing, etc. support
// To write directly to the db use the ChangePassword method
// this is not pretty but nessecary due to a design flaw (the membership provider should have been a part of the cms project)
MemberShipHelper helper = new MemberShipHelper();
var helper = new MemberShipHelper();
ChangePassword(helper.EncodePassword(value, Membership.Provider.PasswordFormat));
}
}
@@ -504,13 +495,13 @@ namespace umbraco.cms.businesslogic.member
{
get
{
if (string.IsNullOrEmpty(m_LoginName))
if (string.IsNullOrEmpty(_loginName))
{
m_LoginName = SqlHelper.ExecuteScalar<string>(
_loginName = SqlHelper.ExecuteScalar<string>(
"select LoginName from cmsMember where nodeId = @id",
SqlHelper.CreateParameter("@id", Id));
}
return m_LoginName;
return _loginName;
}
set
{
@@ -522,7 +513,7 @@ namespace umbraco.cms.businesslogic.member
"update cmsMember set LoginName = @loginName where nodeId = @id",
SqlHelper.CreateParameter("@loginName", value),
SqlHelper.CreateParameter("@id", Id));
m_LoginName = value;
_loginName = value;
}
}
@@ -533,9 +524,9 @@ namespace umbraco.cms.businesslogic.member
{
get
{
if (m_Groups == null)
if (_groups == null)
PopulateGroups();
return m_Groups;
return _groups;
}
}
@@ -546,14 +537,14 @@ namespace umbraco.cms.businesslogic.member
{
get
{
if (String.IsNullOrEmpty(m_Email))
if (String.IsNullOrEmpty(_email))
{
m_Email = SqlHelper.ExecuteScalar<string>(
_email = SqlHelper.ExecuteScalar<string>(
"select Email from cmsMember where nodeId = @id",
SqlHelper.CreateParameter("@id", Id));
}
return string.IsNullOrWhiteSpace(m_Email) ? m_Email : m_Email.ToLower();
return string.IsNullOrWhiteSpace(_email) ? _email : _email.ToLower();
}
set
{
@@ -578,7 +569,7 @@ namespace umbraco.cms.businesslogic.member
"update cmsMember set Email = @email where nodeId = @id",
SqlHelper.CreateParameter("@id", Id), SqlHelper.CreateParameter("@email", newEmail));
// Set the backing field to new value
m_Email = newEmail;
_email = newEmail;
}
}
#endregion
@@ -589,16 +580,16 @@ namespace umbraco.cms.businesslogic.member
{
base.setupNode();
using (IRecordsReader dr = SqlHelper.ExecuteReader(
using (var dr = SqlHelper.ExecuteReader(
@"SELECT Email, LoginName, Password FROM cmsMember WHERE nodeId=@nodeId",
SqlHelper.CreateParameter("@nodeId", this.Id)))
{
if (dr.Read())
{
if (!dr.IsNull("Email"))
m_Email = dr.GetString("Email");
m_LoginName = dr.GetString("LoginName");
m_Password = dr.GetString("Password");
_email = dr.GetString("Email");
_loginName = dr.GetString("LoginName");
_password = dr.GetString("Password");
}
else
{
@@ -612,7 +603,7 @@ namespace umbraco.cms.businesslogic.member
/// </summary>
public override void Save()
{
SaveEventArgs e = new SaveEventArgs();
var e = new SaveEventArgs();
FireBeforeSave(e);
if (!e.Cancel)
@@ -679,7 +670,7 @@ namespace umbraco.cms.businesslogic.member
}
// re-generate xml
XmlDocument xd = new XmlDocument();
var xd = new XmlDocument();
XmlGenerate(xd);
// generate preview for blame history?
@@ -701,7 +692,7 @@ namespace umbraco.cms.businesslogic.member
/// <returns>A the xmlrepresentation of the current member</returns>
public override XmlNode ToXml(XmlDocument xd, bool Deep)
{
XmlNode x = base.ToXml(xd, Deep);
var x = base.ToXml(xd, Deep);
if (x.Attributes["loginName"] == null)
{
x.Attributes.Append(xmlHelper.addAttribute(xd, "loginName", LoginName));
@@ -715,7 +706,7 @@ namespace umbraco.cms.businesslogic.member
/// </summary>
public override void delete()
{
DeleteEventArgs e = new DeleteEventArgs();
var e = new DeleteEventArgs();
FireBeforeDelete(e);
if (!e.Cancel)
@@ -745,7 +736,22 @@ namespace umbraco.cms.businesslogic.member
SqlHelper.CreateParameter("@id", Id));
//update this object's password
m_Password = newPassword;
_password = newPassword;
}
/// <summary>
/// Returns the currently stored password - this may be encrypted or hashed string depending on the active membership provider
/// </summary>
/// <returns></returns>
public string GetPassword()
{
if (string.IsNullOrEmpty(_password))
{
_password = SqlHelper.ExecuteScalar<string>(
"select Password from cmsMember where nodeId = @id",
SqlHelper.CreateParameter("@id", Id));
}
return _password;
}
/// <summary>
@@ -755,13 +761,13 @@ namespace umbraco.cms.businesslogic.member
[MethodImpl(MethodImplOptions.Synchronized)]
public void AddGroup(int GroupId)
{
AddGroupEventArgs e = new AddGroupEventArgs();
var e = new AddGroupEventArgs();
e.GroupId = GroupId;
FireBeforeAddGroup(e);
if (!e.Cancel)
{
IParameter[] parameters = new IParameter[] { SqlHelper.CreateParameter("@id", Id),
var parameters = new IParameter[] { SqlHelper.CreateParameter("@id", Id),
SqlHelper.CreateParameter("@groupId", GroupId) };
bool exists = SqlHelper.ExecuteScalar<int>("SELECT COUNT(member) FROM cmsMember2MemberGroup WHERE member = @id AND memberGroup = @groupId",
parameters) > 0;
@@ -780,7 +786,7 @@ namespace umbraco.cms.businesslogic.member
/// <param name="GroupId">The MemberGroup from which the Member is removed</param>
public void RemoveGroup(int GroupId)
{
RemoveGroupEventArgs e = new RemoveGroupEventArgs();
var e = new RemoveGroupEventArgs();
e.GroupId = GroupId;
FireBeforeRemoveGroup(e);
@@ -817,9 +823,9 @@ namespace umbraco.cms.businesslogic.member
dr.GetDateTime("createDate"), false);
if (!dr.IsNull("Email"))
m_Email = dr.GetString("Email");
m_LoginName = dr.GetString("LoginName");
m_Password = dr.GetString("Password");
_email = dr.GetString("Email");
_loginName = dr.GetString("LoginName");
_password = dr.GetString("Password");
}
@@ -838,7 +844,7 @@ namespace umbraco.cms.businesslogic.member
temp.Add(dr.GetInt("memberGroup"),
new MemberGroup(dr.GetInt("memberGroup")));
}
m_Groups = temp;
_groups = temp;
}
private static string GetCacheKey(int id)
@@ -846,55 +852,6 @@ namespace umbraco.cms.businesslogic.member
return string.Format("{0}{1}", CacheKeys.MemberBusinessLogicCacheKey, id);
}
// zb-00035 #29931 : helper class to handle member state
class MemberState
{
public int MemberId { get; set; }
public Guid MemberGuid { get; set; }
public string MemberLogin { get; set; }
public MemberState(int memberId, Guid memberGuid, string memberLogin)
{
MemberId = memberId;
MemberGuid = memberGuid;
MemberLogin = memberLogin;
}
}
// zb-00035 #29931 : helper methods to handle member state
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static void SetMemberState(Member member)
{
SetMemberState(member.Id, member.UniqueId, member.LoginName);
}
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static void SetMemberState(int memberId, Guid memberGuid, string memberLogin)
{
string value = string.Format("{0}+{1}+{2}", memberId, memberGuid, memberLogin);
// zb-00004 #29956 : refactor cookies names & handling
StateHelper.Cookies.Member.SetValue(value);
}
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static void SetMemberState(Member member, bool useSession, double cookieDays)
{
SetMemberState(member.Id, member.UniqueId, member.LoginName, useSession, cookieDays);
}
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static void SetMemberState(int memberId, Guid memberGuid, string memberLogin, bool useSession, double cookieDays)
{
string value = string.Format("{0}+{1}+{2}", memberId, memberGuid, memberLogin);
// zb-00004 #29956 : refactor cookies names & handling
if (useSession)
HttpContext.Current.Session[StateHelper.Cookies.Member.Key] = value;
else
StateHelper.Cookies.Member.SetValue(value, cookieDays);
}
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static void ClearMemberState()
{
@@ -903,87 +860,6 @@ namespace umbraco.cms.businesslogic.member
FormsAuthentication.SignOut();
}
[Obsolete("Only use .NET Membership APIs to handle state now", true)]
static MemberState GetMemberState()
{
// NH: Refactor to fix issue 30171, where auth using pure .NET Members doesn't clear old Umbraco cookie, thus this method gets the previous
// umbraco user instead of the new one
// zb-00004 #29956 : refactor cookies names & handling + bring session-related stuff here
string value = null;
if (StateHelper.Cookies.Member.HasValue)
{
value = StateHelper.Cookies.Member.GetValue();
if (!String.IsNullOrEmpty(value))
{
string validateMemberId = value.Substring(0, value.IndexOf("+"));
if (Membership.GetUser() == null || validateMemberId != Membership.GetUser().ProviderUserKey.ToString())
{
Member.RemoveMemberFromCache(int.Parse(validateMemberId));
value = String.Empty;
}
}
}
// compatibility with .NET Memberships
if (String.IsNullOrEmpty(value) && HttpContext.Current.User.Identity.IsAuthenticated)
{
int _currentMemberId = 0;
if (int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out _currentMemberId))
{
if (memberExists(_currentMemberId))
{
// current member is always in the cache, else add it!
Member m = GetMemberFromCache(_currentMemberId);
if (m == null)
{
m = new Member(_currentMemberId);
AddMemberToCache(m);
}
return new MemberState(m.Id, m.UniqueId, m.LoginName);
}
}
}
else
{
var context = HttpContext.Current;
if (context != null && context.Session != null && context.Session[StateHelper.Cookies.Member.Key] != null)
{
string v = context.Session[StateHelper.Cookies.Member.Key].ToString();
if (v != "0")
value = v;
}
}
if (value == null)
return null;
// #30350 - do not use Split as memberLogin could contain '+'
int pos1 = value.IndexOf('+');
if (pos1 < 0)
return null;
int pos2 = value.IndexOf('+', pos1 + 1);
if (pos2 < 0)
return null;
int memberId;
if (!Int32.TryParse(value.Substring(0, pos1), out memberId))
return null;
Guid memberGuid;
try
{
// Guid.TryParse is in .NET 4 only
// using try...catch for .NET 3.5 compatibility
memberGuid = new Guid(value.Substring(pos1 + 1, pos2 - pos1 - 1));
}
catch
{
return null;
}
MemberState ms = new MemberState(memberId, memberGuid, value.Substring(pos2 + 1));
return ms;
}
#endregion
#region MemberHandle functions
@@ -1003,7 +879,7 @@ namespace umbraco.cms.businesslogic.member
if (m != null)
{
AddToCacheEventArgs e = new AddToCacheEventArgs();
var e = new AddToCacheEventArgs();
m.FireBeforeAddToCache(e);
if (!e.Cancel)
@@ -1221,11 +1097,11 @@ namespace umbraco.cms.businesslogic.member
/// <summary>
/// Make a lookup in the database to verify if a member truely exists
/// </summary>
/// <param name="NodeId">The node id of the member</param>
/// <param name="nodeId">The node id of the member</param>
/// <returns>True is a record exists in db</returns>
private static bool memberExists(int NodeId)
private static bool MemberExists(int nodeId)
{
return SqlHelper.ExecuteScalar<int>("select count(nodeId) from cmsMember where nodeId = @nodeId", SqlHelper.CreateParameter("@nodeId", NodeId)) == 1;
return ApplicationContext.Current.Services.MemberService.Exists(nodeId);
}
@@ -1235,32 +1111,15 @@ namespace umbraco.cms.businesslogic.member
/// <returns>The current visitors members id, if the visitor is not logged in it returns 0</returns>
public static int CurrentMemberId()
{
int _currentMemberId = 0;
int currentMemberId = 0;
// For backwards compatibility between umbraco members and .net membership
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out _currentMemberId);
int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out currentMemberId);
}
// NH 4.7.1: We'll no longer use legacy Umbraco cookies to handle members
/*
else
{
// zb-00035 #29931 : cleanup member state management
MemberState ms = GetMemberState();
if (ms != null)
_currentMemberId = ms.MemberId;
}
if (_currentMemberId > 0 && !memberExists(_currentMemberId))
{
_currentMemberId = 0;
// zb-00035 #29931 : cleanup member state management
ClearMemberState();
}
*/
return _currentMemberId;
return currentMemberId;
}
/// <summary>
@@ -1273,28 +1132,17 @@ namespace umbraco.cms.businesslogic.member
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
// zb-00035 #29931 : cleanup member state management
/*MemberState ms = GetMemberState();
if (ms == null || ms.MemberId == 0)
return null;
// return member from cache
Member member = GetMemberFromCache(ms.MemberId);
if (member == null)
member = new Member(ms.MemberId);
*/
int _currentMemberId = 0;
if (int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out _currentMemberId))
int currentMemberId = 0;
if (int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out currentMemberId))
{
Member m = new Member(_currentMemberId);
var m = new Member(currentMemberId);
return m;
}
}
}
catch
catch (Exception ex)
{
LogHelper.Error<Member>("An error occurred in GetCurrentMember", ex);
}
return null;
}