Resvolution - CacheRefresherResolver

This commit is contained in:
Stephan
2016-08-13 16:02:35 +02:00
parent ac271dfc3f
commit caf3c4280a
12 changed files with 57 additions and 63 deletions

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.DependencyInjection;
namespace Umbraco.Core.Cache
{
public class CacheRefresherCollection : BuilderCollectionBase<ICacheRefresher>
{
public CacheRefresherCollection(IEnumerable<ICacheRefresher> items)
: base(items)
{ }
public ICacheRefresher this[Guid id]
=> this.FirstOrDefault(x => x.RefresherUniqueId == id);
}
}

View File

@@ -0,0 +1,15 @@
using System.Collections.Generic;
using LightInject;
using Umbraco.Core.DependencyInjection;
namespace Umbraco.Core.Cache
{
public class CacheRefresherCollectionBuilder : LazyCollectionBuilderBase<CacheRefresherCollectionBuilder, CacheRefresherCollection, ICacheRefresher>
{
public CacheRefresherCollectionBuilder(IServiceContainer container)
: base(container)
{ }
protected override CacheRefresherCollectionBuilder This => this;
}
}

View File

@@ -1,45 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using LightInject;
using Umbraco.Core.Logging;
using Umbraco.Core.ObjectResolution;
namespace Umbraco.Core.Cache
{
/// <summary>
/// A resolver to return all ICacheRefresher objects
/// </summary>
internal sealed class CacheRefreshersResolver : ContainerLazyManyObjectsResolver<CacheRefreshersResolver, ICacheRefresher>
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="serviceContainer"></param>
/// <param name="logger"></param>
/// <param name="refreshers"></param>
internal CacheRefreshersResolver(IServiceContainer serviceContainer, ILogger logger, Func<IEnumerable<Type>> refreshers)
: base(serviceContainer, logger, refreshers)
{
}
/// <summary>
/// Gets the <see cref="ICacheRefresher"/> implementations.
/// </summary>
public IEnumerable<ICacheRefresher> CacheRefreshers => Values;
/// <summary>
/// Returns an instance for the type identified by its unique type identifier.
/// </summary>
/// <param name="id">The type identifier.</param>
/// <returns>The value of the type uniquely identified by <paramref name="id"/>.</returns>
public ICacheRefresher GetById(Guid id)
{
return Values.FirstOrDefault(x => x.RefresherUniqueId == id);
}
}
}