private static string getOutFolder(GitHubEntry localItem, string baseFoler)
        {
            var pathDir = Path.GetDirectoryName(localItem.Path);
            var outFolder = Path.Combine(baseFoler, pathDir);
            if (Directory.Exists(outFolder))
            {
                return outFolder;
            }

            var info = Directory.CreateDirectory(outFolder);
            return info.FullName;
        }
 private Action getDownloadTask(GitHubEntry localItem, string outFolder)
 {
     Action action = () =>
     {
         try
         {
             Downloader.DownloadFile(
                 url: localItem.DownloadUrl,
                 outFolder: outFolder,
                 expectedFileSize: localItem.Size,
                 cancellationToken: _cancellationToken.Token,
                 onPercentChange: downloadPercent =>
                 {
                     localItem.DownloadPercent = downloadPercent;
                     if (downloadPercent == 100)
                     {
                         DispatcherHelper.DispatchAction(
                             () => _guiModelData.GitHubEntries.Remove(localItem));
                     }
                 });
         }
         catch (Exception ex)
         {
             AppMessenger.Messenger.NotifyColleagues("ShowLog",
                 string.Format("{0} -> {1}", localItem.DownloadUrl, ex.Message));
         }
     };
     return action;
 }