Files
speckle-sharp-connectors/Sdk/Speckle.Converters.Common/ToHost/ConverterWithoutFallback.cs
T
Alan Rynne fa1fa359fc Refactor usage of exceptions in converters/connectors (#286)
* 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
2024-10-16 12:01:21 +02:00

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;
}
}