/// <summary> /// Download folder /// </summary> /// <param name="shell"></param> /// <param name="options"></param> /// <returns></returns> private static async Task DownloadFolderAsync(ISecureShell shell, CliOptions options) { var from = options.GetValue <string>("-f", "--from"); var path = options.GetValue <string>("-p", "--path"); await shell.DownloadFolderAsync(path, from, options.GetValueOrDefault("-h", "--home", true)); }
/// <summary> /// Download folder with timeout /// </summary> /// <param name="shell"></param> /// <param name="toPath"></param> /// <param name="fromPath"></param> /// <param name="isUserHomeBased"></param> /// <param name="timeout"></param> /// <returns></returns> public static Task DownloadFolderAsync(this ISecureShell shell, string toPath, string fromPath, bool isUserHomeBased, TimeSpan timeout) { using (var cts = new CancellationTokenSource(timeout)) { return(shell.DownloadFolderAsync(toPath, fromPath, isUserHomeBased, cts.Token)); } }
/// <summary> /// Download folder with default timeout of 5 minute /// </summary> /// <param name="shell"></param> /// <param name="toPath"></param> /// <param name="fromPath"></param> /// <param name="isUserHomeBased"></param> /// <returns></returns> public static Task DownloadFolderAsync(this ISecureShell shell, string toPath, string fromPath, bool isUserHomeBased) { return(shell.DownloadFolderAsync(toPath, fromPath, isUserHomeBased, TimeSpan.FromMinutes(5))); }
/// <summary> /// Download folder with timeout /// </summary> /// <param name="shell"></param> /// <param name="toPath"></param> /// <param name="fromPath"></param> /// <param name="isUserHomeBased"></param> /// <param name="timeout"></param> /// <returns></returns> public static Task DownloadFolderAsync(this ISecureShell shell, string toPath, string fromPath, bool isUserHomeBased, TimeSpan timeout) => shell.DownloadFolderAsync(toPath, fromPath, isUserHomeBased, new CancellationTokenSource(timeout).Token);