コード例 #1
0
        public MainViewModel(IMvxNavigationService navigationService, IAuthService authService, ITopNavigationViewModelService topNavigationViewModelService, IBottomNavigationViewModelService bottomNavigationViewModelService)
        {
            _navigationService = navigationService;
            _authService       = authService;

            _topNavigationViewModelService    = topNavigationViewModelService;
            _bottomNavigationViewModelService = bottomNavigationViewModelService;

            ShowNavigationTopViewModelCommand    = new MvxAsyncCommand(async() => await Task.Run(() => { }));
            ShowAudioPlayerViewModelCommand      = new MvxAsyncCommand(async() => await _navigationService.Navigate <AudioPlayerViewModel>());
            ShowNavigationBottomViewModelCommand = new MvxAsyncCommand(async() => await _navigationService.Navigate <BottomNavigationViewModel>());
            ShowContentViewModelCommand          = new MvxAsyncCommand(async() =>
            {
                var serviceResult = await _authService.Authorize();
                if (!serviceResult.Success)
                {
                    await _topNavigationViewModelService.Close();
                    await _bottomNavigationViewModelService.Close();
                    await _navigationService.Navigate <LoginViewModel>();
                }
                else
                {
                    await _navigationService.Navigate <HomeViewModel>();
                    await _bottomNavigationViewModelService.Show(new BottomNavigationViewModel.PrepareModel()
                    {
                        CheckedItem = Enums.BottomNavigationViewCheckedItemType.Home
                    });
                }
            });
        }
コード例 #2
0
        // Private methods

        private async Task AttemptLogInAsync()
        {
            Email.Value    = Email.Value?.Trim();
            Password.Value = Password.Value?.Trim();

            if (_validationHelper.Validate())
            {
                _userDialogs.ShowLoading("Login");

                var serviceResult = await _authService.Login(Email.Value, Password.Value);

                if (serviceResult.Success)
                {
                    ClearStack.Execute(null);
                    await _navigationService.Navigate <HomeViewModel>();

                    await _bottomNavigationViewModelService.Show(new BottomNavigationViewModel.PrepareModel()
                    {
                        CheckedItem = Enums.BottomNavigationViewCheckedItemType.Home
                    });

                    _userDialogs.HideLoading();
                }
                else
                {
                    _userDialogs.HideLoading();

                    await _userDialogs.AlertAsync(new AlertConfig
                    {
                        Title   = "Login failed",
                        Message = serviceResult.Error.Description,
                        OkText  = "OK"
                    });

                    InitValidationCommand.Execute(null);
                }
            }
        }