EnumeratedPathsResult
using System;
using System.Collections.Generic;
using System.Linq;
namespace Relativity.Transfer
{
public class EnumeratedPathsResult
{
public bool LocalPaths { get; }
public TimeSpan Elapsed { get; }
public IEnumerable<ErrorPath> ErrorPaths { get; }
public IEnumerable<TransferPath> Paths { get; }
public IEnumerable<string> SearchPaths { get; }
public double SearchRateFps => PathEnumeratorHelper.CalculateSearchRateFps(Paths.Count(), Elapsed.TotalSeconds);
public long TotalByteCount { get; }
public long TotalDirectoryCount { get; }
public long TotalFileCount { get; }
public EnumeratedPathsResult(IEnumerable<string> searchPaths, IEnumerable<TransferPath> paths, IEnumerable<ErrorPath> errorPaths, long totalDirectories, bool localPaths, TimeSpan elapsed)
{
if (searchPaths == null)
throw new ArgumentNullException("searchPaths");
if (paths == null)
throw new ArgumentNullException("paths");
SearchPaths = new List<string>(searchPaths);
Elapsed = elapsed;
ErrorPaths = ((errorPaths != null) ? new List<ErrorPath>(errorPaths) : new List<ErrorPath>());
List<TransferPath> source = paths.ToList();
LocalPaths = localPaths;
Paths = source;
TotalByteCount = source.Sum((TransferPath x) => x.Bytes);
TotalDirectoryCount = totalDirectories;
TotalFileCount = source.Count((TransferPath x) => x.PathAttributes.HasFlag(TransferPathAttributes.File));
}
}
}