diff --git a/src/Umbraco.Core/Cache/ObjectCacheAppCache.cs b/src/Umbraco.Core/Cache/ObjectCacheAppCache.cs
index 9c5917a53c..954622fc4b 100644
--- a/src/Umbraco.Core/Cache/ObjectCacheAppCache.cs
+++ b/src/Umbraco.Core/Cache/ObjectCacheAppCache.cs
@@ -31,7 +31,7 @@ namespace Umbraco.Core.Cache
///
/// Gets the internal memory cache, for tests only!
///
- internal readonly ObjectCache MemoryCache;
+ internal ObjectCache MemoryCache { get; private set; }
///
public object Get(string key)
diff --git a/src/Umbraco.Core/Composing/Composers/ServicesComposer.cs b/src/Umbraco.Core/Composing/Composers/ServicesComposer.cs
index 9ed4a7265c..2af7c5a011 100644
--- a/src/Umbraco.Core/Composing/Composers/ServicesComposer.cs
+++ b/src/Umbraco.Core/Composing/Composers/ServicesComposer.cs
@@ -116,7 +116,7 @@ namespace Umbraco.Core.Composing.Composers
return new LocalizedTextServiceFileSources(
container.GetInstance(),
- container.GetInstance().RuntimeCache,
+ container.GetInstance(),
mainLangFolder,
pluginLangFolders.Concat(userLangFolders));
}
diff --git a/src/Umbraco.Core/Composing/CompositionExtensions.cs b/src/Umbraco.Core/Composing/CompositionExtensions.cs
index 910062688c..c312259b82 100644
--- a/src/Umbraco.Core/Composing/CompositionExtensions.cs
+++ b/src/Umbraco.Core/Composing/CompositionExtensions.cs
@@ -28,7 +28,6 @@ namespace Umbraco.Core.Composing
composition.RegisterUnique(profilingLogger);
composition.RegisterUnique(mainDom);
composition.RegisterUnique(appCaches);
- composition.RegisterUnique(factory => factory.GetInstance().RuntimeCache);
composition.RegisterUnique(databaseFactory);
composition.RegisterUnique(factory => factory.GetInstance().SqlContext);
composition.RegisterUnique(typeLoader);
diff --git a/src/Umbraco.Core/ConfigsExtensions.cs b/src/Umbraco.Core/ConfigsExtensions.cs
index 9b2abda53c..0fcea5f430 100644
--- a/src/Umbraco.Core/ConfigsExtensions.cs
+++ b/src/Umbraco.Core/ConfigsExtensions.cs
@@ -46,7 +46,7 @@ namespace Umbraco.Core
configs.Add(() => new CoreDebug());
// GridConfig depends on runtime caches, manifest parsers... and cannot be available during composition
- configs.Add(factory => new GridConfig(factory.GetInstance(), factory.GetInstance(), configDir, factory.GetInstance().Debug));
+ configs.Add(factory => new GridConfig(factory.GetInstance(), factory.GetInstance(), configDir, factory.GetInstance().Debug));
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Umbraco.Core/Configuration/Grid/GridConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridConfig.cs
index 979eccb839..b2dae09fc9 100644
--- a/src/Umbraco.Core/Configuration/Grid/GridConfig.cs
+++ b/src/Umbraco.Core/Configuration/Grid/GridConfig.cs
@@ -6,9 +6,9 @@ namespace Umbraco.Core.Configuration.Grid
{
class GridConfig : IGridConfig
{
- public GridConfig(ILogger logger, IAppPolicedCache runtimeCache, DirectoryInfo configFolder, bool isDebug)
+ public GridConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, bool isDebug)
{
- EditorsConfig = new GridEditorsConfig(logger, runtimeCache, configFolder, isDebug);
+ EditorsConfig = new GridEditorsConfig(logger, appCaches, configFolder, isDebug);
}
public IGridEditorsConfig EditorsConfig { get; }
diff --git a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs
index 121b74194c..e2f99a753b 100644
--- a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs
+++ b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs
@@ -13,14 +13,14 @@ namespace Umbraco.Core.Configuration.Grid
internal class GridEditorsConfig : IGridEditorsConfig
{
private readonly ILogger _logger;
- private readonly IAppPolicedCache _runtimeCache;
+ private readonly AppCaches _appCaches;
private readonly DirectoryInfo _configFolder;
private readonly bool _isDebug;
- public GridEditorsConfig(ILogger logger, IAppPolicedCache runtimeCache, DirectoryInfo configFolder, bool isDebug)
+ public GridEditorsConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, bool isDebug)
{
_logger = logger;
- _runtimeCache = runtimeCache;
+ _appCaches = appCaches;
_configFolder = configFolder;
_isDebug = isDebug;
}
@@ -32,7 +32,7 @@ namespace Umbraco.Core.Configuration.Grid
List GetResult()
{
// fixme - should use the common one somehow! + ignoring _appPlugins here!
- var parser = new ManifestParser(_runtimeCache, Current.ManifestValidators, _logger);
+ var parser = new ManifestParser(_appCaches, Current.ManifestValidators, _logger);
var editors = new List();
var gridConfig = Path.Combine(_configFolder.FullName, "grid.editors.config.js");
@@ -62,7 +62,7 @@ namespace Umbraco.Core.Configuration.Grid
//cache the result if debugging is disabled
var result = _isDebug
? GetResult()
- : _runtimeCache.GetCacheItem>(typeof(GridEditorsConfig) + ".Editors",GetResult, TimeSpan.FromMinutes(10));
+ : _appCaches.RuntimeCache.GetCacheItem>(typeof(GridEditorsConfig) + ".Editors",GetResult, TimeSpan.FromMinutes(10));
return result;
}
diff --git a/src/Umbraco.Core/Manifest/ManifestParser.cs b/src/Umbraco.Core/Manifest/ManifestParser.cs
index fd344674af..40e99bb079 100644
--- a/src/Umbraco.Core/Manifest/ManifestParser.cs
+++ b/src/Umbraco.Core/Manifest/ManifestParser.cs
@@ -29,16 +29,17 @@ namespace Umbraco.Core.Manifest
///
/// Initializes a new instance of the class.
///
- public ManifestParser(IAppPolicedCache cache, ManifestValueValidatorCollection validators, ILogger logger)
- : this(cache, validators, "~/App_Plugins", logger)
+ public ManifestParser(AppCaches appCaches, ManifestValueValidatorCollection validators, ILogger logger)
+ : this(appCaches, validators, "~/App_Plugins", logger)
{ }
///
/// Initializes a new instance of the class.
///
- private ManifestParser(IAppPolicedCache cache, ManifestValueValidatorCollection validators, string path, ILogger logger)
+ private ManifestParser(AppCaches appCaches, ManifestValueValidatorCollection validators, string path, ILogger logger)
{
- _cache = cache ?? throw new ArgumentNullException(nameof(cache));
+ if (appCaches == null) throw new ArgumentNullException(nameof(appCaches));
+ _cache = appCaches.RuntimeCache;
_validators = validators ?? throw new ArgumentNullException(nameof(validators));
if (string.IsNullOrWhiteSpace(path)) throw new ArgumentNullOrEmptyException(nameof(path));
Path = path;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs
index 9b191d830c..be1e28fcc1 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs
@@ -224,13 +224,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
public IDictionaryItem Get(Guid uniqueId)
{
- var uniqueIdRepo = new DictionaryByUniqueIdRepository(this, ScopeAccessor, GlobalCache, Logger);
+ var uniqueIdRepo = new DictionaryByUniqueIdRepository(this, ScopeAccessor, AppCaches, Logger);
return uniqueIdRepo.Get(uniqueId);
}
public IDictionaryItem Get(string key)
{
- var keyRepo = new DictionaryByKeyRepository(this, ScopeAccessor, GlobalCache, Logger);
+ var keyRepo = new DictionaryByKeyRepository(this, ScopeAccessor, AppCaches, Logger);
return keyRepo.Get(key);
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
index f106949c77..6862173786 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
@@ -19,18 +19,18 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
{
private IRepositoryCachePolicy _cachePolicy;
- protected RepositoryBase(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger)
+ protected RepositoryBase(IScopeAccessor scopeAccessor, AppCaches appCaches, ILogger logger)
{
ScopeAccessor = scopeAccessor ?? throw new ArgumentNullException(nameof(scopeAccessor));
Logger = logger ?? throw new ArgumentNullException(nameof(logger));
- GlobalCache = cache ?? throw new ArgumentNullException(nameof(cache));
+ AppCaches = appCaches ?? throw new ArgumentNullException(nameof(appCaches));
}
protected ILogger Logger { get; }
- protected AppCaches GlobalCache { get; }
+ protected AppCaches AppCaches { get; }
- protected IAppPolicedCache GlobalIsolatedCache => GlobalCache.IsolatedCaches.GetOrCreate();
+ protected IAppPolicedCache GlobalIsolatedCache => AppCaches.IsolatedCaches.GetOrCreate();
protected IScopeAccessor ScopeAccessor { get; }
@@ -67,7 +67,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
switch (AmbientScope.RepositoryCacheMode)
{
case RepositoryCacheMode.Default:
- return GlobalCache.IsolatedCaches.GetOrCreate();
+ return AppCaches.IsolatedCaches.GetOrCreate();
case RepositoryCacheMode.Scoped:
return AmbientScope.IsolatedCaches.GetOrCreate();
case RepositoryCacheMode.None:
@@ -127,7 +127,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
{
get
{
- if (GlobalCache == AppCaches.NoCache)
+ if (AppCaches == AppCaches.NoCache)
return NoCacheRepositoryCachePolicy.Instance;
// create the cache policy using IsolatedCache which is either global
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
index ead7c066be..298e503736 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
@@ -28,7 +28,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
// and this is because the repository is special and should not participate in scopes
// (cleanup in v8)
//
- return new FullDataSetRepositoryCachePolicy(GlobalCache.RuntimeCache, ScopeAccessor, GetEntityId, /*expires:*/ false);
+ return new FullDataSetRepositoryCachePolicy(AppCaches.RuntimeCache, ScopeAccessor, GetEntityId, /*expires:*/ false);
}
public void ClearCache()
diff --git a/src/Umbraco.Core/Runtime/CoreRuntime.cs b/src/Umbraco.Core/Runtime/CoreRuntime.cs
index e37b5e254e..6bfe9cdb55 100644
--- a/src/Umbraco.Core/Runtime/CoreRuntime.cs
+++ b/src/Umbraco.Core/Runtime/CoreRuntime.cs
@@ -102,7 +102,6 @@ namespace Umbraco.Core.Runtime
// application caches
var appCaches = GetAppCaches();
- var runtimeCache = appCaches.RuntimeCache;
// database factory
var databaseFactory = GetDatabaseFactory();
@@ -112,7 +111,7 @@ namespace Umbraco.Core.Runtime
// type loader
var localTempStorage = configs.Global().LocalTempStorageLocation;
- var typeLoader = new TypeLoader(runtimeCache, localTempStorage, ProfilingLogger);
+ var typeLoader = new TypeLoader(appCaches.RuntimeCache, localTempStorage, ProfilingLogger);
// runtime state
// beware! must use '() => _factory.GetInstance()' and NOT '_factory.GetInstance'
diff --git a/src/Umbraco.Core/Services/Implement/LocalizedTextServiceFileSources.cs b/src/Umbraco.Core/Services/Implement/LocalizedTextServiceFileSources.cs
index 5577508adb..8c2d277348 100644
--- a/src/Umbraco.Core/Services/Implement/LocalizedTextServiceFileSources.cs
+++ b/src/Umbraco.Core/Services/Implement/LocalizedTextServiceFileSources.cs
@@ -37,16 +37,16 @@ namespace Umbraco.Core.Services.Implement
///
public LocalizedTextServiceFileSources(
ILogger logger,
- IAppPolicedCache cache,
+ AppCaches appCaches,
DirectoryInfo fileSourceFolder,
IEnumerable supplementFileSources)
{
if (logger == null) throw new ArgumentNullException("logger");
- if (cache == null) throw new ArgumentNullException("cache");
+ if (appCaches == null) throw new ArgumentNullException("cache");
if (fileSourceFolder == null) throw new ArgumentNullException("fileSourceFolder");
_logger = logger;
- _cache = cache;
+ _cache = appCaches.RuntimeCache;
//Create the lazy source for the _xmlSources
_xmlSources = new Lazy>>(() =>
@@ -137,14 +137,9 @@ namespace Umbraco.Core.Services.Implement
///
/// Constructor
///
- ///
- ///
- ///
- public LocalizedTextServiceFileSources(ILogger logger, IAppPolicedCache cache, DirectoryInfo fileSourceFolder)
- : this(logger, cache, fileSourceFolder, Enumerable.Empty())
- {
-
- }
+ public LocalizedTextServiceFileSources(ILogger logger, AppCaches appCaches, DirectoryInfo fileSourceFolder)
+ : this(logger, appCaches, fileSourceFolder, Enumerable.Empty())
+ { }
///
/// returns all xml sources for all culture files found in the folder
diff --git a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs
index 74f9fd7157..3f1e668dc0 100644
--- a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs
+++ b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs
@@ -44,7 +44,7 @@ namespace Umbraco.Tests.Manifest
new RequiredValidator(Mock.Of()),
new RegexValidator(Mock.Of(), null)
};
- _parser = new ManifestParser(NoAppCache.Instance, new ManifestValueValidatorCollection(validators), Mock.Of());
+ _parser = new ManifestParser(AppCaches.Disabled, new ManifestValueValidatorCollection(validators), Mock.Of());
}
[Test]
diff --git a/src/Umbraco.Tests/Models/Mapping/AutoMapperTests.cs b/src/Umbraco.Tests/Models/Mapping/AutoMapperTests.cs
index f48abc1233..57d38e342e 100644
--- a/src/Umbraco.Tests/Models/Mapping/AutoMapperTests.cs
+++ b/src/Umbraco.Tests/Models/Mapping/AutoMapperTests.cs
@@ -20,7 +20,7 @@ namespace Umbraco.Tests.Models.Mapping
base.Compose();
var manifestBuilder = new ManifestParser(
- AppCaches.Disabled.RuntimeCache,
+ AppCaches.Disabled,
new ManifestValueValidatorCollection(Enumerable.Empty()),
Composition.Logger)
{
diff --git a/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs b/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs
index 6e01de1670..12cd02d2e9 100644
--- a/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs
+++ b/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs
@@ -37,7 +37,7 @@ namespace Umbraco.Tests.Scoping
.Add(() => Composition.TypeLoader.GetCacheRefreshers());
}
- protected override AppCaches GetCacheHelper()
+ protected override AppCaches GetAppCaches()
{
// this is what's created core web runtime
return new AppCaches(
diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects.cs b/src/Umbraco.Tests/TestHelpers/TestObjects.cs
index 29eb649c48..34c97fcea2 100644
--- a/src/Umbraco.Tests/TestHelpers/TestObjects.cs
+++ b/src/Umbraco.Tests/TestHelpers/TestObjects.cs
@@ -140,7 +140,7 @@ namespace Umbraco.Tests.TestHelpers
return new LocalizedTextServiceFileSources(
logger,
- cache.RuntimeCache,
+ cache,
mainLangFolder,
pluginLangFolders.Concat(userLangFolders));
diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
index 2d6e01b6bb..fd617b5a21 100644
--- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
+++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
@@ -125,9 +125,9 @@ namespace Umbraco.Tests.Testing
var (logger, profiler) = GetLoggers(Options.Logger);
var proflogger = new ProfilingLogger(logger, profiler);
- var cacheHelper = GetCacheHelper();
+ var appCaches = GetAppCaches();
var globalSettings = SettingsForTests.GetDefaultGlobalSettings();
- var typeLoader = GetTypeLoader(cacheHelper.RuntimeCache, globalSettings, proflogger, Options.TypeLoader);
+ var typeLoader = GetTypeLoader(appCaches.RuntimeCache, globalSettings, proflogger, Options.TypeLoader);
var register = RegisterFactory.Create();
@@ -137,8 +137,7 @@ namespace Umbraco.Tests.Testing
Composition.RegisterUnique(logger);
Composition.RegisterUnique(profiler);
Composition.RegisterUnique(proflogger);
- Composition.RegisterUnique(cacheHelper);
- Composition.RegisterUnique(cacheHelper.RuntimeCache);
+ Composition.RegisterUnique(appCaches);
TestObjects = new TestObjects(register);
Compose();
@@ -199,7 +198,7 @@ namespace Umbraco.Tests.Testing
return (logger, profiler);
}
- protected virtual AppCaches GetCacheHelper()
+ protected virtual AppCaches GetAppCaches()
{
return AppCaches.Disabled;
}
diff --git a/src/Umbraco.Web/Editors/ExamineManagementController.cs b/src/Umbraco.Web/Editors/ExamineManagementController.cs
index db9de424a9..8d930b8ed7 100644
--- a/src/Umbraco.Web/Editors/ExamineManagementController.cs
+++ b/src/Umbraco.Web/Editors/ExamineManagementController.cs
@@ -1,26 +1,19 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.Linq;
using System.Net;
using System.Net.Http;
-using System.Reflection;
using System.Web.Http;
using Examine;
-using Examine.LuceneEngine;
using Examine.LuceneEngine.Providers;
-using Lucene.Net.Analysis;
-using Lucene.Net.QueryParsers;
using Umbraco.Core;
using Umbraco.Core.Cache;
-using Umbraco.Core.Composing;
using Umbraco.Core.Logging;
using Umbraco.Examine;
using Umbraco.Web.Models.ContentEditing;
using Umbraco.Web.Mvc;
using Umbraco.Web.Search;
using SearchResult = Umbraco.Web.Models.ContentEditing.SearchResult;
-using Version = Lucene.Net.Util.Version;
namespace Umbraco.Web.Editors
{
@@ -29,17 +22,17 @@ namespace Umbraco.Web.Editors
{
private readonly IExamineManager _examineManager;
private readonly ILogger _logger;
- private readonly IAppPolicedCache _runtimeCacheProvider;
+ private readonly IAppPolicedCache _runtimeCache;
private readonly IndexRebuilder _indexRebuilder;
public ExamineManagementController(IExamineManager examineManager, ILogger logger,
- IAppPolicedCache runtimeCacheProvider,
+ AppCaches appCaches,
IndexRebuilder indexRebuilder)
{
_examineManager = examineManager;
_logger = logger;
- _runtimeCacheProvider = runtimeCacheProvider;
+ _runtimeCache = appCaches.RuntimeCache;
_indexRebuilder = indexRebuilder;
}
@@ -269,7 +262,7 @@ namespace Umbraco.Web.Editors
>($"Rebuilding index '{indexer.Name}' done, {indexer.CommitCount} items committed (can differ from the number of items in the index)");
var cacheKey = "temp_indexing_op_" + indexer.Name;
- _runtimeCacheProvider.Clear(cacheKey);
+ _runtimeCache.Clear(cacheKey);
}
}
}
diff --git a/src/Umbraco.Web/Models/Mapping/UserMapperProfile.cs b/src/Umbraco.Web/Models/Mapping/UserMapperProfile.cs
index 4b27af3120..b6fc94eb3c 100644
--- a/src/Umbraco.Web/Models/Mapping/UserMapperProfile.cs
+++ b/src/Umbraco.Web/Models/Mapping/UserMapperProfile.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Web.Models.Mapping
=> entity is ContentEntitySlim contentEntity ? contentEntity.ContentTypeIcon : null;
public UserMapperProfile(ILocalizedTextService textService, IUserService userService, IEntityService entityService, ISectionService sectionService,
- IAppPolicedCache runtimeCache, ActionCollection actions, IGlobalSettings globalSettings)
+ AppCaches appCaches, ActionCollection actions, IGlobalSettings globalSettings)
{
var userGroupDefaultPermissionsResolver = new UserGroupDefaultPermissionsResolver(textService, actions);
@@ -243,7 +243,7 @@ namespace Umbraco.Web.Models.Mapping
//Important! Currently we are never mapping to multiple UserDisplay objects but if we start doing that
// this will cause an N+1 and we'll need to change how this works.
CreateMap()
- .ForMember(dest => dest.Avatars, opt => opt.MapFrom(user => user.GetUserAvatarUrls(runtimeCache)))
+ .ForMember(dest => dest.Avatars, opt => opt.MapFrom(user => user.GetUserAvatarUrls(appCaches.RuntimeCache)))
.ForMember(dest => dest.Username, opt => opt.MapFrom(user => user.Username))
.ForMember(dest => dest.LastLoginDate, opt => opt.MapFrom(user => user.LastLoginDate == default(DateTime) ? null : (DateTime?)user.LastLoginDate))
.ForMember(dest => dest.UserGroups, opt => opt.MapFrom(user => user.Groups))
@@ -293,7 +293,7 @@ namespace Umbraco.Web.Models.Mapping
//like the load time is waiting.
.ForMember(detail =>
detail.Avatars,
- opt => opt.MapFrom(user => user.GetUserAvatarUrls(runtimeCache)))
+ opt => opt.MapFrom(user => user.GetUserAvatarUrls(appCaches.RuntimeCache)))
.ForMember(dest => dest.Username, opt => opt.MapFrom(user => user.Username))
.ForMember(dest => dest.UserGroups, opt => opt.MapFrom(user => user.Groups))
.ForMember(dest => dest.LastLoginDate, opt => opt.MapFrom(user => user.LastLoginDate == default(DateTime) ? null : (DateTime?)user.LastLoginDate))
@@ -313,7 +313,7 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(dest => dest.AdditionalData, opt => opt.Ignore());
CreateMap()
- .ForMember(dest => dest.Avatars, opt => opt.MapFrom(user => user.GetUserAvatarUrls(runtimeCache)))
+ .ForMember(dest => dest.Avatars, opt => opt.MapFrom(user => user.GetUserAvatarUrls(appCaches.RuntimeCache)))
.ForMember(dest => dest.UserId, opt => opt.MapFrom(user => GetIntId(user.Id)))
.ForMember(dest => dest.StartContentIds, opt => opt.MapFrom(user => user.CalculateContentStartNodeIds(entityService)))
.ForMember(dest => dest.StartMediaIds, opt => opt.MapFrom(user => user.CalculateMediaStartNodeIds(entityService)))