Esempio n. 1
0
        private void StartCheckingForLauncherUpdates()
        {
            _isPreviousUpdateCompleted = false;

            if (FilesManager.IsDirectoryWritable(Context.Settings.GetLogsDirectoryPath()))
            {
                try
                {
                    Context.Logger.Info($"===> [{UpdateProcessName}] process STARTED! <===");

                    if (!CheckForNetworkAvailability())
                    {
                        Data.Dispatcher.Invoke(
                            () =>
                            Data.Dialog.ShowCloseDialog(
                                Context.LocalizedMessages.NotAvailableNetwork,
                                string.Empty,
                                () => Data.Dialog.CloseDialog())
                            );

                        return;
                    }

                    if (!CheckForRemoteServiceAvailability())
                    {
                        Data.Dispatcher.Invoke(
                            () =>
                            Data.Dialog.ShowCloseDialog(
                                Context.LocalizedMessages.NotAvailableServers,
                                string.Empty,
                                () => Data.Dialog.CloseDialog())
                            );

                        return;
                    }

                    Context.Initialize();

                    if (!_patcherUpdater.IsUpdateAvailable())
                    {
                        _isPreviousUpdateCompleted = true;
                        Data.Dispatcher.Invoke(
                            () => Data.ProgressBar.gameObject.SetActive(false)
                            );
                        return;
                    }

                    Task.Run(CheckForUpdates);
                }
                catch (Exception ex)
                {
                    UpdateFailed(ex);
                }
            }
            else
            {
                Data.Dispatcher.Invoke(() =>
                {
                    Data.Log(Context.LocalizedMessages.LogsFileNotWritable);
                    Data.Dialog.ShowDialog(Context.LocalizedMessages.LogsFileNotWritable,
                                           Context.Settings.GetLogsFilePath(),
                                           () => Data.Dialog.CloseDialog(),
                                           () => Data.Dialog.CloseDialog());
                    Data.ProgressBar.gameObject.SetActive(false);
                });

                Context.Logger.Error(
                    null, "Updating process FAILED! The Launcher has not enough privileges to write into its folder!");

                _isPreviousUpdateCompleted = true;
            }
        }