TransferValidationOptionsExtensions
using System;
namespace Azure.Storage
{
    internal static class TransferValidationOptionsExtensions
    {
        public static StorageChecksumAlgorithm ResolveAuto(this StorageChecksumAlgorithm checksumAlgorithm)
        {
            if ((int)checksumAlgorithm == 0)
                return 3;
            return checksumAlgorithm;
        }
        public static UploadTransferValidationOptions ToValidationOptions(this byte[] md5)
        {
            if (md5 != null) {
                UploadTransferValidationOptions val = new UploadTransferValidationOptions();
                val.set_ChecksumAlgorithm(2);
                val.set_PrecalculatedChecksum((ReadOnlyMemory<byte>)md5);
                return val;
            }
            return null;
        }
        public static DownloadTransferValidationOptions ToValidationOptions(this bool requestTransactionalMD5)
        {
            if (!requestTransactionalMD5)
                return null;
            DownloadTransferValidationOptions val = new DownloadTransferValidationOptions();
            val.set_ChecksumAlgorithm(2);
            val.set_AutoValidateChecksum(false);
            return val;
        }
        public static void CopyTo(this TransferValidationOptions source, TransferValidationOptions dest)
        {
            TransferValidationOptionsExtensions.CopyTo(source.get_Upload(), dest.get_Upload());
            TransferValidationOptionsExtensions.CopyTo(source.get_Download(), dest.get_Download());
        }
        public static void CopyTo(this UploadTransferValidationOptions source, UploadTransferValidationOptions dest)
        {
            dest.set_ChecksumAlgorithm(source.get_ChecksumAlgorithm());
            dest.set_PrecalculatedChecksum(source.get_PrecalculatedChecksum());
        }
        public static void CopyTo(this DownloadTransferValidationOptions source, DownloadTransferValidationOptions dest)
        {
            dest.set_ChecksumAlgorithm(source.get_ChecksumAlgorithm());
            dest.set_AutoValidateChecksum(source.get_AutoValidateChecksum());
        }
    }
}