示例#1
0
        /// <summary>
        /// Kontruktor
        /// </summary>
        /// <param name="Settings">Die lokalen Updateeinstellungen</param>
        /// <param name="Result">Das Suchresultat</param>
        /// <param name="Config">Die heruntergeladene Updatekonfiguration</param>
        /// <param name="changelogs">Die Changelogs</param>
        /// <param name="requestElevation">Gibt an, ob eine Elevation notwendig ist.</param>
        public updatePreviewDialog(UpdateSettings Settings, List <updatePackage> Result, updateConfiguration Config,
                                   changelogDictionary changelogs, bool requestElevation)
        {
            InitializeComponent();
            Font         = SystemFonts.MessageBoxFont;
            SizeChanged += UpdateDialog_SizeChanged;

            //Setze private Variablen
            m_settings   = Settings;
            m_result     = Result;
            m_config     = Config;
            m_changelogs = changelogs;

            //Setze Sprachstrings
            lblStatus.Text         = localizationHelper.Instance.controlText(lblStatus);
            btnCancel.Text         = localizationHelper.Instance.controlText(btnCancel);
            btnStartUpdate.Text    = localizationHelper.Instance.controlText(btnStartUpdate);
            lblCurrentVersion.Text = string.Format(localizationHelper.Instance.controlText(lblCurrentVersion),
                                                   Settings.releaseInfo.Version);

            if (Settings.releaseInfo.Type != releaseTypes.Final)
            {
                lblCurrentVersion.Text += string.Format(" ({0} {1})", Settings.releaseInfo.Type.ToString(),
                                                        Settings.releaseInfo.Step.ToString(CultureInfo.InvariantCulture));
            }

            if (Result.Count > 0)
            {
                lblNewestVersion.Text = string.Format(localizationHelper.Instance.controlText(lblNewestVersion),
                                                      Result[Result.Count - 1].releaseInfo.Version);
                if (Result[Result.Count - 1].releaseInfo.Type != releaseTypes.Final)
                {
                    lblNewestVersion.Text += string.Format(" ({0} {1})", Result[Result.Count - 1].releaseInfo.Type.ToString(),
                                                           Result[Result.Count - 1].releaseInfo.Step.ToString(CultureInfo.InvariantCulture));
                }
            }

            Text = m_config.applicationName;

            //Updatedetails erstellen
            buildUpdateDetails();

            //Setze vor den Start-Button ein Schild wenn der Benutzer nicht über Administratorrechte verfügt
            if (!IsAdmin() && Environment.OSVersion.Version.Major >= 6 && requestElevation)
            {
                SendMessage(new HandleRef(btnStartUpdate, btnStartUpdate.Handle), 0x160c, IntPtr.Zero, new IntPtr(1));
                btnStartUpdate.MinimumSize = new Size(
                    btnStartUpdate.Width + 20,                     //Etwas platz für das ShieldIcon schaffen
                    btnStartUpdate.MinimumSize.Height);
            }


            //Setze Anwendungsbild
            try {
                imgApp.Image = Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location).ToBitmap();
            }
            catch {
                imgApp.Image = SystemIcons.Application.ToBitmap();
            }
        }
		/// <summary>
		/// Kontruktor
		/// </summary>
		/// <param name="Settings">Die lokalen Updateeinstellungen</param>
		/// <param name="Result">Das Suchresultat</param>
		/// <param name="Config">Die heruntergeladene Updatekonfiguration</param>
		/// <param name="changelogs">Die Changelogs</param>
		/// <param name="requestElevation">Gibt an, ob eine Elevation notwendig ist.</param>
		public updatePreviewDialog(UpdateSettings Settings, List<updatePackage> Result, updateConfiguration Config,
		                           changelogDictionary changelogs, bool requestElevation) {
			InitializeComponent();

			//Systemschriftart ermitteln
			Font = SystemFonts.MessageBoxFont;

			//Initialisiere Events
			SizeChanged += UpdateDialog_SizeChanged;

			//Setze private Variablen
			m_settings = Settings;
			m_result = Result;
			m_config = Config;
			m_changelogs = changelogs;

			//Setze Sprachstrings
			lblStatus.Text = Language.GetString("UpdateForm_lblStatus_text");
			btnCancel.Text = Language.GetString("general_button_cancel");
			btnStartUpdate.Text = Language.GetString("UpdateForm_btnStartUpdate_text");
			lblCurrentVersion.Text = string.Format(Language.GetString("UpdateForm_lblCurrentVersion_text"),
			                                       Settings.releaseInfo.Version);

			if (Settings.releaseInfo.Type != releaseTypes.Final)
				lblCurrentVersion.Text += string.Format(" ({0} {1})", Settings.releaseInfo.Type.ToString(),
				                                        Settings.releaseInfo.Step.ToString());

			if (Result.Count > 0) {
				lblNewestVersion.Text = string.Format(Language.GetString("UpdateForm_lblNewestVersion_text"),
				                                      Result[Result.Count - 1].releaseInfo.Version);
				if (Result[Result.Count - 1].releaseInfo.Type != releaseTypes.Final) {
					lblNewestVersion.Text += string.Format(" ({0} {1})", Result[Result.Count - 1].releaseInfo.Type.ToString(),
					                                       Result[Result.Count - 1].releaseInfo.Step.ToString());
				}
			}

			Text = m_config.applicationName;

			//Updatedetails erstellen
			buildUpdateDetails();

			//Setze vor den Start-Button ein Schild wenn der Benutzer nicht über Administratorrechte verfügt
			if (!IsAdmin() && Environment.OSVersion.Version.Major >= 6 && requestElevation) {
				SendMessage(new HandleRef(btnStartUpdate, btnStartUpdate.Handle), 0x160c, IntPtr.Zero, new IntPtr(1));
				btnStartUpdate.MinimumSize = new Size(
					btnStartUpdate.Width + 20, //Etwas platz für das ShieldIcon schaffen
					btnStartUpdate.MinimumSize.Height);
			}


			//Setze Anwendungsbild
			try {
				imgApp.Image = Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location).ToBitmap();
			}
			catch {
				imgApp.Image = SystemIcons.Application.ToBitmap();
			}
		}
 private void downloadChangelogs()
 {
     correspondingChangelogs = new changelogDictionary();
     foreach (updatePackage package in foundUpdates)
     {
         //Changelog herunterladen
         byte[] rawChangelogData = webclient.DownloadData(string.Format("{0}{1}",
                                                                        internalHelper.prepareUpdateLocation(
                                                                            _controllerInstance.updateLocation, "updates"),
                                                                        package.getChangelogFilename()));
         using (var msXmlStream = new MemoryStream(rawChangelogData)) {
             var xmlChangelog = new XmlDocument();
             xmlChangelog.Load(msXmlStream);
             correspondingChangelogs.Add(new enhancedVersion(package.releaseInfo, package.TargetArchitecture),
                                         new changelogDocument(xmlChangelog));
         }
     }
 }
