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); } } }
public TLTmpPassword GetTmpPassword() { if (_tmpPassword != null) { return(_tmpPassword); } _tmpPassword = TLUtils.OpenObjectFromMTProtoFile <TLTmpPassword>(_tmpPasswordSyncRoot, Constants.TmpPasswordFileName); return(_tmpPassword); }
public void SaveTmpPassword(TLTmpPassword tmpPassword) { _tmpPassword = tmpPassword; TLUtils.SaveObjectToMTProtoFile(_tmpPasswordSyncRoot, Constants.TmpPasswordFileName, tmpPassword); }