Пример #1
0
        public Login(PackageManagerClientViewModel viewModel)
        {
            this.DataContext = viewModel;
            this._viewModel  = viewModel;

            InitializeComponent();
        }
Пример #2
0
 /// <summary>
 ///     The class constructor.
 /// </summary>
 public PackageManagerSearchViewModel(PackageManagerClientViewModel client) : this()
 {
     this.PackageManagerClientViewModel = client;
     PackageManagerClientViewModel.Downloads.CollectionChanged += DownloadsOnCollectionChanged;
     PackageManagerClientViewModel.PackageManagerExtension.PackageLoader.ConflictingCustomNodePackageLoaded +=
         ConflictingCustomNodePackageLoaded;
 }
Пример #3
0
        /// <summary>
        ///     Performs a search using the given string as query, but does not update
        ///     the SearchResults object.
        /// </summary>
        /// <returns> Returns a list with a maximum MaxNumSearchResults elements.</returns>
        /// <param name="search"> The search query </param>
        internal List <PackageManagerSearchElementViewModel> SearchOnline(string search)
        {
            bool emptySearch = false;

            if (search == "")
            {
                search      = "dyn*";
                emptySearch = true;
            }
            else
            {
                search = String.Join("* ", search.Split(' ')) + "*"; // append wild card to each search
            }

            var results =
                PackageManagerClientViewModel.Search(search, MaxNumSearchResults)
                .Select(x => new PackageManagerSearchElementViewModel(x)).ToList();

            if (emptySearch)
            {
                Sort(results, this.SortingKey);
            }

            return(results);
        }
Пример #4
0
        /// <summary>
        /// Attempts to obtain the list of search results.  If it fails, it does nothing
        /// </summary>
        public void Refresh()
        {
            var pkgs = PackageManagerClientViewModel.ListAll();

            pkgs.Sort((e1, e2) => e1.Name.ToLower().CompareTo(e2.Name.ToLower()));
            LastSync = pkgs;

            SearchDictionary = new SearchDictionary <PackageManagerSearchElement>();

            foreach (var pkg in pkgs)
            {
                SearchDictionary.Add(pkg, pkg.Name);
                SearchDictionary.Add(pkg, pkg.Description);
                SearchDictionary.Add(pkg, pkg.Maintainers);
                SearchDictionary.Add(pkg, pkg.Keywords);
            }
        }
Пример #5
0
        /// <summary>
        ///     The class constructor.
        /// </summary>
        public PackageManagerSearchViewModel(PackageManagerClientViewModel client)
        {
            this.PackageManagerClientViewModel = client;

            SearchResults              = new ObservableCollection <PackageManagerSearchElement>();
            MaxNumSearchResults        = 35;
            SearchDictionary           = new SearchDictionary <PackageManagerSearchElement>();
            ClearCompletedCommand      = new DelegateCommand(ClearCompleted, CanClearCompleted);
            SortCommand                = new DelegateCommand(Sort, CanSort);
            SetSortingKeyCommand       = new DelegateCommand <object>(SetSortingKey, CanSetSortingKey);
            SetSortingDirectionCommand = new DelegateCommand <object>(SetSortingDirection, CanSetSortingDirection);
            PackageManagerClientViewModel.Downloads.CollectionChanged += DownloadsOnCollectionChanged;
            SearchResults.CollectionChanged += SearchResultsOnCollectionChanged;
            SearchText       = "";
            SortingKey       = PackageSortingKey.LAST_UPDATE;
            SortingDirection = PackageSortingDirection.ASCENDING;
        }
Пример #6
0
 public void ClearCompleted()
 {
     PackageManagerClientViewModel.ClearCompletedDownloads();
 }
 /// <summary>
 ///     The class constructor.
 /// </summary>
 public PackageManagerSearchViewModel(PackageManagerClientViewModel client) : this()
 {
     this.PackageManagerClientViewModel = client;
     PackageManagerClientViewModel.Downloads.CollectionChanged += DownloadsOnCollectionChanged;
 }
 /// <summary>
 ///     The class constructor.
 /// </summary>
 public PackageManagerSearchViewModel(PackageManagerClientViewModel client) : this()
 {
     PackageManagerClientViewModel = client;
     HostFilter = InitializeHostFilter();
 }
