Ejemplo n.º 1
0
        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);
        }
        private static string GetOutputFolder(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);
        }