コード例 #1
0
        private void DisplayPackages(int cookie, PackageQueryResult packages)
        {
            if (_cookie != cookie)
            {
                return;
            }

            _packageList.RestartPending = _restartPending;

            switch (_lastCategory)
            {
            case PackageCategory.Installed:
                _packageList.NoResultsText = Labels.NoPackagesInstalled;
                break;

            case PackageCategory.Online:
                _packageList.NoResultsText = Labels.NoPackagesAvailable;
                break;

            case PackageCategory.Updates:
                _packageList.NoResultsText = Labels.NoUpdatesAvailable;
                break;
            }

            _packageList.LoadPackages(packages, _lastCategory);

            SetLoading(false);
        }
コード例 #2
0
        private void DisplayPackages(int cookie, PackageQueryResult packages)
        {
            if (_cookie != cookie)
                return;

            _packageList.RestartPending = _restartPending;

            switch (_lastCategory)
            {
                case PackageCategory.Installed:
                    _packageList.NoResultsText = Labels.NoPackagesInstalled;
                    break;

                case PackageCategory.Online:
                    _packageList.NoResultsText = Labels.NoPackagesAvailable;
                    break;

                case PackageCategory.Updates:
                    _packageList.NoResultsText = Labels.NoUpdatesAvailable;
                    break;
            }

            _packageList.LoadPackages(packages, _lastCategory);

            SetLoading(false);
        }
コード例 #3
0
        public void LoadPackages(PackageQueryResult packages, PackageCategory category)
        {
            _packages.SuspendLayout();

            _packages.Controls.Clear();

            foreach (var package in packages.Packages)
            {
                var control = new PackageControl(package, category);

                _packages.Controls.Add(control);

                control.IsSelectedChanged += control_IsSelectedChanged;
                control.ButtonClick       += control_ButtonClick;
            }

            if (_packages.Controls.Count > 0)
            {
                ((PackageControl)_packages.Controls[0]).IsSelected = true;
            }

            _packages.ResumeLayout();

            _selectedPage = packages.Page;

            _pager.SuspendLayout();

            _leftButton.Visible  = packages.Page > 0;
            _rightButton.Visible = packages.Page < packages.PageCount - 1;

            int start = Math.Max(packages.Page - 2, 0);
            int end   = Math.Min(packages.PageCount - 1, start + 4);

            var buttons = new[]
            {
                _page1Button,
                _page2Button,
                _page3Button,
                _page4Button,
                _page5Button
            };

            int visibleCount = (end - start) + 1;

            for (int i = 0; i < 5; i++)
            {
                buttons[i].Visible = i < visibleCount;
            }

            for (int i = start, buttonIndex = 0; i <= end; i++, buttonIndex++)
            {
                buttons[buttonIndex].Font = packages.Page == i ? _boldFont : Font;
                buttons[buttonIndex].Text = (i + 1).ToString();
                buttons[buttonIndex].Tag  = i;
            }

            _pager.ResumeLayout();
        }
コード例 #4
0
ファイル: NiPackageManager.cs プロジェクト: vector-man/netide
        private void CreateNotifications(PackageQueryResult updates)
        {
            using (var key = Registry.CurrentUser.CreateSubKey(_env.RegistryRoot + "\\PackageManager"))
            {
                foreach (var update in updates.Packages)
                {
                    using (var packageKey = key.CreateSubKey(update.Id))
                    {
                        // Was this update dismissed already?

                        string lastDismissed = (string)packageKey.GetValue("LastDismissedUpdate");
                        if (lastDismissed == update.Version)
                        {
                            continue;
                        }

                        // Have we already reported this one?

                        DateTime reportedDate = DateTime.Now;

                        string lastReported = (string)packageKey.GetValue("LastReportedUpdate");
                        if (lastReported != null)
                        {
                            string[] parts = lastReported.Split(',').Select(p => p.Trim()).ToArray();
                            if (parts.Length == 2)
                            {
                                string lastReportedVersion = parts[0];

                                if (lastReportedVersion == update.Version)
                                {
                                    DateTime lastReportedDate;
                                    if (DateTime.TryParseExact(parts[1], "o", CultureInfo.InvariantCulture, DateTimeStyles.None, out lastReportedDate))
                                    {
                                        reportedDate = lastReportedDate;
                                    }
                                }
                            }
                        }

                        // Update the last reported update.

                        packageKey.SetValue("LastReportedUpdate", update.Version + ", " + reportedDate.ToString("o"));

                        // Create the notification.

                        int cookie;
                        ErrorUtil.ThrowOnFailure(_notificationManager.AddItem(
                                                     new NiNotificationItem
                        {
                            Subject  = String.Format(Labels.UpdateAvailable, update.Title),
                            Message  = update.Description,
                            Created  = reportedDate,
                            Priority = NiNotificationItemPriority.Informational
                        },
                                                     out cookie
                                                     ));

                        _notifications.Add(cookie, new Notification(update.Id, update.Version));
                    }
                }
            }
        }
コード例 #5
0
ファイル: PackageListControl.cs プロジェクト: netide/netide
        public void LoadPackages(PackageQueryResult packages, PackageCategory category)
        {
            _packages.SuspendLayout();

            _packages.Controls.Clear();

            foreach (var package in packages.Packages)
            {
                var control = new PackageControl(package, category);

                _packages.Controls.Add(control);

                control.IsSelectedChanged += control_IsSelectedChanged;
                control.ButtonClick += control_ButtonClick;
            }

            if (_packages.Controls.Count > 0)
                ((PackageControl)_packages.Controls[0]).IsSelected = true;

            _packages.ResumeLayout();

            _selectedPage = packages.Page;

            _pager.SuspendLayout();

            _leftButton.Visible = packages.Page > 0;
            _rightButton.Visible = packages.Page < packages.PageCount - 1;

            int start = Math.Max(packages.Page - 2, 0);
            int end = Math.Min(packages.PageCount - 1, start + 4);

            var buttons = new[]
            {
                _page1Button,
                _page2Button,
                _page3Button,
                _page4Button,
                _page5Button
            };

            int visibleCount = (end - start) + 1;

            for (int i = 0; i < 5; i++)
            {
                buttons[i].Visible = i < visibleCount;
            }

            for (int i = start, buttonIndex = 0; i <= end; i++, buttonIndex++)
            {
                buttons[buttonIndex].Font = packages.Page == i ? _boldFont : Font;
                buttons[buttonIndex].Text = (i + 1).ToString();
                buttons[buttonIndex].Tag = i;
            }

            _pager.ResumeLayout();
        }