TransferClientHelper
using Relativity.Transfer.Resources;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace Relativity.Transfer
{
public static class TransferClientHelper
{
public static IList<ITransferClientMetadata> SearchAvailableClients(ITransferLog log)
{
try {
DirectoryCatalog2 directoryCatalog = new DirectoryCatalog2(log);
try {
using (TransferClientPluginService transferClientPluginService = new TransferClientPluginService(directoryCatalog, log))
return transferClientPluginService.SearchMetadata().ToList();
} finally {
((IDisposable)directoryCatalog)?.Dispose();
}
} catch (TransferException) {
throw;
} catch (Exception innerException) {
string message = string.Format(CultureInfo.CurrentCulture, ClientStrings.TransferClientMetadataMefExceptionMessage, GlobalSettings.Instance.PluginDirectory);
throw new TransferException(message, innerException);
}
}
public static IList<ConfigurationDocItem> SearchConfigurationDocs(ITransferLog log)
{
try {
List<ConfigurationDocItem> list = new List<ConfigurationDocItem>();
DirectoryCatalog2 directoryCatalog = new DirectoryCatalog2(log);
try {
using (TransferClientPluginService transferClientPluginService = new TransferClientPluginService(directoryCatalog, log)) {
IEnumerable<IConfigurationDetail> enumerable = transferClientPluginService.SearchConfigurationDetails();
foreach (IConfigurationDetail item in enumerable) {
IEnumerable<ConfigurationDocItem> docs = item.GetDocs();
list.AddRange(docs);
}
List<ConfigurationDocItem> list2 = (from item in list
group item by item.Key into y
select y.First()).ToList();
list2.Sort((ConfigurationDocItem item1, ConfigurationDocItem item2) => string.Compare(item1.Key, item2.Key, StringComparison.Ordinal));
return list2;
}
} finally {
((IDisposable)directoryCatalog)?.Dispose();
}
} catch (Exception innerException) {
string message = string.Format(CultureInfo.CurrentCulture, ClientStrings.ClientConfigurationDocsMefExceptionMessage, GlobalSettings.Instance.PluginDirectory);
throw new TransferException(message, innerException);
}
}
}
}