FileStorageSearchResults
using Relativity.Transfer.Resources;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Relativity.Transfer
{
public sealed class FileStorageSearchResults
{
public IReadOnlyCollection<RelativityBulkLoadFileShare> { get; set; }
public bool CloudInstance { get; }
public RelativityConnectionInfo ConnectionInfo { get; }
public IReadOnlyCollection<RelativityFileShare> { get; set; }
public IReadOnlyCollection<RelativityBulkLoadFileShare> { get; set; }
public IReadOnlyCollection<RelativityFileShare> { get; set; }
internal FileStorageSearchResults(RelativityConnectionInfo connectionInfo, bool cloudInstance, IEnumerable<RelativityFileShare> fileShares, IEnumerable<RelativityFileShare> invalidFileShares, IEnumerable<RelativityBulkLoadFileShare> bulkLoadFileShares, IEnumerable<RelativityBulkLoadFileShare> invalidBulkLoadFileShares)
{
if (connectionInfo == null)
throw new ArgumentNullException("connectionInfo");
if (fileShares == null)
throw new ArgumentNullException("fileShares");
if (invalidFileShares == null)
throw new ArgumentNullException("invalidFileShares");
if (bulkLoadFileShares == null)
throw new ArgumentNullException("bulkLoadFileShares");
if (invalidBulkLoadFileShares == null)
throw new ArgumentNullException("invalidBulkLoadFileShares");
BulkLoadFileShares = new List<RelativityBulkLoadFileShare>(bulkLoadFileShares);
ConnectionInfo = connectionInfo;
CloudInstance = cloudInstance;
FileShares = new List<RelativityFileShare>(fileShares);
InvalidFileShares = new List<RelativityFileShare>(invalidFileShares);
InvalidBulkLoadFileShare = new List<RelativityBulkLoadFileShare>(invalidBulkLoadFileShares);
}
public RelativityBulkLoadFileShare (AsperaCredential credential)
{
if (credential == (AsperaCredential)null)
throw new ArgumentNullException("credential");
if (BulkLoadFileShares.Count == 0)
return null;
foreach (RelativityBulkLoadFileShare item in (from x in BulkLoadFileShares
orderby x.Number
select x).ToList()) {
if (item.AsperaCredential != (AsperaCredential)null && credential.Equals(item.AsperaCredential))
return item;
}
return null;
}
public RelativityBulkLoadFileShare (string value)
{
if (string.IsNullOrEmpty(value))
throw new ArgumentNullException(value);
if (BulkLoadFileShares.Count == 0)
return null;
return (from x in BulkLoadFileShares
orderby x.Number
select x).ToList().FirstOrDefault(delegate(RelativityBulkLoadFileShare fileShare) {
if (!fileShare.IsBaseOf(value))
return string.Compare(fileShare.Name, value, StringComparison.OrdinalIgnoreCase) == 0;
return true;
});
}
public RelativityBulkLoadFileShare (int value)
{
if (value < 1)
throw new ArgumentOutOfRangeException("value", CoreStrings.RelativityFileShareValueOutOfRangeExceptionMessage);
if (BulkLoadFileShares.Count == 0)
return null;
return BulkLoadFileShares.FirstOrDefault(delegate(RelativityBulkLoadFileShare fileShare) {
if (fileShare.ArtifactId != value)
return fileShare.Number == value;
return true;
});
}
public RelativityFileShare (AsperaCredential credential)
{
if (credential == (AsperaCredential)null)
throw new ArgumentNullException("credential");
if (FileShares.Count == 0)
return null;
return (from x in FileShares
orderby x.Number
select x).ToList().FirstOrDefault(delegate(RelativityFileShare fileShare) {
if (fileShare.AsperaCredential != (AsperaCredential)null)
return credential.Equals(fileShare.AsperaCredential);
return false;
});
}
public RelativityFileShare (int value)
{
if (value < 1)
throw new ArgumentOutOfRangeException("value", CoreStrings.RelativityFileShareValueOutOfRangeExceptionMessage);
if (FileShares.Count == 0)
return null;
return FileShares.FirstOrDefault(delegate(RelativityFileShare fileShare) {
if (fileShare.ArtifactId != value)
return fileShare.Number == value;
return true;
});
}
public RelativityFileShare (string value)
{
if (string.IsNullOrEmpty(value))
throw new ArgumentNullException("value");
if (FileShares.Count == 0)
return null;
return (from x in FileShares
orderby x.Number
select x).ToList().FirstOrDefault(delegate(RelativityFileShare fileShare) {
if (!fileShare.IsBaseOf(value))
return string.Compare(fileShare.Name, value, StringComparison.OrdinalIgnoreCase) == 0;
return true;
});
}
}
}