Ejemplo n.º 1
0
        public void CanGetHighestVersion()
        {
            var versionArray = new[]
            { "1.0.0.0", "1.1.0.0", "1.2.0.0a1", "1.3.0.0b1", "1.2.0.0b3", "1.3.0.0b3", "1.3.0.1b97", "1.1.1.0" };
            var versions = versionArray.Select(entry => new UpdateVersion(entry)).ToList();

            Assert.AreEqual("1.3.0.1b97", UpdateVersion.GetHighestUpdateVersion(versions).ToString());
        }
Ejemplo n.º 2
0
        public ChangelogViewModel(UpdateManager manager)
        {
            UpdateManager = manager;

            DoInstall = new RelayCommand(o => DoInstall_Execute(), o => true);
            Abort     = new RelayCommand(o => Abort_Execute(), o => true);

            LocProperties = LocalizationHelper.GetLocalizationProperties(UpdateManager.LanguageCulture,
                                                                         UpdateManager.CultureFilePaths);


            Header = string.Format(
                UpdateManager.PackageConfigurations.Count() > 1
                    ? LocProperties.NewUpdateDialogMultipleUpdatesHeader
                    : LocProperties.NewUpdateDialogSingleUpdateHeader, UpdateManager.PackageConfigurations.Count());

            WindowIcon  = GetIcon(_appIcon);
            WindowTitle = string.Format(LocProperties.NewUpdateDialogSingleUpdateHeader,
                                        UpdateManager.PackageConfigurations.Count());

            InfoText = string.Format(LocProperties.NewUpdateDialogInfoText, Application.ProductName);
            var availableVersions =
                UpdateManager.PackageConfigurations.Select(item => new UpdateVersion(item.LiteralVersion)).ToArray();

            AviableVersionText = string.Format(LocProperties.NewUpdateDialogAvailableVersionsText,
                                               UpdateManager.PackageConfigurations.Count() <= 2
                    ? string.Join(", ", availableVersions.Select(item => item.FullText))
                    : $"{UpdateVersion.GetLowestUpdateVersion(availableVersions).FullText} - {UpdateVersion.GetHighestUpdateVersion(availableVersions).FullText}");
            CurrentVersionText = string.Format(LocProperties.NewUpdateDialogCurrentVersionText,
                                               UpdateManager.CurrentVersion.FullText);

            var size = SizeHelper.ConvertSize((long)UpdateManager.TotalSize);

            UpdateSizeText = $"{string.Format(LocProperties.NewUpdateDialogSizeText, size)}";

            foreach (var updateConfiguration in UpdateManager.PackageConfigurations)
            {
                var versionText   = new UpdateVersion(updateConfiguration.LiteralVersion).FullText;
                var changelogText = updateConfiguration.Changelog.ContainsKey(UpdateManager.LanguageCulture)
                    ? updateConfiguration.Changelog.First(item => Equals(item.Key, UpdateManager.LanguageCulture)).Value
                    : updateConfiguration.Changelog.First(item => item.Key.Name == "en").Value;

                ChangelogText +=
                    string.Format(string.IsNullOrEmpty(ChangelogText) ? "{0}:\n{1}" : "\n\n{0}:\n{1}",
                                  versionText, changelogText);
            }

            if (OperationAreas == null || OperationAreas.Count == 0)
            {
                AccessesText = $"{LocProperties.NewUpdateDialogAccessText} -";
                return;
            }

            AccessesText =
                $"{LocProperties.NewUpdateDialogAccessText} {string.Join(", ", LocalizationHelper.GetLocalizedEnumerationValues(LocProperties, OperationAreas.Cast<object>().GroupBy(item => item).Select(item => item.First()).ToArray()))}";
        }
Ejemplo n.º 3
0
        private void NewUpdateDialog_Load(object sender, EventArgs e)
        {
            _lp = LocalizationHelper.GetLocalizationProperties(UpdateManager.LanguageCulture,
                                                               UpdateManager.CultureFilePaths);

            headerLabel.Text =
                string.Format(
                    UpdateManager.PackageConfigurations.Count() > 1
                        ? _lp.NewUpdateDialogMultipleUpdatesHeader
                        : _lp.NewUpdateDialogSingleUpdateHeader, UpdateManager.PackageConfigurations.Count());
            infoLabel.Text = string.Format(_lp.NewUpdateDialogInfoText, Application.ProductName);
            var availableVersions =
                UpdateManager.PackageConfigurations.Select(item => new UpdateVersion(item.LiteralVersion)).ToArray();

            newestVersionLabel.Text = string.Format(_lp.NewUpdateDialogAvailableVersionsText,
                                                    UpdateManager.PackageConfigurations.Count() <= 2
                    ? string.Join(", ", availableVersions.Select(item => item.FullText))
                    : $"{UpdateVersion.GetLowestUpdateVersion(availableVersions).FullText} - {UpdateVersion.GetHighestUpdateVersion(availableVersions).FullText}");
            currentVersionLabel.Text = string.Format(_lp.NewUpdateDialogCurrentVersionText,
                                                     UpdateManager.CurrentVersion.FullText);
            changelogLabel.Text = _lp.NewUpdateDialogChangelogText;
            cancelButton.Text   = _lp.CancelButtonText;
            installButton.Text  = _lp.InstallButtonText;

            var size = SizeHelper.ConvertSize((long)UpdateManager.TotalSize);

            updateSizeLabel.Text = $"{string.Format(_lp.NewUpdateDialogSizeText, size)}";

            Icon = _appIcon;
            Text = Application.ProductName;
            iconPictureBox.Image = _appIcon.ToBitmap();
            iconPictureBox.BackgroundImageLayout = ImageLayout.Center;

            foreach (var updateConfiguration in UpdateManager.PackageConfigurations)
            {
                var versionText   = new UpdateVersion(updateConfiguration.LiteralVersion).FullText;
                var changelogText = updateConfiguration.Changelog.ContainsKey(UpdateManager.LanguageCulture)
                    ? updateConfiguration.Changelog.First(item => Equals(item.Key, UpdateManager.LanguageCulture)).Value
                    : updateConfiguration.Changelog.First(item => item.Key.Name == "en").Value;

                changelogTextBox.Text +=
                    string.Format(string.IsNullOrEmpty(changelogTextBox.Text) ? "{0}:\n{1}" : "\n\n{0}:\n{1}",
                                  versionText, changelogText);
            }

            AddShieldToButton(installButton);

            if (OperationAreas == null || OperationAreas.Count == 0)
            {
                accessLabel.Text = $"{_lp.NewUpdateDialogAccessText} -";
                _allowCancel     = true;
                return;
            }

            accessLabel.Text =
                $"{_lp.NewUpdateDialogAccessText} {string.Join(", ", LocalizationHelper.GetLocalizedEnumerationValues(_lp, OperationAreas.Cast<object>().GroupBy(item => item).Select(item => item.First()).ToArray()))}";
            _allowCancel = true;
        }
