TransferValidationOptionsExtensions
using System;
namespace Azure.Storage
{
internal static class TransferValidationOptionsExtensions
{
public static StorageChecksumAlgorithm ResolveAuto(this StorageChecksumAlgorithm checksumAlgorithm)
{
if (checksumAlgorithm == StorageChecksumAlgorithm.Auto)
return StorageChecksumAlgorithm.StorageCrc64;
return checksumAlgorithm;
}
public static UploadTransferValidationOptions ToValidationOptions(this byte[] md5)
{
if (md5 != null)
return new UploadTransferValidationOptions {
ChecksumAlgorithm = StorageChecksumAlgorithm.MD5,
PrecalculatedChecksum = (ReadOnlyMemory<byte>)md5
};
return null;
}
public static DownloadTransferValidationOptions ToValidationOptions(this bool requestTransactionalMD5)
{
if (!requestTransactionalMD5)
return null;
return new DownloadTransferValidationOptions {
ChecksumAlgorithm = StorageChecksumAlgorithm.MD5,
AutoValidateChecksum = false
};
}
public static void CopyTo(this TransferValidationOptions source, TransferValidationOptions dest)
{
source.Upload.CopyTo(dest.Upload);
source.Download.CopyTo(dest.Download);
}
public static void CopyTo(this UploadTransferValidationOptions source, UploadTransferValidationOptions dest)
{
dest.ChecksumAlgorithm = source.ChecksumAlgorithm;
dest.PrecalculatedChecksum = source.PrecalculatedChecksum;
}
public static void CopyTo(this DownloadTransferValidationOptions source, DownloadTransferValidationOptions dest)
{
dest.ChecksumAlgorithm = source.ChecksumAlgorithm;
dest.AutoValidateChecksum = source.AutoValidateChecksum;
}
}
}