Exemple #1
0
        private void CheckUpdate(bool showResult)
        {
            var assem = Assembly.GetEntryAssembly();
            var assemName = assem.GetName();
            var ver = assemName.Version;
            var platform = "x86";
            if (Tools.Is64BitProcess)
                platform = "x64";
            Logger.Instance().Log("FrontView+", "Checking for updates. Current version : " + ver, true);
            _allowBeta = File.Exists(Helper.AppPath + "Yatse2.beta");

            var repo = new RemoteRepository();
            repo.SetDebug(_config.Debug);
            if (!repo.LoadRepository(Repository, platform, Helper.AppPath + "Updates"))
            {
                if (showResult)
                    ShowOkDialog(GetLocalizedString(114));
                return;
            }
                
            var result = repo.UpdateTranslations(Helper.LangPath);
            if (result)
            {
                if (showResult)
                    ShowOkDialog(GetLocalizedString(115));
                RefreshDictionaries();
            }
            var versions = repo.GetBuildList(_allowBeta);
            if (versions == null)
            {
                Logger.Instance().Log("FrontView+", "Build list empty !", true);
                if (showResult)
                    ShowOkDialog(GetLocalizedString(114));
            }
            else
            {
                if (versions.Version.Count < 1)
                {
                    Logger.Instance().Log("FrontView+", "Build list empty !", true);
                    if (showResult)
                        ShowOkDialog(GetLocalizedString(114));
                }
                else
                {
                    var lastBuild = versions.Version[versions.Version.Count - 1];

                    if (ver.Build >= lastBuild.Build)
                    {
                        Logger.Instance().Log("FrontView+", "Version is up2date!", true);
                        if (showResult)
                            ShowOkDialog(GetLocalizedString(113));
                    }
                    else
                    {
                        Logger.Instance().Log("FrontView+", "Update available : " + lastBuild.Build, true);
                        var res = ShowYesNoDialog(GetLocalizedString(109));
                        if (res)
                        {
                            Directory.CreateDirectory(Helper.AppPath + "Temp");
                            if (GetUpdater())
                            {
                                Process.Start(Helper.AppPath + @"Temp\Yatse2Setup.exe");
                                Close();
                            }
                            else
                            {
                                ShowOkDialog(GetLocalizedString(101));
                            }
                        }

                    }
                }
            }
            repo.CleanTemporary();
        }
        private void btn_GoUpdate_Click(object sender, RoutedEventArgs e)
        {
 
            var platform = "x86";
            if (Tools.IsFile64Bit(txb_SourceDirectory.Text + @"\Yatse2.exe") == true)
                platform = "x64";
            var repo = new RemoteRepository();

            repo.LoadRepository(Repository, platform, Helper.AppPath + "Updates");

            var versions = repo.GetBuildList(_allowBeta);
            if (versions == null)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            if (versions.Version.Count < 1)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            var lastBuild = versions.Version[versions.Version.Count - 1];

            brd_Update.Visibility = Visibility.Hidden;
            brd_BuildlInfos.Visibility = Visibility.Hidden;
            brd_InstallInfos.Visibility = Visibility.Visible;
            btn_Cancel.IsEnabled = false;
            txb_InstallInfos.Text = GetLocalizedString(6) + " " + lastBuild.Build + "\n\n" + GetLocalizedString(7);

            var updateInfo = new RepoInfo
                                 {
                                     Repo = Repository,
                                     Platform = platform,
                                     Source = txb_SourceDirectory.Text,
                                     Destination = txb_TargetDirectory.Text,
                                     Version = lastBuild
                                 };

            var backgroundWorker = new BackgroundWorker();
            backgroundWorker.DoWork += backgroundWorker_Update;
            backgroundWorker.RunWorkerCompleted += backgroundWorker_UpdateCompleted;

            backgroundWorker.RunWorkerAsync(updateInfo);

        }
        private void btn_Update_Click(object sender, RoutedEventArgs e)
        {
        	if (!File.Exists(txb_SourceDirectory.Text + @"\Yatse2.exe"))
        	{
        	    CheckIfUpdate();
                return;
        	}

            _allowBeta = File.Exists(txb_SourceDirectory.Text + @"\Yatse2.beta");
            var platform = "x86";
            if (Tools.IsFile64Bit(txb_SourceDirectory.Text + @"\Yatse2.exe") == true)
                platform = "x64";

            var repo = new RemoteRepository();
            repo.SetDebug(true);
            repo.LoadRepository(Repository, platform, Helper.AppPath + "Updates");

            var versions = repo.GetBuildList(_allowBeta);
            if (versions == null)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            if (versions.Version.Count < 1)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            var lastBuild = versions.Version[versions.Version.Count - 1];

            var version = Tools.GetFileRevision(txb_SourceDirectory.Text + @"\Yatse2.exe");
            if (version == lastBuild.Build)
            {
                MessageBox.Show(GetLocalizedString(12));
                repo.CleanTemporary();
                return;
            }

            var buildinfo = repo.GetVersionInfo(lastBuild);

            if (buildinfo == null)
            {
                MessageBox.Show(GetLocalizedString(14));
                repo.CleanTemporary();
            }
            else
            {
                txb_BuildInfos.Text = buildinfo.Description;
                brd_Update.Visibility = Visibility.Hidden;
                brd_BuildlInfos.Visibility = Visibility.Visible;
            }
        }
        private static void backgroundWorker_Update(object sender, DoWorkEventArgs e)
        {
            var updateInfo = (RepoInfo) e.Argument;

            var repo = new RemoteRepository();
            repo.LoadRepository(updateInfo.Repo, updateInfo.Platform, Helper.AppPath + "Updates");
            var result = repo.Update(updateInfo.Destination, updateInfo.Version);
            repo.CleanTemporary();
            e.Result = result;

        } 
        private void Install(string platform)
        {
            var repo = new RemoteRepository();
            repo.LoadRepository(Repository, platform, Helper.AppPath + "Updates");
            _allowBeta = File.Exists(txb_TargetDirectory.Text + @"\Yatse2.beta");
            var versions = repo.GetBuildList(_allowBeta);
            if (versions == null)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            if (versions.Version.Count < 1)
            {
                MessageBox.Show(GetLocalizedString(10));
                repo.CleanTemporary();
                return;
            }
            var lastBuild = versions.Version[versions.Version.Count - 1];

            txb_InstallInfos.Text = GetLocalizedString(6) + " " + lastBuild.Build + " (" + platform + ")\n\n" + GetLocalizedString(7);
            brd_InstallInfos.Visibility = Visibility.Visible;
            brd_Install.Visibility = Visibility.Hidden;
            brd_BuildlInfos.Visibility = Visibility.Hidden;
            btn_Cancel.IsEnabled = false;


            var updateInfo = new RepoInfo
            {
                Repo = Repository,
                Platform = platform,
                Source = txb_SourceDirectory.Text,
                Destination = txb_TargetDirectory.Text,
                Version = lastBuild
            };

            var backgroundWorker = new BackgroundWorker();
            backgroundWorker.DoWork += backgroundWorker_Install;
            backgroundWorker.RunWorkerCompleted += backgroundWorker_InstallCompleted;

            backgroundWorker.RunWorkerAsync(updateInfo);

        }