Пример #1
0
 private async Task DownloadFileAsync(IFileFetcher fetcher)
 {
     var file = await fetcher.GetLatestAsync().ConfigureAwait(false);
     string filePath = Path.Combine(_settings.ZippedToolsDirectory, file.Name);
     if (!File.Exists(filePath) || _settings.ReloadTools)
     {
         using (var fileStream = new FileStream(filePath, FileMode.Create))
         {
             var contentStream = await file.GetContentAsync().ConfigureAwait(false);
             await contentStream.CopyToAsync(fileStream).ConfigureAwait(false);
         }
     }
 }
Пример #2
0
        private async Task DownloadFileAsync(IFileFetcher fetcher)
        {
            var file = await fetcher.GetLatestAsync().ConfigureAwait(false);

            string filePath = Path.Combine(_settings.ZippedToolsDirectory, file.Name);

            if (!File.Exists(filePath) || _settings.ReloadTools)
            {
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    var contentStream = await file.GetContentAsync().ConfigureAwait(false);

                    await contentStream.CopyToAsync(fileStream).ConfigureAwait(false);
                }
            }
        }
Пример #3
0
        private async Task <ToolUpdate> CheckForUpdateAsync(
            ToolSettings toolSettings,
            IFileFetcher fetcher,
            bool useExistingTools)
        {
            var latestLocal = ToolUtility.GetLatestToolOrNull(_settings, toolSettings);

            if (useExistingTools && latestLocal != null)
            {
                return(null);
            }

            EnableSecurityProtocols();

            var latestDownload = await fetcher.GetLatestAsync().ConfigureAwait(false);

            var fileExtension   = ArchiveUtility.GetFileExtension(latestDownload.Format);
            var fileName        = $"{toolSettings.Prefix}{latestDownload.Version}{fileExtension}";
            var destinationPath = Path.Combine(_settings.ZippedToolsDirectory, fileName);

            ToolUpdateStatus status;

            if (latestLocal == null)
            {
                status = ToolUpdateStatus.NoLocalVersion;
            }
            else if (!File.Exists(destinationPath))
            {
                status = ToolUpdateStatus.NewerVersionAvailable;
            }
            else
            {
                status = ToolUpdateStatus.NoUpdateAvailable;
            }

            return(new ToolUpdate(
                       status,
                       latestLocal?.Version,
                       destinationPath,
                       latestDownload));
        }