コード例 #1
0
        public HeaderViewModel(ILogger logger, SocketIoService socketIoService, StatsService statsService,
                               SettingsWrapper settingsWrapper)
        {
            _logger          = logger;
            _settingsWrapper = settingsWrapper;

            OpenWebsiteCommand  = new RelayCommand(LogoClick);
            SettingsCommand     = new RelayCommand(SettingsClick);
            QrCodeClickCommand  = new RelayCommand(QrCodeClick);
            ExportStatsCommand  = new RelayCommand(async _ => await ExportStatsAsync());
            EnableReplayCommand = new RelayCommand(EnableReplays);
            SwitchThemeCommand  = new RelayCommand(SwitchTheme);

            socketIoService.StateChanged.Subscribe(state => { ConnectionState = state.ToString(); });
            statsService.StatsStatusChanged.Subscribe(status => { CanExport = status == StatsStatus.Fetched; });

            _settingsWrapper.SettingChanged(nameof(SettingsJson.InstallDirectory)).Subscribe(s =>
            {
                var path         = Path.Combine(_settingsWrapper.CurrentSettings.InstallDirectory, "preferences.xml");
                CanEnableReplays = File.Exists(path);
            });

            if (_settingsWrapper.CurrentSettings.DarkMode)
            {
                SwitchTheme();
            }
        }
コード例 #2
0
        public SubHeaderViewModel(SettingsWrapper settingsWrapper, StatsService statsService)
        {
            _settingsWrapper = settingsWrapper;

            PathClickCommand = new RelayCommand(PathClicked);

            _region = _settingsWrapper.CurrentSettings.Region;

            _settingsWrapper.SettingChanged(nameof(SettingsJson.InstallDirectory)).Subscribe(s => { InitPath(); });
            statsService.StatsStatusChanged.Skip(1).Subscribe(status =>
            {
                SetStatusChip(status);
                if (status == StatsStatus.Fetching)
                {
                    EnableUi     = false;
                    ShowProgress = Visibility.Visible;
                    ShowIcon     = Visibility.Collapsed;
                }
                else
                {
                    EnableUi     = true;
                    ShowProgress = Visibility.Collapsed;
                    ShowIcon     = Visibility.Visible;
                }
            });

            // TODO: Should be called in line 43 initially. It's not. rip.
            InitPath();
        }