Ejemplo n.º 1
0
        private async void TryBecomeOnline()
        {
            _log.Info("Trying to switch to the online mode...");

            _ui.SetInteractable(false);
            _ui.OfflineMode = !await TryFetchPrefixes();

            _ui.SetInteractable(true);

            var state = _ui.OfflineMode ? "offline" : "online";

            _log.Info($"Is {state} now!");

            if (_profiles.IsEmpty)
            {
                foreach (var prefix in _versions.Prefixes)
                {
                    var fullVersion = new FullVersionId(prefix.Id, IndexTool.VersionAliasLatest);
                    try {
                        _profiles.Create(prefix.About, new ProfileData {
                            FullVersion = fullVersion
                        });
                        if (!_profiles.Contains(_settings.Profile))
                        {
                            _settings.Profile = prefix.About;
                        }
                    }
                    catch (Exception e) {
                        _log.Error("Can't create default profile: " + e.Message);
                    }
                }

                _ui.SetProfiles(_profiles.Names, _settings.Profile);
            }
            else if (!_profiles.Contains(_settings.Profile))
            {
                _settings.Profile = _profiles.Names[0];
                _ui.SetProfiles(_profiles.Names, _settings.Profile);
            }

            if (_ui.OfflineMode)
            {
                _ui.ShowErrorMessage(_tr._("Failed to switch into online mode!"));
            }
        }