public LoginPageViewModel(SteamClientService steamClientService,
                                  ApplicationSettingsService applicationSettingsService)
        {
            _steamClientService         = steamClientService;
            _applicationSettingsService = applicationSettingsService;

            _shouldRememberAccount = _applicationSettingsService.Settings.ShouldRememberAccount;
            if (_shouldRememberAccount)
            {
                _username = _applicationSettingsService.Settings.LastUsername;
                _password = _applicationSettingsService.Settings.LastPassword;
            }

            MessengerInstance.Register <ClearPageHistoryOnNextTryLoginMessage>(this,
                                                                               msg => { _clearPageHistoryOnNextTryLogin = true; });

            MessengerInstance.Register <LogoutOnNextTryLoginMessage>(this, msg => { _logoutOnNextTryLogin = true; });
        }
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            SimpleIoc.Default.Register <MainWindowViewModel>();
            SimpleIoc.Default.Register <WelcomePageViewModel>();
            SimpleIoc.Default.Register <LoginPageViewModel>();
            SimpleIoc.Default.Register <FriendListPageViewModel>();

            SimpleIoc.Default.Register <ApplicationSettingsService>(true);
            SimpleIoc.Default.Register(() =>
            {
                var steamClientService =
                    new SteamClientService(ServiceLocator.Current.GetInstance <ApplicationSettingsService>());
                steamClientService.Start();
                return(steamClientService);
            });
        }
Ejemplo n.º 3
0
        public FriendListPageViewModel(SteamClientService steamClientService)
        {
            _steamClientService = steamClientService;

            Task.Delay(2000).ContinueWith(task => { _steamClientService.SetPersonaStateAsync(EPersonaState.Online); });

            MessengerInstance.Register <PersonaNameChangedMessage>(this,
                                                                   msg => { RaisePropertyChanged(() => PersonaName); });

            MessengerInstance.Register <PersonaStateChangedMessage>(this,
                                                                    msg => RaisePropertyChanged(() => PersonaState));

            MessengerInstance.Register <ReconnectFailedMessage>(this, msg =>
            {
                MessengerInstance.Send(new ShowMessageDialogMessageWithCallback("连接中断",
                                                                                "你与 Steam 的服务器连接已中断。重试三次均无法连通,请检查网络后重新登录。",
                                                                                result =>
                {
                    MessengerInstance.Send(new SwitchPageMessage(SwitchPageMessage.Page.Login));
                    MessengerInstance.Send(new ClearPageHistoryMessage());
                }));
            });
        }
Ejemplo n.º 4
0
        public MainWindowViewModel(SteamClientService steamClientService)
        {
            _steamClientService = steamClientService;

            _currentPage = new WelcomePage();
            PageHistory  = new Stack();
            PageHistory.Push(CurrentPage);

            MessengerInstance.Register <SwitchPageMessage>(this, msg =>
            {
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    CurrentPage = Activator.CreateInstance(SwitchPageMessage.GetPageType(msg.TargetPage));
                    if (msg.ClearPageHistory)
                    {
                        PageHistory.Clear();
                        PageHistory.Push(CurrentPage);
                    }
                    else
                    {
                        PageHistory.Push(CurrentPage);
                    }

                    RaisePropertyChanged(() => SwitchBackButtonVisible);
                });
            });

            MessengerInstance.Register <ClearPageHistoryMessage>(this, msg =>
            {
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    PageHistory.Clear();
                    PageHistory.Push(CurrentPage);
                    RaisePropertyChanged(() => SwitchBackButtonVisible);
                });
            });
        }