void CheckForUpdates() { if (task == null || task.Status != TaskStatus.Running) { var container = TinyIoCContainer.Current; IResourceProvider resource = container.Resolve <IResourceProvider>(ContainerNSR.RESOURCE_PROVIDER); IConfigProvider config = container.Resolve <IConfigProvider>(ContainerNSR.APP_SETTINGS); ServiceUpdater updater = new ServiceUpdater(); IWebProxy proxy = null; if (config.EnableProxy) { proxy = new System.Net.WebProxy(config.Host, config.Port); if (config.EnableCredentials) { proxy.Credentials = new System.Net.NetworkCredential(config.User, config.Password, config.Domain); } } System.Version currentVersion = Utility.GetVersionInfo(this.GetType().Assembly); task = Task.Factory.StartNew(() => { ServiceUpdater.VersionInfo version = updater.GetMetaInfoVersion(resource.VersionCheckUri.ToString()); return(version); }).ContinueWith((o) => { if (o.Status != TaskStatus.Faulted) { System.Version latestVersion = o.Result.LatestVersion; bool isVersionUpToDate = latestVersion <= currentVersion; VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { Version = latestVersion }; if (isVersionUpToDate == false) { OnNewVersionFoundEvent(this, eventArgs); } else { OnVersionUpToDateEvent(this, eventArgs); } } else { VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { ErrorMessage = o.Exception.Message }; OnNetworkErrorEvent(this, eventArgs); } }); } }
public void VersionMismatch(object sender, VersionCheckEventArgs e) { if (OnVersionMismatch != null) { OnVersionMismatch(sender, e); } }
private void OnVersionUpToDateEvent(object sender, EventArgs e) { VersionCheckEventArgs eventArgs = (VersionCheckEventArgs)e; var container = TinyIoCContainer.Current; IDialogMessage service = container.Resolve <IDialogMessage>(ContainerNSR.DLG_OPEN_MESSAGE); RootDispatcher.Dispatcher.Invoke((Action) delegate { service.ShowMessage(String.Format("Version {0} is up to date", eventArgs.Version), "Version information"); }); }
public virtual bool IsVersionUptoDate() { System.Version currentVersion = GetCurrentVersion(); if (task == null || task.Status != TaskStatus.Running) { task = Task.Factory.StartNew(() => { Version version = GetLatestVersion(); return(version); }).ContinueWith((o) => { if (o.Status != TaskStatus.Faulted) { System.Version latestVersion = o.Result; bool isVersionUpToDate = latestVersion <= currentVersion; VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { Version = latestVersion }; if (isVersionUpToDate == false) { System.Diagnostics.Debug.WriteLine("new version found"); TriggerSafeEvent(NewVersionFoundEvent, new MessageEventArgs { Message = string.Format("New version of plugin found: {0}", latestVersion.ToString()) }); } else { System.Diagnostics.Debug.WriteLine("version is up to date"); TriggerSafeEvent(VersionUpToDateEvent, new MessageEventArgs { Message = string.Format("version is up to date: {0}", currentVersion.ToString()) }); } } else { System.Diagnostics.Debug.WriteLine(o.Exception.Message); TriggerSafeEvent(NetworkErrorEvent, new MessageEventArgs { Message = string.Format(o.Exception.Message) }); //Service_NetworkErrorEvent(this, eventArgs); } }); } return(true); }
private void OnNetworkErrorEvent(object sender, EventArgs e) { VersionCheckEventArgs eventArgs = (VersionCheckEventArgs)e; var container = TinyIoCContainer.Current; IDialogMessage service = container.Resolve <IDialogMessage>(ContainerNSR.DLG_OPEN_MESSAGE); RootDispatcher.Dispatcher.Invoke((Action) delegate { service.ShowMessage(eventArgs.ErrorMessage, "Network error"); }); }
public void CheckForUpdates(Version version, Assembly assembly) { ServiceUpdater updater = new ServiceUpdater(Proxy); try { ServiceUpdater.VersionInfo latestVersionInfo = updater.GetMetaInfoVersion(Uri.AbsoluteUri); if (latestVersionInfo != null) { Version productVersion = new Version(FileVersionInfo.GetVersionInfo(assembly.Location).ProductVersion); //Version productVersion = Utils.Utility.GetProductVersion(); bool isVersionUpToDate = latestVersionInfo.LatestVersion <= productVersion; VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { Version = latestVersionInfo.LatestVersion }; if (isVersionUpToDate == false) { System.Diagnostics.Debug.WriteLine("New version found: " + eventArgs.Version.ToString()); if (NewVersionFoundEvent != null) { NewVersionFoundEvent(this, eventArgs); } } else { System.Diagnostics.Debug.WriteLine("Version is up to date: " + eventArgs.Version.ToString()); if (VersionUpToDateEvent != null) { VersionUpToDateEvent(this, eventArgs); } } } } catch (Exception e) { VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { ErrorMessage = e.Message }; if (NetworkErrorEvent != null) { NetworkErrorEvent(this, eventArgs); } } }
void Service_NewVersionFoundEvent(object sender, System.EventArgs e) { VersionCheckEventArgs eventArgs = (VersionCheckEventArgs)e; var container = TinyIoCContainer.Current; IDialogMessage service = container.Resolve <IDialogMessage>(ContainerNSR.DLG_OPEN_MESSAGE); MSG_RESPONSE response = MSG_RESPONSE.CANCEL; RootDispatcher.Dispatcher.Invoke(() => { response = service.ShowMessage(string.Format("A new version ( {0} ) is available. Do you want to download it?", eventArgs.Version), "Version information", true); if (response == MSG_RESPONSE.OK) { if (RequestHomepageEvent != null) { RequestHomepageEvent(sender, e); } } }); }
void CheckForUpdates() { var container = TinyIoCContainer.Current; IResourceProvider resource = container.Resolve <IResourceProvider>(ContainerNSR.RESOURCE_PROVIDER); IConfigProvider config = container.Resolve <IConfigProvider>(ContainerNSR.APP_SETTINGS); ServiceUpdater updater = new ServiceUpdater(); IWebProxy proxy = null; if (config.EnableProxy) { proxy = new System.Net.WebProxy(config.Host, config.Port); if (config.EnableCredentials) { proxy.Credentials = new System.Net.NetworkCredential(config.User, config.Password, config.Domain); } } System.Version currentVersion = Utility.GetVersionInfo(this.GetType().Assembly); Task.Factory.StartNew(() => { ServiceUpdater.VersionInfo version = updater.GetMetaInfoVersion(resource.VersionCheckUri.ToString()); return(version); }).ContinueWith((o) => { if (o.Status != TaskStatus.Faulted) { System.Version latestVersion = o.Result.LatestVersion; bool isVersionUpToDate = latestVersion <= currentVersion; VersionCheckEventArgs eventArgs = new VersionCheckEventArgs { Version = latestVersion }; if (isVersionUpToDate == false) { System.Diagnostics.Debug.WriteLine("New version found: " + eventArgs.Version.ToString()); IDialogMessage service = container.Resolve <IDialogMessage>(ContainerNSR.DLG_OPEN_MESSAGE); MSG_RESPONSE response = MSG_RESPONSE.CANCEL; RootDispatcher.Dispatcher.Invoke((System.Action) delegate { response = service.ShowMessage(String.Format("A new version ( {0} ) is available. Do you want to download it?", eventArgs.Version), "Version information", true); if (response == MSG_RESPONSE.OK) { if (RequestHomepageEvent != null) { RequestHomepageEvent(this, eventArgs); } } }); } } }); }