Exemplo n.º 1
0
        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);
                    }
                });
            }
        }
Exemplo n.º 2
0
 public void VersionMismatch(object sender, VersionCheckEventArgs e)
 {
     if (OnVersionMismatch != null)
     {
         OnVersionMismatch(sender, e);
     }
 }
Exemplo n.º 3
0
        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");
            });
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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");
            });
        }
Exemplo n.º 6
0
        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);
                }
            }
        }
Exemplo n.º 7
0
        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);
                    }
                }
            });
        }
Exemplo n.º 8
0
        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);
                                }
                            }
                        });
                    }
                }
            });
        }