示例#4
0
        private void bgwSearch_DoWork(object sender, DoWorkEventArgs e)
        {
            try {
                /*Internal.Search.Provider provider = new updateSystemDotNet.Internal.Search.Provider((UpdateSettings)e.Argument);
                 * provider.Search();
                 * m_config = provider.Configuration;
                 * e.Result = provider.Result;
                 * m_changelog = provider.Changelogs;*/
                var sProvider = new searchProvider(_controller);
                sProvider.executeSearch();

                var s = new ScheduledStart(_controller.projectId, _controller.updateCheckInterval,
                                           _controller.customUpdateCheckInterval);
                s.WriteCurrentDate();

                m_config    = sProvider.currentConfiguration;
                m_changelog = sProvider.correspondingChangelogs;
                e.Result    = sProvider.foundUpdates;
            }
            catch (Exception ex) {
                e.Result = ex;
            }
        }
示例#5
0
		/// <summary>
		/// Initialisiert eine neue Instanz des <see cref="UpdateResult"/>.
		/// </summary>
		/// <param name="Result">Das Suchresultat</param>
		/// <param name="Configuration">Die heruntergeladene Updatekonfiguration</param>
		/// <param name="changelogs">Ein Dictionary mit den Heruntergeladenen Changelogs.</param>
		public UpdateResult(List<updatePackage> Result, updateConfiguration Configuration, changelogDictionary changelogs) {
			m_newUpdates = Result;
			m_config = Configuration;
			Changelogs = changelogs;
		}
示例#6
0
		private void downloadChangelogs() {
			correspondingChangelogs = new changelogDictionary();
			foreach (updatePackage package in foundUpdates) {
				//Changelog herunterladen
				byte[] rawChangelogData = webclient.DownloadData(string.Format("{0}{1}",
				                                                               internalHelper.prepareUpdateLocation(
				                                                               	_controllerInstance.updateLocation, "updates"),
				                                                               package.getChangelogFilename()));
				using (var msXmlStream = new MemoryStream(rawChangelogData)) {
					var xmlChangelog = new XmlDocument();
					xmlChangelog.Load(msXmlStream);
					correspondingChangelogs.Add(new enhancedVersion(package.releaseInfo, package.TargetArchitecture),
					                            new changelogDocument(xmlChangelog));
				}
			}
		}
		private void bgwSearch_DoWork(object sender, DoWorkEventArgs e) {
			try {
				/*Internal.Search.Provider provider = new updateSystemDotNet.Internal.Search.Provider((UpdateSettings)e.Argument);
				provider.Search();
				m_config = provider.Configuration;
				e.Result = provider.Result;
				m_changelog = provider.Changelogs;*/
				var sProvider = new searchProvider(_controller);
				sProvider.executeSearch();

				var s = new ScheduledStart(_controller.projectId, _controller.updateCheckInterval,
				                           _controller.customUpdateCheckInterval);
				s.WriteCurrentDate();

				m_config = sProvider.currentConfiguration;
				m_changelog = sProvider.correspondingChangelogs;
				e.Result = sProvider.foundUpdates;
			}
			catch (Exception ex) {
				e.Result = ex;
			}
		}
 /// <summary>
 /// Initialisiert eine neue Instanz des <see cref="UpdateResult"/>.
 /// </summary>
 /// <param name="Result">Das Suchresultat</param>
 /// <param name="Configuration">Die heruntergeladene Updatekonfiguration</param>
 /// <param name="changelogs">Ein Dictionary mit den Heruntergeladenen Changelogs.</param>
 public UpdateResult(List <updatePackage> Result, updateConfiguration Configuration, changelogDictionary changelogs)
 {
     m_newUpdates = Result;
     m_config     = Configuration;
     Changelogs   = changelogs;
 }