public void IfCanBeUpdatedIsFalseWhenCurrentVersionIsHigherThanServerVersionAndNotIsInstalled() { var package = new PackageVersion(); package.CurrentVersion = "0.5.5"; package.Serverversion = "0.5.2"; Assert.IsFalse(package.CanBeUpdated); }
public void IfCanBeUpdatedIsTrueWhenCurrentVersionNotEqualsServerVersionAndNotIsInstalled() { var package = new PackageVersion(); package.CurrentVersion = "0.5.2"; package.Serverversion = "0.5.4"; Assert.IsTrue(package.CanBeUpdated); }
public void PackageVersion(string package) { log.Info("Getting version of package: " + package); _packageVersion = new PackageVersion(); _package = package; _powershellAsync.Run("cver " + package + " -source " + _sourceService.Source); }
public void PackageVersion(string package) { this.Log().Info("Getting version of package: " + package); _packageVersion = new PackageVersion(); _package = package; OnStarted(); _powershellAsync.Run("cver " + package + " -source " + _sourceService.Source.Url); }
public void IfTwoClassesWithDifferentNamesAreNotEqual() { var package1 = new PackageVersion(); var package2 = new PackageVersion(); package1.Name = "test"; package2.Name = "test2"; Assert.IsFalse(package1.Equals(package2)); }
public void IfTwoClassesWithTheSameNameAreEqual() { var package1 = new PackageVersion(); var package2 = new PackageVersion(); package1.Name = "test"; package2.Name = "test"; Assert.IsTrue(package1.Equals(package2)); }
/// <summary> /// Shows the information of the _version field to /// the user. /// </summary> private void UpdatePanel(PackageVersion version) { this.Invoke(() => { _version = version; txtCopyrightInformation.Text = _version.CopyrightInformation; txtReleaseNotes.Text = _version.ReleaseNotes != null ? _version.ReleaseNotes.Replace("\n\t\n\t", Environment.NewLine) : ""; }); }
/// <summary> /// Called when the PackageVersionService that should be /// cached is returning a new PackageVersion. /// </summary> /// <param name="version"></param> private void OnUncachedVersionChanged(PackageVersion version) { this.Log().Debug("Run finished on uncached version"); if (_cachedVersions.ContainsKey(version.Name)) { _cachedVersions[version.Name] = new VersionAndCacheTime { Version = version, InvalidateCacheTime = DateTime.Now.AddMinutes(30) }; } else { _cachedVersions.Add(version.Name, new VersionAndCacheTime { Version = version, InvalidateCacheTime = DateTime.Now.AddMinutes(30) }); } OnVersionChanged(version); }
private PackageVersion ParseEntry(XmlNode entryNode, XmlNamespaceManager nsmgr) { var version = new PackageVersion(); if (entryNode == null) { version.Summary = strings.could_not_parse; version.Description = version.Summary; version.Serverversion = strings.not_available; return version; } version.Name = entryNode.SelectSingleNode("ns:title", nsmgr).InnerText; version.Summary = entryNode.SelectSingleNode("ns:summary", nsmgr).InnerText; version.AuthorName = entryNode.SelectSingleNode("ns:author/ns:name", nsmgr).InnerText; version.LastUpdatedAt = DateTime.Parse(entryNode.SelectSingleNode("ns:updated", nsmgr).InnerText); var properties = entryNode.SelectSingleNode("m:properties", nsmgr); if (properties != null) { var serverversion = properties.SelectSingleNode("d:Version", nsmgr); var copyrightInformation = properties.SelectSingleNode("d:Copyright", nsmgr); var createdAt = properties.SelectSingleNode("d:Created", nsmgr); var dependencies = properties.SelectSingleNode("d:Dependencies", nsmgr); var description = properties.SelectSingleNode("d:Description", nsmgr); var downloadCount = properties.SelectSingleNode("d:DownloadCount", nsmgr); var galleryDetailsUrl = properties.SelectSingleNode("d:GalleryDetailsUrl ", nsmgr); var iconUrl = properties.SelectSingleNode("d:IconUrl ", nsmgr); var isPrerelease = properties.SelectSingleNode("d:IsPrerelease", nsmgr); var language = properties.SelectSingleNode("d:Language", nsmgr); var publishedAt = properties.SelectSingleNode("d:Published", nsmgr); var licenseUrl = properties.SelectSingleNode("d:LicenseUrl", nsmgr); var packageSize = properties.SelectSingleNode("d:PackageSize", nsmgr); var projectUrl = properties.SelectSingleNode("d:ProjectUrl", nsmgr); var reportAbuseUrl = properties.SelectSingleNode("d:ReportAbuseUrl", nsmgr); var releaseNotes = properties.SelectSingleNode("d:ReleaseNotes", nsmgr); var requireLicenseAcceptance = properties.SelectSingleNode("d:RequireLicenseAcceptance", nsmgr); var tags = properties.SelectSingleNode("d:Tags", nsmgr); var versionDownloadCount = properties.SelectSingleNode("d:VersionDownloadCount", nsmgr); if (serverversion != null) version.Serverversion = serverversion.InnerText; if (copyrightInformation != null) version.CopyrightInformation = copyrightInformation.InnerText; if (createdAt != null) version.CreatedAt = DateTime.Parse(createdAt.InnerText); if (dependencies != null) version.Dependencies = _dependeciesFormatter.Execute(dependencies.InnerText); if (description != null) version.Description = description.InnerText.Replace("\n", "\r\n"); if (downloadCount != null) version.DownloadCount = int.Parse(downloadCount.InnerText); if (galleryDetailsUrl != null) version.GalleryDetailsUrl = galleryDetailsUrl.InnerText; if (iconUrl != null) version.IconUrl = iconUrl.InnerText; if (isPrerelease != null) version.IsPrerelease = bool.Parse(isPrerelease.InnerText); if (language != null) version.Language = language.InnerText; if (publishedAt != null) version.PublishedAt = DateTime.Parse(publishedAt.InnerText); if (licenseUrl != null) version.LicenseUrl = licenseUrl.InnerText; if (packageSize != null) version.PackageSize = UInt64.Parse(packageSize.InnerText); if (projectUrl != null) version.ProjectUrl = projectUrl.InnerText; if (reportAbuseUrl != null) version.ReportAbuseUrl = reportAbuseUrl.InnerText; if (releaseNotes != null) version.ReleaseNotes = releaseNotes.InnerText; if (requireLicenseAcceptance != null) version.RequireLicenseAcceptance = bool.Parse(requireLicenseAcceptance.InnerText); if (tags != null) version.Tags = tags.InnerText.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (versionDownloadCount != null) version.VersionDownloadCount = int.Parse(versionDownloadCount.InnerText); } return version; }
private void UpdateInstallUninstallButtonLabel(PackageVersion version) { this.Invoke(() => { _version = version; btnInstallUninstall.Checked = !_version.IsInstalled; btnInstallUninstall.Enabled = true; btnUpdate.Enabled = _version.CanBeUpdated; if (btnInstallUninstall.Checked) { btnInstallUninstall.ImageIndex = 0; btnInstallUninstall.Text = strings.install; btnInstallUninstall.AccessibleName = strings.install; btnInstallUninstall.AccessibleDescription = strings.install_long; } else { btnInstallUninstall.ImageIndex = 1; btnInstallUninstall.Text = strings.uninstall; btnInstallUninstall.AccessibleName = strings.uninstall; btnInstallUninstall.AccessibleDescription = strings.unsinstall_long; } }); }
private void VersionChangedHandler(PackageVersion version) { if(this.InvokeRequired) { Invoke(new PackageVersionHandler(VersionChangedHandler), new object[] { version }); } else { txtVersion.Text = ""; txtVersion.AppendText(version.Name + Environment.NewLine); txtVersion.Select(0, version.Name.Length); txtVersion.SelectionFont = new Font(txtVersion.SelectionFont.FontFamily, 12, FontStyle.Bold); txtVersion.AppendText("Current version: " + version.CurrentVersion + Environment.NewLine); txtVersion.AppendText("Version on the server: " + version.Serverversion + Environment.NewLine); btnUpdate.Enabled = version.CanBeUpdated; btnInstall.Enabled = !version.IsInstalled; ClearStatus(); lblStatus.Text = "Number of packages: " + PackageList.Items.Count; PackageList.Enabled = true; } }
public void IfIsInstalledReturnsTrueWhenCurrentVersionIsNotNoVersion() { var package = new PackageVersion(); package.CurrentVersion = "test"; Assert.IsTrue(package.IsInstalled); }
public void IfTwoClassesWithOneClassNotAPackageVersionAreNotEqual() { var package1 = new PackageVersion(); var package2 = new Object(); package1.Name = "test"; Assert.IsFalse(package1.Equals(package2)); }
/// <summary> /// Shows the information of the _version field to /// the user. /// </summary> private void UpdatePanel(PackageVersion version) { this.Invoke(() => { _version = version; ClearPanel(); lblName.Text = _version.Name; lblServerVersion.Text = _version.Serverversion; lblInstalledVersion.Text = _version.CurrentVersion; if (!string.IsNullOrEmpty(_version.AuthorName)) lblAuthor.Text = string.Format(strings.authored_by, _version.AuthorName); txtDescription.Text = _version.Description; if (!string.IsNullOrEmpty(_version.IconUrl)) { pictureBoxLogo.ImageLocation = _version.IconUrl; pictureBoxLogo.LoadAsync(); } else { pictureBoxLogo.Image = pictureBoxLogo.ErrorImage; } if (_version.IsCurrentVersionPreRelease) { var thisExe = Assembly.GetExecutingAssembly(); var file = thisExe.GetManifestResourceStream("Chocolatey.Explorer.Resources.monitorPre.png"); if (file != null) picInstalledVersion.Image = Image.FromStream(file); } else { var thisExe = Assembly.GetExecutingAssembly(); var file = thisExe.GetManifestResourceStream("Chocolatey.Explorer.Resources.monitor.png"); if (file != null) picInstalledVersion.Image = Image.FromStream(file); } if (_version.DownloadCount != 0) lblDownloads.Text = _version.DownloadCount.ToString(CultureInfo.InvariantCulture); if (_version.VersionDownloadCount != 0) lblVersionDownloads.Text = _version.VersionDownloadCount.ToString(CultureInfo.InvariantCulture); if (_version.LastUpdatedAt != DateTime.MinValue) lblUpdated.Text = _version.LastUpdatedAt.GetDateTimeFormats()[0]; if (_version.PackageSize != 0) lblPackageSize.Text = string.Format(strings.package_size_mb, (_version.PackageSize/1024.0)); tagList.Items.Clear(); if (_version.Tags != null) { foreach (var tag in _version.Tags) tagList.Items.Add("#" + tag); } dependenciesList.Items.Clear(); if (_version.Dependencies != null) { foreach (var dependency in _version.Dependencies) dependenciesList.Items.Add(dependency); } UnlockPanel(); }); }
private void VersionChanged(PackageVersion version) { this.Invoke(() => { Enabled = true; IsLoading = false; }); }
private void OnVersionChanged(PackageVersion version) { var handler = VersionChanged; if (handler != null) handler(version); }
private void VersionChangedHandler(PackageVersion version) { if (this.InvokeRequired) { Invoke(new PackageVersionHandler(VersionChangedHandler), new object[] { version }); } else { packageVersionPanel.Version = version; btnUpdate.Enabled = version.CanBeUpdated; btnInstallUninstall.Checked = !version.IsInstalled; btnInstallUninstall.Enabled = true; ClearStatus(); lblStatus.Text = string.Format(strings.num_packages, PackageGrid.Rows.Count); } }
private PackageVersion FillWithOData(string package) { string url = _sourceService.Source + "/Packages?$filter=IsLatestVersion eq true and Id eq '" + package + "'"; XmlDocument xmlDoc = new XmlDocument(); _loadingRssFeed = WebRequest.Create(url) as HttpWebRequest; _loadingRssFeed.Proxy = null; if (_loadingRssFeed != null) { Stream responseStream = null; try { responseStream = _loadingRssFeed.GetResponse().GetResponseStream(); xmlDoc.Load(responseStream); IList<PackageVersion> packages = _versionXmlParser.parse(xmlDoc); if (packages.Count() > 0) return packages.First(); } catch (XmlException) { } // when xml could not be parsed catch (WebException) { } // when loading xml from server failed finally { if (responseStream != null) responseStream.Close(); } } var packageVersion = new PackageVersion(); packageVersion.Summary = string.Format(strings.could_not_download, url); packageVersion.Description = packageVersion.Summary; return packageVersion; }
private Package PackageFromVersion(PackageVersion version) { this.Log().Debug("Get package from version: {0}", version); var highestPackage = _libDirHelper.GetHighestInstalledVersion(version.Name, false); return new Package { Name = version.Name, InstalledVersion = highestPackage == null?strings.not_available:highestPackage.InstalledVersion }; }
private PackageVersion FillWithOData(string package) { this.Log().Debug("Filling data for {0}", package); var url = _sourceService.Source.Url + "/Packages?$filter=IsLatestVersion eq true and Id eq '" + package + "'"; var xmlDoc = new XmlDocument(); _loadingRssFeed = WebRequest.Create(url) as HttpWebRequest; _loadingRssFeed.Proxy = null; if (_loadingRssFeed != null) { Stream responseStream = null; try { responseStream = _loadingRssFeed.GetResponse().GetResponseStream(); xmlDoc.Load(responseStream); var packages = _versionXmlParser.parse(xmlDoc); if (packages.Any()) return packages.First(); } catch (XmlException ex) { this.Log().Error("Message: {0} - Stacktrace: {1}", ex.Message, ex.StackTrace); } // when xml could not be parsed catch (WebException ex) { this.Log().Error("Message: {0} - Stacktrace: {1}", ex.Message, ex.StackTrace); } // when loading xml from server failed finally { if (responseStream != null) responseStream.Close(); } } var packageVersion = new PackageVersion {Summary = string.Format(strings.could_not_download, url)}; packageVersion.Description = packageVersion.Summary; return packageVersion; }
/// <summary> /// Shows the information of the _version field to /// the user. /// </summary> private void UpdatePanel(PackageVersion version) { this.Invoke(() => { _version = version; lblName.Text = _version.Name; lblServerVersion.Text = _version.Serverversion; lblInstalledVersion.Text = _version.CurrentVersion; txtPowershellOutput.Text = ""; if (!string.IsNullOrEmpty(_version.AuthorName)) lblAuthor.Text = string.Format(strings.authored_by, _version.AuthorName); if (_version.IsCurrentVersionPreRelease) { var thisExe = Assembly.GetExecutingAssembly(); var file = thisExe.GetManifestResourceStream("Chocolatey.Explorer.Resources.monitorPre.png"); if (file != null) picInstalledVersion.Image = Image.FromStream(file); } else { var thisExe = Assembly.GetExecutingAssembly(); var file = thisExe.GetManifestResourceStream("Chocolatey.Explorer.Resources.monitor.png"); if (file != null) picInstalledVersion.Image = Image.FromStream(file); } }); }
private void PackageVersionThread(CancellationToken cancelToken, string packageNameObj) { try { var packageName = packageNameObj as string; var packageVersion = FillWithOData(packageName); // not found on server - use what we know if (packageVersion == null) { packageVersion = new PackageVersion(); } cancelToken.ThrowIfCancellationRequested(); packageVersion.Name = packageName; packageVersion.CurrentVersion = _libDirHelper.GetHighestInstalledVersion(packageName); cancelToken.ThrowIfCancellationRequested(); OnVersionChanged(packageVersion); } catch (OperationCanceledException) { } // cancellation is expected and okay }
private void OnVersionChanged(PackageVersion version) { this.Log().Debug("Version changed: {0}", version); var handler = VersionChanged; if (handler != null) handler(version); }
private Package PackageFromVersion(PackageVersion version) { return new Package() { Name = version.Name, InstalledVersion = _libDirHelper.GetHighestInstalledVersion(version.Name, false) }; }
public void IfIsInstalledReturnsFalseWhenCurrentVersionIsNoVersion() { var package = new PackageVersion(); package.CurrentVersion = "no version"; Assert.IsFalse(package.IsInstalled); }
public bool Equals(PackageVersion other) { if (ReferenceEquals(null, other)) return false; return ReferenceEquals(this, other) || Equals(other.Name, Name); }
public void IfToStringReturnName() { var package = new PackageVersion(); package.Name = "test"; Assert.AreEqual("test", package.ToString()); }
private void VersionChangedHandler(PackageVersion version) { this.Invoke(EnableUserInteraction); }
public void GivesHashCodeOfName() { var package1 = new PackageVersion(); package1.Name = "test2"; Assert.AreEqual("test2".GetHashCode(), package1.GetHashCode()); }
private void VersionChangedHandler(PackageVersion version) { this.Invoke(() => { lblprogress.Text = ""; progressbar2.Visible = false; SetStatus(); }); }