MessagesHandler
using kCura.WinEDDS;
using Relativity.DataExchange.Process;
using Relativity.DataExchange.Transfer;
using Relativity.Logging;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Statistics
{
public class MessagesHandler : IMessagesHandler
{
private readonly IStatus _status;
private readonly ILog _logger;
public MessagesHandler(IStatus status, ILog logger)
{
_status = status.ThrowIfNull("status");
_logger = logger.ThrowIfNull<ILog>("logger");
}
public void Subscribe(ITapiBridge tapiBridge)
{
tapiBridge.ThrowIfNull("tapiBridge");
_logger.LogVerbose("Attached tapi bridge {TapiBridgeInstanceId} to the message handler.", new object[1] {
tapiBridge.InstanceId
});
tapiBridge.TapiErrorMessage += OnErrorMessage;
tapiBridge.TapiStatusMessage += OnStatusMessage;
tapiBridge.TapiWarningMessage += OnWarningMessage;
tapiBridge.TapiFatalError += OnFatalError;
}
public void Unsubscribe(ITapiBridge tapiBridge)
{
tapiBridge.ThrowIfNull("tapiBridge");
_logger.LogVerbose("Detached tapi bridge {TapiBridgeInstanceId} from the message handler.", new object[1] {
tapiBridge.InstanceId
});
tapiBridge.TapiErrorMessage -= OnErrorMessage;
tapiBridge.TapiStatusMessage -= OnStatusMessage;
tapiBridge.TapiWarningMessage -= OnWarningMessage;
tapiBridge.TapiFatalError -= OnFatalError;
}
private void OnErrorMessage(object sender, TapiMessageEventArgs e)
{
_status.WriteError(e.Message);
}
private void OnStatusMessage(object sender, TapiMessageEventArgs e)
{
_status.WriteStatusLine(EventType2.Status, e.Message, false);
}
private void OnWarningMessage(object sender, TapiMessageEventArgs e)
{
_status.WriteWarning(e.Message);
}
private void OnFatalError(object sender, TapiMessageEventArgs e)
{
_status.WriteError(e.Message);
}
}
}