Adds in Composition Extension Methods to allow Setting the LogViewer without having to know the composition.RegisterUnique syntax

This commit is contained in:
Warren Buckley
2019-01-28 15:39:49 +00:00
parent 9eabc1fb3f
commit 4a5eca3c6a
2 changed files with 33 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Strings;
using Umbraco.Core.Sync;
using Umbraco.Core._Legacy.PackageActions;
using Umbraco.Core.Logging.Viewer;
namespace Umbraco.Core.Components
{
@@ -297,6 +298,37 @@ namespace Umbraco.Core.Components
public static void SetMediaFileSystem(this Composition composition, Func<IFileSystem> filesystemFactory)
=> composition.RegisterUniqueFor<IFileSystem, IMediaFileSystem>(_ => filesystemFactory());
/// <summary>
/// Sets the log viewer.
/// </summary>
/// <typeparam name="T">The type of the log viewer.</typeparam>
/// <param name="composition">The composition.</param>
public static void SetLogViewer<T>(this Composition composition)
where T : ILogViewer
{
composition.RegisterUnique<ILogViewer, T>();
}
/// <summary>
/// Sets the log viewer.
/// </summary>
/// <param name="composition">The composition.</param>
/// <param name="factory">A function creating a log viewer.</param>
public static void SetLogViewer(this Composition composition, Func<IFactory, ILogViewer> factory)
{
composition.RegisterUnique(factory);
}
/// <summary>
/// Sets the log viewer.
/// </summary>
/// <param name="composition">A composition.</param>
/// <param name="helper">A log viewer.</param>
public static void SetLogViewer(this Composition composition, ILogViewer viewer)
{
composition.RegisterUnique(_ => viewer);
}
#endregion
}
}

View File

@@ -8,7 +8,7 @@ namespace Umbraco.Core.Logging.Viewer
{
public void Compose(Composition composition)
{
composition.RegisterUnique<ILogViewer>(_ => new JsonLogViewer());
composition.SetLogViewer(_ => new JsonLogViewer());
}
}
}