From 0c8cfbb7fa962dcd2938be5c37af773ea6b061a7 Mon Sep 17 00:00:00 2001 From: Stephan Date: Wed, 8 Jun 2016 10:31:21 +0200 Subject: [PATCH] Cleanup - sub-repositories --- .../Repositories/ContentRepository.cs | 22 +++++++++---------- .../Repositories/PermissionRepository.cs | 7 +----- .../Repositories/UserRepository.cs | 14 +++++++----- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index 565d726cb2..6d334fe426 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; -using System.Xml.Linq; using NPoco; using Umbraco.Core.Logging; using Umbraco.Core.Models; @@ -30,6 +29,7 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ITemplateRepository _templateRepository; private readonly ITagRepository _tagRepository; private readonly CacheHelper _cacheHelper; + private PermissionRepository _permissionRepository; public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, IContentSection contentSection, IMappingResolver mappingResolver) : base(work, cacheHelper, logger, contentSection, mappingResolver) @@ -56,6 +56,10 @@ namespace Umbraco.Core.Persistence.Repositories public bool EnsureUniqueNaming { get; set; } + // note: is ok to 'new' the repo here as it's a sub-repo really + private PermissionRepository PermissionRepository => _permissionRepository + ?? (_permissionRepository = new PermissionRepository(UnitOfWork, _cacheHelper)); + #region Overrides of RepositoryBase protected override IContent PerformGet(int id) @@ -305,10 +309,7 @@ namespace Umbraco.Core.Persistence.Repositories //Assign the same permissions to it as the parent node // http://issues.umbraco.org/issue/U4-2161 - // fixme STOP new-ing repos everywhere! - // var prepo = UnitOfWork.CreateRepository>(); - var permissionsRepo = new PermissionRepository(UnitOfWork, _cacheHelper); - var parentPermissions = permissionsRepo.GetPermissionsForEntity(entity.ParentId).ToArray(); + var parentPermissions = PermissionRepository.GetPermissionsForEntity(entity.ParentId).ToArray(); //if there are parent permissions then assign them, otherwise leave null and permissions will become the // user's default permissions. if (parentPermissions.Any()) @@ -318,7 +319,7 @@ namespace Umbraco.Core.Persistence.Repositories from p in perm.AssignedPermissions select new EntityPermissionSet.UserPermission(perm.UserId, p)).ToList(); - permissionsRepo.ReplaceEntityPermissions(new EntityPermissionSet(entity.Id, userPermissions)); + PermissionRepository.ReplaceEntityPermissions(new EntityPermissionSet(entity.Id, userPermissions)); //flag the entity's permissions changed flag so we can track those changes. //Currently only used for the cache refreshers to detect if we should refresh all user permissions cache. ((Content)entity).PermissionsChanged = true; @@ -630,8 +631,7 @@ namespace Umbraco.Core.Persistence.Repositories public void ReplaceContentPermissions(EntityPermissionSet permissionSet) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - repo.ReplaceEntityPermissions(permissionSet); + PermissionRepository.ReplaceEntityPermissions(permissionSet); } public void ClearPublishedFlag(IContent content) @@ -664,14 +664,12 @@ namespace Umbraco.Core.Persistence.Repositories /// public void AssignEntityPermission(IContent entity, char permission, IEnumerable userIds) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - repo.AssignEntityPermission(entity, permission, userIds); + PermissionRepository.AssignEntityPermission(entity, permission, userIds); } public IEnumerable GetPermissionsForEntity(int entityId) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - return repo.GetPermissionsForEntity(entityId); + return PermissionRepository.GetPermissionsForEntity(entityId); } /// diff --git a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs index 9ddc32f21c..49ee8664a7 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs @@ -1,27 +1,22 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Dynamic; using System.Globalization; using System.Linq; -using System.Runtime.InteropServices; using System.Text; using System.Web.Caching; -using NPoco; using Umbraco.Core.Events; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; -using Umbraco.Core.Services; using CacheKeys = Umbraco.Core.Cache.CacheKeys; using Umbraco.Core.Cache; namespace Umbraco.Core.Persistence.Repositories { /// - /// A repository that exposes functionality to modify assigned permissions to a node + /// A (sub) repository that exposes functionality to modify assigned permissions to a node /// /// internal class PermissionRepository diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs index 497efdc5b2..c966693b62 100644 --- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs @@ -26,6 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories { private readonly IUserTypeRepository _userTypeRepository; private readonly CacheHelper _cacheHelper; + private PermissionRepository _permissionRepository; public UserRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IUserTypeRepository userTypeRepository, IMappingResolver mappingResolver) : base(work, cacheHelper, logger, mappingResolver) @@ -34,6 +35,10 @@ namespace Umbraco.Core.Persistence.Repositories _cacheHelper = cacheHelper; } + // note: is ok to 'new' the repo here as it's a sub-repo really + private PermissionRepository PermissionRepository => _permissionRepository + ?? (_permissionRepository = new PermissionRepository(UnitOfWork, _cacheHelper)); + #region Overrides of RepositoryBase protected override IUser PerformGet(int id) @@ -378,8 +383,7 @@ namespace Umbraco.Core.Persistence.Repositories /// public IEnumerable GetUserPermissionsForEntities(int userId, params int[] entityIds) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - return repo.GetUserPermissionsForEntities(userId, entityIds); + return PermissionRepository.GetUserPermissionsForEntities(userId, entityIds); } /// @@ -390,8 +394,7 @@ namespace Umbraco.Core.Persistence.Repositories /// public void ReplaceUserPermissions(int userId, IEnumerable permissions, params int[] entityIds) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - repo.ReplaceUserPermissions(userId, permissions, entityIds); + PermissionRepository.ReplaceUserPermissions(userId, permissions, entityIds); } /// @@ -402,8 +405,7 @@ namespace Umbraco.Core.Persistence.Repositories /// public void AssignUserPermission(int userId, char permission, params int[] entityIds) { - var repo = new PermissionRepository(UnitOfWork, _cacheHelper); - repo.AssignUserPermission(userId, permission, entityIds); + PermissionRepository.AssignUserPermission(userId, permission, entityIds); } #endregion