AdvancedLauncher.UI.Controls.GameControl.CheckWorker_DoWork C# (CSharp) Method

CheckWorker_DoWork() private method

private CheckWorker_DoWork ( object sender, DoWorkEventArgs e ) : void
sender object
e System.ComponentModel.DoWorkEventArgs
return void
        private async void CheckWorker_DoWork(object sender, DoWorkEventArgs e) {
            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate () {
                //Добавляем задачу обновления
                TaskManager.AquireLock(UpdateTask);
                ProfileManager.OnProfileLocked(true);
                EnvironmentManager.OnFileSystemLocked(true);
                EnvironmentManager.OnClosingLocked(true);
                UpdateRequired = false;
                StartButton.IsEnabled = false;
                StartButton.SetBinding(Button.ContentProperty, WaitingButtonBinding);
            }));

            GameModel model = ProfileManager.CurrentProfile.GameModel;

            //Проверяем наличие необходимых файлов игры
            if (!ConfigurationManager.CheckGame(model)) {
                SetStartEnabled(false); //Если необходимых файлов нет, просто вызываю этот метод. он при вышеуказанном условии покажет неактивную кнопку и сообщение о неправильном пути
                return;                      //Далее идти нет смысла
            }

            //Проверяем наличие обновления Pack01 файлами. Возвражающее значение говорит, можно ли проходить далее по алгоритму
            if (!await ImportPackages()) {
                this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate () {
                    RemoveTask();
                    ProfileManager.OnProfileLocked(false);
                    EnvironmentManager.OnFileSystemLocked(false);
                    EnvironmentManager.OnClosingLocked(false);
                }));
                return;
            }

            //Проверяем наличие новых обновлений
            VersionPair pair = UpdateManager.CheckUpdates(ProfileManager.CurrentProfile.GameModel);
            if (pair == null) {
                SetStartEnabled(false);
                DialogManager.ShowMessageDialog(LanguageManager.Model.ErrorOccured, LanguageManager.Model.ConnectionError);
                return;
            }
            //Если обновление требуется
            if (pair.IsUpdateRequired) {
                //Если включен интегрированных движок обновления, пытаемся обновиться
                if (ProfileManager.CurrentProfile.UpdateEngineEnabled) {
                    ShowProgressBar();
                    SetStartEnabled(await BeginUpdate(pair));
                } else { //Если интегрированный движок отключен - показываем кнопку "Обновить игру"
                    SetUpdateEnabled(true);
                }
            } else { //Если обновление не требуется, показываем кнопку "Начать игру".
                SetStartEnabled(true);
            }
        }