Esempio n. 1
0
        internal async Task SignInAsync()
        {
            try
            {
                IsBusy = true;

                _hud.Show(LoginMessage);

                var credentials = new Credentials(UserName, Password);

                Result validationResult = await _credentialValidator.ValidateAsync(credentials)
                                          .ConfigureAwait(false);

                if (!validationResult.IsSuccessful)
                {
                    _alerts.ShowError(validationResult.ErrorMessage);
                    return;
                }

                var saveResult = await _credentialStorage.SaveCredentialsAsync(credentials)
                                 .ConfigureAwait(false);

                if (!saveResult.IsSuccessful)
                {
                    _alerts.ShowError(saveResult.ErrorMessage);
                    return;
                }

                _backgroundSync.Enable();

                SignedIn?.Invoke(this, EventArgs.Empty);
            }
            finally
            {
                _hud.Dismiss();

                IsBusy = false;
            }
        }