ChocoPM.ViewModels.AvailablePackagesViewModel.AvailablePackagesViewModel C# (CSharp) Méthode

AvailablePackagesViewModel() public méthode

public AvailablePackagesViewModel ( IHomeViewModel parent ) : ChocoPM.Services
parent IHomeViewModel
Résultat ChocoPM.Services
        public AvailablePackagesViewModel(IHomeViewModel parent)
        {
            _parent = parent;
            _sortColumn = "DownloadCount";
            _sortDescending = true;
            _currentPage = 0;
            _pageSize = 50;
            _totalCount = _remoteService.Packages.Where(package => package.IsLatestVersion).LongCount();
            _pageCount = (int)(_totalCount / _pageSize);
            Packages = new ObservableCollection<PackageViewModel>();

            LoadPackages();

            var immediateProperties = new [] {
                "SortColumn", "SortDescending", "AllVersions", "Prerelease", "Match"
            };

            Observable.FromEventPattern<PropertyChangedEventArgs>(this, "PropertyChanged")
                .Where(e => e.EventArgs.PropertyName == "SearchQuery")
                .Throttle(TimeSpan.FromMilliseconds(500))
                .DistinctUntilChanged()
                .ObserveOnDispatcher()
                .Subscribe(e => LoadPackages());

            Observable.FromEventPattern<PropertyChangedEventArgs>(this, "PropertyChanged")
                .Where(e => immediateProperties.Contains(e.EventArgs.PropertyName))
                .ObserveOnDispatcher()
                .Subscribe(e => LoadPackages());


            Observable.FromEventPattern<PropertyChangedEventArgs>(this, "PropertyChanged")
                .Where(e => e.EventArgs.PropertyName == "CurrentPage")
                .Throttle(TimeSpan.FromMilliseconds(300))
                .DistinctUntilChanged()
                .ObserveOnDispatcher()
                .Subscribe(e => LoadPackages());

            SelectedPackage = null;
        }