From 8ff89c4f48b104b09766815aecf1a34647c0c90f Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 5 Sep 2017 16:41:06 +1000 Subject: [PATCH] U4-10385 Examine indexing performance bottleneck: IUserService.GetProfileById which is not cached --- src/Umbraco.Core/Models/Membership/User.cs | 2 +- src/Umbraco.Core/Services/UserService.cs | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Core/Models/Membership/User.cs b/src/Umbraco.Core/Models/Membership/User.cs index d1270ad050..e01b070d18 100644 --- a/src/Umbraco.Core/Models/Membership/User.cs +++ b/src/Umbraco.Core/Models/Membership/User.cs @@ -17,7 +17,7 @@ namespace Umbraco.Core.Models.Membership /// [Serializable] [DataContract(IsReference = true)] - public class User : Entity, IUser + public class User : Entity, IUser, IProfile { /// /// Constructor for creating a new/empty user diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index 8e34fbe5f1..5abe69e3b9 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -701,12 +701,11 @@ namespace Umbraco.Core.Services /// Id of the User to retrieve /// public IProfile GetProfileById(int id) - { - using (var uow = UowProvider.GetUnitOfWork(readOnly: true)) - { - var repository = RepositoryFactory.CreateUserRepository(uow); - return repository.GetProfile(id); - } + { + //This is called a TON. Go get the full user from cache which should already be IProfile + var fullUser = GetUserById(id); + var asProfile = fullUser as IProfile; + return asProfile ?? new UserProfile(fullUser.Id, fullUser.Name); } ///