fa1fa359fc
* feat: Non-controversial rebased changes from alan/exception-handling * fix: Fixed all other usages after rebase * fix: Re-added exception throw on 0 objects converted * fix: Missing using statement * fix: Converter manager * fix: Using statements * fix: Exception usages coming in from merge
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using Speckle.Converters.Common.Extensions;
|
|
using Speckle.Converters.Common.Objects;
|
|
using Speckle.Converters.Common.Registration;
|
|
using Speckle.Sdk.Models;
|
|
|
|
namespace Speckle.Converters.Common.ToHost;
|
|
|
|
// POC: CNX-9394 Find a better home for this outside `DependencyInjection` project
|
|
/// <summary>
|
|
/// Provides an implementation for <see cref="IRootToHostConverter"/>
|
|
/// that resolves a <see cref="IToHostTopLevelConverter"/> via the injected <see cref="IConverterManager{TConverter}"/>
|
|
/// </summary>
|
|
/// <seealso cref="ConverterWithFallback"/>
|
|
public sealed class ConverterWithoutFallback : IRootToHostConverter
|
|
{
|
|
private readonly IConverterManager<IToHostTopLevelConverter> _toHost;
|
|
private readonly ILogger _logger;
|
|
|
|
public ConverterWithoutFallback(
|
|
IConverterManager<IToHostTopLevelConverter> converterResolver,
|
|
ILogger<ConverterWithoutFallback> logger
|
|
)
|
|
{
|
|
_toHost = converterResolver;
|
|
_logger = logger;
|
|
}
|
|
|
|
public object Convert(Base target)
|
|
{
|
|
var converter = _toHost.ResolveConverter(target.GetType());
|
|
object result = converter.ConvertAndLog(target, _logger);
|
|
return result;
|
|
}
|
|
}
|