private async Task CheckAndUpdate(WowUpdater _updater)
        {
            try
            {
                bool needUpdate = await _updater.CheckUpdateAsync();

                if (needUpdate)
                {
                    _updater.Update();
                    Logger.Current.AppendText("Началось обновление игрового клиента");
                }
            }
            catch (Exception ex) { Logger.Current.AppendException(ex); }
        }
        public MainWindow()
        {
            InitializeComponent();
            Initialize();

            #region SET VISIBILITY ELEMENTS

            SetVisibilityToHotNewsBlock(false);
            ProgressBar1.Visibility  = Visibility.Hidden;
            bannersLoader.Visibility = Visibility.Hidden;
            initIndicator.Visibility = Visibility.Hidden;

            #endregion SET VISIBILITY ELEMENTS

            #region Конфиги Mysql и игровые

            _webClientFactory = new WebClientFactory();
            _web = _webClientFactory.Create();

            var mySqlConfig = new IpPortConfig
            {
                Ip   = Settings.Default.mysql_ip,
                Port = Settings.Default.mysql_port
            };
            var worldConfig = new IpPortConfig
            {
                Ip   = Settings.Default.world_ip,
                Port = Settings.Default.world_port
            };

            #endregion Конфиги Mysql и игровые

            #region ADRESSET (Логика для использования функций серверной части)

            var addressSet = new AddressSet
            {
                ServerPid         = UrlHelper.Combine(Settings.Default.update_folder, Wow.FileName.PID_FILE_NAME),
                ServerPidClientRu = UrlHelper.Combine(Settings.Default.down_client_ru, Wow.FileName.PID_FILE_NAME),
                ServerPidClientEn = UrlHelper.Combine(Settings.Default.down_client_en, Wow.FileName.PID_FILE_NAME),

                ServerPatchFile = Settings.Default.patchlist,
                //ServerFilesRoot = Settings.Default.update_folder,

                HotNews        = string.Format(Settings.Default.api_url + "?_key={0}&_url=hot_news", Settings.Default.skey_api),
                LoadBannerNews = string.Format(Settings.Default.api_url + "?_key={0}&_url=news", Settings.Default.skey_api),
            };

            #endregion ADRESSET (Логика для использования функций серверной части)

            _addressSet  = addressSet;
            _mySqlConfig = mySqlConfig;
            _worldConfig = worldConfig;
            _xmlhelper   = new XmlHelper();

            var    ClientLocation = LocalConfiguration.Instance.Files.ConfDataFile;
            string rootDirectory  = _xmlhelper.GetSettingValue("realm1_client_location");
            string localPidFile   = Path.Combine(rootDirectory, Wow.FileName.PID_FILE_NAME);

            #region IF PATH TO GAME EXISTS - CHECK AN UPDATE

            if (rootDirectory != "")
            {
                string langApp = _xmlhelper.GetSettingValue("client_lang");
                switch (langApp)
                {
                case "en":
                    string ServerFilesRootEN = Settings.Default.down_client_en;
                    string ServerPatchFileEn = Settings.Default.down_client_en_patch;
                    _updater = new WowUpdater(rootDirectory, addressSet.ServerPidClientEn, localPidFile, ServerPatchFileEn, ServerFilesRootEN);
                    _updater.UpdateProgressChanged += Updater_UpdateProgressChanged;
                    _updater.UpdateStateChanged    += Updater_UpdateStateChanged;
                    _updater.UpdateDownloadInfo    += Updater_UpdateInfoChanged;
                    break;

                default:
                    break;
                }

                WelcomeBlock.HideBlock();
            }
            else
            {
                WelcomeBlock.ShowBlock();
                playButton.Visibility = Visibility.Hidden;
            }

            #endregion IF PATH TO GAME EXISTS - CHECK AN UPDATE

            #region LAUNCHER LOGIC

            _launcher = new LauncherLogic(addressSet, mySqlConfig, worldConfig);

            #endregion LAUNCHER LOGIC
        }
Esempio n. 3
0
        public MainWindow()
        {
            InitializeComponent();

            TransformGroup group = (TransformGroup)bg.RenderTransform;

            _translate = (TranslateTransform)group.Children[3];

            TransformGroup group1 = (TransformGroup)hand.RenderTransform;

            _translate1 = (TranslateTransform)group1.Children[3];

            TransformGroup group2 = (TransformGroup)handAxe.RenderTransform;

            _translate2 = (TranslateTransform)group2.Children[3];

            TransformGroup group3 = (TransformGroup)blik.RenderTransform;

            _translate3 = (TranslateTransform)group3.Children[3];

            SetVisibilityToHotNewsBlock(false);
            progressBar.Visibility   = Visibility.Hidden;
            bannersLoader.Visibility = Visibility.Hidden;
            bannersFrame.Visibility  = Visibility.Hidden;
            hotNewsTextBox.Text      = "Initialization...";

            initIndicator.Visibility = Visibility.Hidden;

            _webClientFactory = new WebClientFactory();
            _web = _webClientFactory.Create();

            var mySqlConfig = new IpPortConfig
            {
                Ip   = Settings.Default.mysql_ip,
                Port = Settings.Default.mysql_port
            };

            var worldConfig = new IpPortConfig
            {
                Ip   = Settings.Default.world_ip,
                Port = Settings.Default.world_port
            };

            var addressSet = new AddressSet
            {
                OnlinePlayers   = string.Format(Settings.Default.api_url + "?_key={0}&_url=count_online", Settings.Default.skey_api),
                ServerPid       = UrlHelper.Combine(Settings.Default.new_files, Wow.FileName.PID_FILE_NAME),
                ServerPatchFile = Settings.Default.patchlist,
                ServerFilesRoot = Settings.Default.new_files,
                NewsAboutUpdate = string.Format(Settings.Default.api_url + "?_key={0}&_url=news", Settings.Default.skey_api),
                HotNews         = string.Format(Settings.Default.api_url + "?_key={0}&_url=hot_news", Settings.Default.skey_api),
                LoadBannerNews  = string.Format(Settings.Default.api_url + "?_key={0}&_url=news", Settings.Default.skey_api),
            };

            _addressSet  = addressSet;
            _mySqlConfig = mySqlConfig;
            _worldConfig = worldConfig;

            string rootDirectory = AppDomain.CurrentDomain.BaseDirectory;
            string localPidFile  = Path.Combine(rootDirectory, Wow.FileName.PID_FILE_NAME);

            _updater = new WowUpdater(rootDirectory, addressSet.ServerPid, localPidFile, addressSet.ServerPatchFile, addressSet.ServerFilesRoot);
            _updater.UpdateProgressChanged += Updater_UpdateProgressChanged;
            _updater.UpdateStateChanged    += Updater_UpdateStateChanged;

            _launcher = new LauncherLogic(addressSet, mySqlConfig, worldConfig);
            _launcher.DataLoadingStateChanged += Launcher_DataLoadingStateChanged;
            _launcher.NewsLoadStateChanged    += Launcher_NewsLoadStateChanged;
            _launcher.NewsLoadBanner          += Launcher_NewsLoadBanner;
        }