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); }
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); }
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(); }
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)); } } } }
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(); }