Пример #9
0
        public void PackageManagerConflictsWithStdLib()
        {
            var pkgLoader = GetPackageLoader();

            pkgLoader.StandardLibraryDirectory = StandardLibraryTestDirectory;

            // Load a std lib package
            var stdPackageLocation = Path.Combine(StandardLibraryTestDirectory, "SignedPackage2");

            pkgLoader.ScanPackageDirectory(stdPackageLocation);

            var stdLibPkg = pkgLoader.LocalPackages.Where(x => x.Name == "SignedPackage").FirstOrDefault();

            Assert.IsNotNull(stdLibPkg);

            // Simulate the user downloading the same package from PM
            var mockGreg = new Mock <IGregClient>();

            mockGreg.Setup(x => x.Execute(It.IsAny <PackageDownload>())).Throws(new Exception("Failed to get your package!"));

            var client = new Dynamo.PackageManager.PackageManagerClient(mockGreg.Object, MockMaker.Empty <IPackageUploadBuilder>(), string.Empty);
            var pmVm   = new PackageManagerClientViewModel(ViewModel, client);

            var dlgMock = new Mock <MessageBoxService.IMessageBox>();

            dlgMock.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.Is <MessageBoxButton>(x => x == MessageBoxButton.OKCancel || x == MessageBoxButton.OK), It.IsAny <MessageBoxImage>()))
            .Returns(MessageBoxResult.OK);
            MessageBoxService.OverrideMessageBoxDuringTests(dlgMock.Object);

            //
            // 1. User downloads the exact version of a std lib package
            //
            {
                var id   = "test-123";
                var deps = new List <Dependency>()
                {
                    new Dependency()
                    {
                        _id = id, name = stdLibPkg.Name
                    }
                };
                var depVers = new List <string>()
                {
                    stdLibPkg.VersionName
                };

                mockGreg.Setup(m => m.ExecuteAndDeserializeWithContent <PackageVersion>(It.IsAny <Request>()))
                .Returns(new ResponseWithContentBody <PackageVersion>()
                {
                    content = new PackageVersion()
                    {
                        version                  = stdLibPkg.VersionName,
                        engine_version           = stdLibPkg.EngineVersion,
                        name                     = stdLibPkg.Name,
                        id                       = id,
                        full_dependency_ids      = deps,
                        full_dependency_versions = depVers
                    },
                    success = true
                });

                var pkgInfo = new Dynamo.Graph.Workspaces.PackageInfo(stdLibPkg.Name, VersionUtilities.PartialParse(stdLibPkg.VersionName));
                pmVm.DownloadAndInstallPackage(pkgInfo);

                // Users should get 2 warnings :
                // 1. To confirm that they want to download the specified package.
                // 2. That a package with the same name and version already exists as part of the Standard Library.
                dlgMock.Verify(x => x.Show(It.IsAny <string>(), It.IsAny <string>(),
                                           It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>()), Times.Exactly(2));
                dlgMock.ResetCalls();
            }

            //
            // 2. User downloads a different version of a std lib package
            //
            {
                var id   = "test-234";
                var deps = new List <Dependency>()
                {
                    new Dependency()
                    {
                        _id = id, name = stdLibPkg.Name
                    }
                };
                var stdLibPkgVers = VersionUtilities.PartialParse(stdLibPkg.VersionName);
                var newPkgVers    = new Version(stdLibPkgVers.Major + 1, stdLibPkgVers.Minor, stdLibPkgVers.Build);

                var depVers = new List <string>()
                {
                    newPkgVers.ToString()
                };

                mockGreg.Setup(m => m.ExecuteAndDeserializeWithContent <PackageVersion>(It.IsAny <Request>()))
                .Returns(new ResponseWithContentBody <PackageVersion>()
                {
                    content = new PackageVersion()
                    {
                        version                  = newPkgVers.ToString(),
                        engine_version           = stdLibPkg.EngineVersion,
                        name                     = stdLibPkg.Name,
                        id                       = id,
                        full_dependency_ids      = deps,
                        full_dependency_versions = depVers
                    },
                    success = true
                });

                var pkgInfo = new Dynamo.Graph.Workspaces.PackageInfo(stdLibPkg.Name, newPkgVers);
                pmVm.DownloadAndInstallPackage(pkgInfo);

                // Users should get 2 warnings :
                // 1. To confirm that they want to download the specified package.
                // 2. That a package with a different version already exists as part of the Standard Library.
                dlgMock.Verify(x => x.Show(It.IsAny <string>(), It.IsAny <string>(),
                                           It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>()), Times.Exactly(2));
                dlgMock.ResetCalls();
            }

            //
            // 3. User downloads a package that is not part of a std lib package
            //
            {
                var id   = "test-345";
                var deps = new List <Dependency>()
                {
                    new Dependency()
                    {
                        _id = id, name = "non-std-libg"
                    }
                };
                var pkgVersion = new Version(1, 0, 0);
                var depVers    = new List <string>()
                {
                    pkgVersion.ToString()
                };

                mockGreg.Setup(m => m.ExecuteAndDeserializeWithContent <PackageVersion>(It.IsAny <Request>()))
                .Returns(new ResponseWithContentBody <PackageVersion>()
                {
                    content = new PackageVersion()
                    {
                        version                  = pkgVersion.ToString(),
                        engine_version           = stdLibPkg.EngineVersion,
                        name                     = "non-std-libg",
                        id                       = id,
                        full_dependency_ids      = deps,
                        full_dependency_versions = depVers
                    },
                    success = true
                });

                var pkgInfo = new Dynamo.Graph.Workspaces.PackageInfo("Non-stdlib-package", new Version(1, 0, 0));
                pmVm.DownloadAndInstallPackage(pkgInfo);

                // Users should get 1 warning :
                // 1. To confirm that they want to download the specified package.
                dlgMock.Verify(x => x.Show(It.IsAny <string>(), It.IsAny <string>(),
                                           It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>()), Times.Exactly(1));
                dlgMock.ResetCalls();
            }
        }