Ejemplo n.º 4
0
        private void NewUpdateDialog_Load(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(LanguageFilePath))
            {
                try
                {
                    _lp = Serializer.Deserialize <LocalizationProperties>(File.ReadAllText(LanguageFilePath));
                }
                catch (Exception)
                {
                    _lp = new LocalizationProperties();
                }
            }
            else if (String.IsNullOrEmpty(LanguageFilePath) && LanguageName != "en")
            {
                string resourceName = String.Format("nUpdate.Core.Localization.{0}.json", LanguageName);
                using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
                {
                    _lp = Serializer.Deserialize <LocalizationProperties>(stream);
                }
            }
            else if (String.IsNullOrEmpty(LanguageFilePath) && LanguageName == "en")
            {
                _lp = new LocalizationProperties();
            }

            headerLabel.Text = String.Format(PackageConfigurations.Count() > 1 ? _lp.NewUpdateDialogMultipleUpdatesHeader : _lp.NewUpdateDialogSingleUpdateHeader, PackageConfigurations.Count());
            infoLabel.Text   = String.Format(_lp.NewUpdateDialogInfoText, Application.ProductName);
            var availableVersions = PackageConfigurations.Select(item => new UpdateVersion(item.LiteralVersion)).ToArray();

            newestVersionLabel.Text  = String.Format(_lp.NewUpdateDialogAvailableVersionsText, PackageConfigurations.Count() <= 2 ? String.Join(", ", availableVersions.Select(item => item.FullText)) : String.Format("{0} - {1}", UpdateVersion.GetLowestUpdateVersion(availableVersions).FullText, UpdateVersion.GetHighestUpdateVersion(availableVersions).FullText));
            currentVersionLabel.Text = String.Format(_lp.NewUpdateDialogCurrentVersionText, CurrentVersion.FullText);
            changelogLabel.Text      = _lp.NewUpdateDialogChangelogText;
            cancelButton.Text        = _lp.CancelButtonText;
            installButton.Text       = _lp.InstallButtonText;

            var size = SizeHelper.ConvertSize(PackageSize);

            updateSizeLabel.Text = String.Format("{0} {1}",
                                                 String.Format(_lp.NewUpdateDialogSizeText, size.Item1), size.Item2);

            Icon = _appIcon;
            Text = Application.ProductName;
            iconPictureBox.Image = _appIcon.ToBitmap();
            iconPictureBox.BackgroundImageLayout = ImageLayout.Center;

            foreach (var updateConfiguration in PackageConfigurations)
            {
                var versionText   = new UpdateVersion(updateConfiguration.LiteralVersion).FullText;
                var changelogText = updateConfiguration.Changelog.ContainsKey(new CultureInfo(LanguageName)) ? updateConfiguration.Changelog.First(item => item.Key.Name == LanguageName).Value :
                                    updateConfiguration.Changelog.First(item => item.Key.Name == "en").Value;

                if (PackageSize > GB)
                {
                    changelogTextBox.Text += _lp.NewUpdateDialogBigPackageWarning;
                }

                changelogTextBox.Text +=
                    String.Format(String.IsNullOrEmpty(changelogTextBox.Text) ? "{0}:\n{1}" : "\n\n{0}:\n{1}",
                                  versionText, changelogText);
            }
            AddShieldToButton(installButton);

            if (OperationAreas == null || OperationAreas.Count == 0)
            {
                accessLabel.Text = String.Format("{0} -", _lp.NewUpdateDialogAccessText);
                _allowCancel     = true;
                return;
            }

            accessLabel.Text = String.Format("{0} {1}", _lp.NewUpdateDialogAccessText,
                                             String.Join(", ",
                                                         LocalizationHelper.GetLocalizedEnumerationValues(_lp, OperationAreas.Cast <object>().GroupBy(item => item).Select(item => item.First()).ToArray())));
            _allowCancel = true;
        }