Beispiel #1
0
        public static void NavigateToCardInfo(IDialogDetailsView view, PaymentInfo paymentInfo, Func <TLTmpPassword> getTmpPassword,
                                              INavigationService navigationService)
        {
            if (paymentInfo == null)
            {
                return;
            }

            var form = paymentInfo.Form;

            if (form == null)
            {
                return;
            }

            var           useSavedCredentials  = false;
            var           savedCredentialsCard = form.SavedCredentials as TLPaymentSavedCredentialsCard;
            TLTmpPassword tmpPassword          = null;

            if (savedCredentialsCard != null && !form.PasswordMissing)
            {
                tmpPassword = getTmpPassword.Invoke();
                if (tmpPassword != null)
                {
                    var now = TLUtils.DateToUniversalTimeTLInt(IoC.Get <IMTProtoService>().ClientTicksDelta, DateTime.Now);
                    if (tmpPassword.ValidUntil.Value - 60 > now.Value)
                    {
                        useSavedCredentials = true;
                    }
                }
            }

            if (useSavedCredentials)
            {
                paymentInfo.Credentials = new TLInputPaymentCredentialsSaved
                {
                    Id          = savedCredentialsCard.Id,
                    TmpPassword = tmpPassword.TmpPassword
                };
                paymentInfo.CredentialsTitle = savedCredentialsCard.Title.ToString();

                Navigate <CheckoutViewModel>(view, navigationService);
            }
            else if (savedCredentialsCard != null && !form.PasswordMissing)
            {
                Navigate <SavedCardInfoViewModel>(view, navigationService);
            }
            else
            {
                if (form.IsNativeProvider)
                {
                    Navigate <CardInfoViewModel>(view, navigationService);
                }
                else
                {
                    Navigate <WebCardInfoViewModel>(view, navigationService);
                }
            }
        }
Beispiel #2
0
        public TLTmpPassword GetTmpPassword()
        {
            if (_tmpPassword != null)
            {
                return(_tmpPassword);
            }

            _tmpPassword = TLUtils.OpenObjectFromMTProtoFile <TLTmpPassword>(_tmpPasswordSyncRoot, Constants.TmpPasswordFileName);

            return(_tmpPassword);
        }
Beispiel #3
0
        public void SaveTmpPassword(TLTmpPassword tmpPassword)
        {
            _tmpPassword = tmpPassword;

            TLUtils.SaveObjectToMTProtoFile(_tmpPasswordSyncRoot, Constants.TmpPasswordFileName, tmpPassword);
        }