Пример #1
0
        public async Task RefreshNuspecFile(PackageRetrieveOptions options)
        {
            if (!File.Exists(options.NuspecFilePath) || options.AlwaysLoadFromInternet)
            {
                await Task.Run(() =>
                {
                    try
                    {
                        IPackageRepository repo =
                            PackageRepositoryFactory.Default.CreateRepository("https://packages.nuget.org/api/v2");
                        var package = repo.FindPackage(options.ProjectName);

                        using (var pkgStream = package.GetStream())
                        {
                            var pkgReader = new PackageReader(pkgStream);
                            using (Stream nuspecStream = pkgReader.GetNuspec())
                                using (var fileStream = new FileStream(options.NuspecFilePath, FileMode.Create))
                                {
                                    nuspecStream.CopyTo(fileStream);
                                }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Unable to download read from internet. " + ex.Message);
                    }
                });
            }
        }
Пример #2
0
        public async Task <Manifest> GetPackageInformation(PackageRetrieveOptions options)
        {
            var nuspecProvider = new NuspecManager();
            await nuspecProvider.RefreshNuspecFile(options);

            return(await nuspecProvider.GetNuspecManifest(options));
        }
        private IEnumerable <DependencyModel> GetDependecies(PackageRetrieveOptions options)
        {
            //todo:fix dependencyset issue.
            var nuspecDependencies = _manifest.Metadata
                                     .DependencySets.First()
                                     .Dependencies.Select(d => new DependencyModel
            {
                Id      = d.Id,
                Version = d.Version
            }).ToList();

            var projetDependencies = _nugetPackageManager.GetProjectDependencies(options)
                                     .Select(d => new DependencyModel
            {
                Id      = d.Id,
                Version = d.Version
            }).ToList();


            var finalDependencies = new List <DependencyModel>();

            finalDependencies.AddRange(projetDependencies);

            foreach (var nuspecDependency in nuspecDependencies)
            {
                if (!finalDependencies.Contains(nuspecDependency, new DependencyModelIdComparator()))
                {
                    finalDependencies.Add(nuspecDependency);
                }
            }

            return(finalDependencies);
        }
        private async void OpenFileDialogOnFileOk(object sender,
                                                  CancelEventArgs cancelEventArgs)
        {
            using (new WaitCursor())
            {
                try
                {
                    ShowStatus("Please wait.... downloading package information"
                               , ContinuousProgressBarCommand.Start, ProgressResultType.Info);

                    _filePath = _openFileDialog.FileName;
                    PackageRetrieveOptions options = new PackageRetrieveOptions(_filePath, AlwaysLoadFromInternetCheckBox.IsChecked.GetValueOrDefault(false));
                    _manifest = await _nugetPackageManager.GetPackageInformation(options);

                    TextBlockProjectTitle.Text = $"{_manifest.Metadata.Id} {_manifest.Metadata.Version}";
                    VersionTextBox.Text        = GetNewVersion();

                    dataGrid.ItemsSource = GetDependecies(options);

                    ShowStatus("Package information loaded", ContinuousProgressBarCommand.End, ProgressResultType.Info);
                }
                catch (Exception ex)
                {
                    ShowStatus("Could not load package information." + ex.Message,
                               ContinuousProgressBarCommand.End, ProgressResultType.Failure);
                }
            }
        }
Пример #5
0
        public List <ManifestDependency> GetProjectDependencies(PackageRetrieveOptions options)
        {
            var configReader = new PackagesConfigReader(options);
            var dependenties = configReader.Read().Select(d => new ManifestDependency
            {
                Id      = d.PackageIdentity.Id,
                Version = d.PackageIdentity.Version.ToString()
            }).ToList();

            return(dependenties);
        }
Пример #6
0
 public async Task <Manifest> GetNuspecManifest(PackageRetrieveOptions options)
 {
     return(await Task.Run(() =>
     {
         try
         {
             using (FileStream fileStream = new FileStream(options.NuspecFilePath, FileMode.Open))
             {
                 return Manifest.ReadFrom(fileStream, true);
             }
         }
         catch (Exception ex)
         {
             throw new Exception($"Could not read nuspec file. {ex.Message}");
         }
     }));
 }
Пример #7
0
 public PackagesConfigReader(PackageRetrieveOptions options)
 {
     _options = options;
 }