in Core/src/Impl/Commands/UploadCommand.cs [26:47]
public UploadCommand(
ILogger logger,
IStorage targetStorage,
int degreeOfParallelism,
IStorage sourceStorage,
StorageFormat newStorageFormat,
CollisionResolutionMode collisionResolutionMode,
CollisionResolutionMode peCollisionResolutionMode,
string? backupStorageDir)
{
if ((collisionResolutionMode == CollisionResolutionMode.Overwrite || peCollisionResolutionMode == CollisionResolutionMode.Overwrite) && string.IsNullOrEmpty(backupStorageDir))
throw new ArgumentException("Backup storage must be specified when collision resolution mode is 'overwrite'");
myLogger = logger ?? throw new ArgumentNullException(nameof(logger));
myTargetStorage = targetStorage ?? throw new ArgumentNullException(nameof(targetStorage));
myDegreeOfParallelism = degreeOfParallelism;
mySourceStorage = sourceStorage ?? throw new ArgumentNullException(nameof(sourceStorage));
myNewStorageFormat = newStorageFormat;
myCollisionResolutionMode = collisionResolutionMode;
myPeCollisionResolutionMode = peCollisionResolutionMode;
myBackupStorageDir = (collisionResolutionMode == CollisionResolutionMode.Overwrite || peCollisionResolutionMode == CollisionResolutionMode.Overwrite) ? backupStorageDir : null;
}