Fix internal class being returned from media cache service (#17213)
* update backoffice submodule * update backoffice submodule * Fix internal class being returned from media cache service Return the correct models from the media cache service --------- Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Microsoft.Extensions.Caching.Hybrid;
|
||||
using Microsoft.Extensions.Caching.Hybrid;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
@@ -8,6 +8,7 @@ using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Infrastructure.HybridCache.Factories;
|
||||
using Umbraco.Cms.Infrastructure.HybridCache.Persistence;
|
||||
using Umbraco.Cms.Infrastructure.HybridCache.Serialization;
|
||||
using Umbraco.Extensions;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.HybridCache.Services;
|
||||
|
||||
@@ -20,6 +21,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
private readonly IPublishedContentFactory _publishedContentFactory;
|
||||
private readonly ICacheNodeFactory _cacheNodeFactory;
|
||||
private readonly IEnumerable<IMediaSeedKeyProvider> _seedKeyProviders;
|
||||
private readonly IPublishedModelFactory _publishedModelFactory;
|
||||
private readonly CacheSettings _cacheSettings;
|
||||
|
||||
private HashSet<Guid>? _seedKeys;
|
||||
@@ -51,6 +53,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
IPublishedContentFactory publishedContentFactory,
|
||||
ICacheNodeFactory cacheNodeFactory,
|
||||
IEnumerable<IMediaSeedKeyProvider> seedKeyProviders,
|
||||
IPublishedModelFactory publishedModelFactory,
|
||||
IOptions<CacheSettings> cacheSettings)
|
||||
{
|
||||
_databaseCacheRepository = databaseCacheRepository;
|
||||
@@ -60,6 +63,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
_publishedContentFactory = publishedContentFactory;
|
||||
_cacheNodeFactory = cacheNodeFactory;
|
||||
_seedKeyProviders = seedKeyProviders;
|
||||
_publishedModelFactory = publishedModelFactory;
|
||||
_cacheSettings = cacheSettings.Value;
|
||||
}
|
||||
|
||||
@@ -78,7 +82,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
async cancel => await _databaseCacheRepository.GetMediaSourceAsync(idAttempt.Result));
|
||||
|
||||
scope.Complete();
|
||||
return contentCacheNode is null ? null : _publishedContentFactory.ToIPublishedMedia(contentCacheNode);
|
||||
return contentCacheNode is null ? null : _publishedContentFactory.ToIPublishedMedia(contentCacheNode).CreateModel(_publishedModelFactory);
|
||||
}
|
||||
|
||||
public async Task<IPublishedContent?> GetByIdAsync(int id)
|
||||
@@ -94,7 +98,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
$"{keyAttempt.Result}", // Unique key to the cache entry
|
||||
async cancel => await _databaseCacheRepository.GetMediaSourceAsync(id));
|
||||
scope.Complete();
|
||||
return contentCacheNode is null ? null : _publishedContentFactory.ToIPublishedMedia(contentCacheNode);
|
||||
return contentCacheNode is null ? null : _publishedContentFactory.ToIPublishedMedia(contentCacheNode).CreateModel(_publishedModelFactory);
|
||||
}
|
||||
|
||||
public async Task<bool> HasContentByIdAsync(int id)
|
||||
@@ -144,7 +148,7 @@ internal class MediaCacheService : IMediaCacheService
|
||||
|
||||
foreach (Guid key in SeedKeys)
|
||||
{
|
||||
if(cancellationToken.IsCancellationRequested)
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -187,7 +191,8 @@ internal class MediaCacheService : IMediaCacheService
|
||||
|
||||
private HybridCacheEntryOptions GetSeedEntryOptions() => new()
|
||||
{
|
||||
Expiration = _cacheSettings.SeedCacheDuration, LocalCacheExpiration = _cacheSettings.SeedCacheDuration,
|
||||
Expiration = _cacheSettings.SeedCacheDuration,
|
||||
LocalCacheExpiration = _cacheSettings.SeedCacheDuration,
|
||||
};
|
||||
|
||||
private string GetCacheKey(Guid key, bool preview) => preview ? $"{key}+draft" : $"{key}";
|
||||
|
||||
Submodule src/Umbraco.Web.UI.Client updated: 7d5d6558e3...00e5576244
Reference in New Issue
Block a user