コード例 #1
0
        internal string ToFeedbackString()
        {
            var info = $@"{ApplicationFullVersion}
{ApplicationDescription}

";

            var repoDefaults = new Repository();

            var colInfo = new int[] { 0, 30, 65, 75 };
            var table   = new List <string[]>()
            {
                new string[] { "Configuration entry", "Description", "Value", "Default" },
                new string[] { "===================", "===========", "=====", "=======" },
                Array.Empty <string>(),
                new string[] { nameof(UploadFolder), "Upload Folder", UploadFolder, repoDefaults.UploadFolder },
                new string[] { nameof(ArchiveFolder), "Archive Folder", ArchiveFolder, repoDefaults.ArchiveFolder },
                new string[] { nameof(TransferCheckpointFilename), "Transfer Checkpoint Filename", TransferCheckpointFilename, repoDefaults.TransferCheckpointFilename },
                new string[] { nameof(BlockSize), "Tx Block Size", BlockSize.ToSizeSuffix(), repoDefaults.BlockSize.ToSizeSuffix() },
                new string[] { nameof(ParallelOperations), "Parallel Operations", ParallelOperations.ToString(), repoDefaults.ParallelOperations.ToString() },
                new string[] { nameof(DefaultConnectionLimit), "Default Connection Limit", DefaultConnectionLimit.ToString(), repoDefaults.DefaultConnectionLimit.ToString() },
                new string[] { nameof(Expect100Continue), "Wait for '100' response?", Expect100Continue.ToString(), repoDefaults.Expect100Continue.ToString() },
                new string[] { nameof(Recursive), "Recurse the upload folder", Recursive.ToString(), repoDefaults.Recursive.ToString() },
                Array.Empty <string>(),
                new string[] { nameof(BlobContainerUri), "Azure Blob Container", BlobDirectory?.Uri.ToString(), repoDefaults.BlobDirectory?.Uri.ToString() },
                new string[] { nameof(FileContainerUri), "Azure File Directory", FileDirectory?.Uri.ToString(), repoDefaults.FileDirectory?.Uri.ToString() },
                Array.Empty <string>(),
                new string[] { "For details of the configuration options see: https://github.com/Azure/azure-storage-net-data-movement/" },
            };

            table.ForEach(row =>
            {
                var line = "";
                for (int i = 0; i < row.Length; i++)
                {
                    if (line.Length > colInfo[i])
                    {
                        info = info.TrimEnd(' ') + $"\n{line}";
                        line = string.Empty;
                    }
                    line = $"{line.PadRight(colInfo[i])}{row[i]} ";
                }
                info = info.TrimEnd(' ') + $"\n{line}";
            });

            return(info);
        }