public SupportsSavedAccount ( DefinedValueCache currencyType ) : bool | ||
currencyType | DefinedValueCache | Type of the currency. |
return | bool |
private string GetSavedAcccountFreqSupported( GatewayComponent component ) { if ( component != null ) { if ( component.SupportsSavedAccount( true ) ) { if ( component.SupportsSavedAccount( false ) ) { return "both"; } else { return "repeating"; } } else { if ( component.SupportsSavedAccount( false ) ) { return "onetime"; } } } return "none"; }
private void ShowSuccess( GatewayComponent gatewayComponent, Person person, PaymentInfo paymentInfo, PaymentSchedule schedule, FinancialPaymentDetail paymentDetail, RockContext rockContext ) { tdTransactionCodeReceipt.Description = TransactionCode; tdTransactionCodeReceipt.Visible = !string.IsNullOrWhiteSpace( TransactionCode ); tdScheduleId.Description = ScheduleId; tdScheduleId.Visible = !string.IsNullOrWhiteSpace( ScheduleId ); tdNameReceipt.Description = paymentInfo.FullName; tdPhoneReceipt.Description = paymentInfo.Phone; tdEmailReceipt.Description = paymentInfo.Email; tdAddressReceipt.Description = string.Format( "{0} {1}, {2} {3}", paymentInfo.Street1, paymentInfo.City, paymentInfo.State, paymentInfo.PostalCode ); rptAccountListReceipt.DataSource = SelectedAccounts.Where( a => a.Amount != 0 ); rptAccountListReceipt.DataBind(); tdTotalReceipt.Description = paymentInfo.Amount.ToString( "C" ); tdPaymentMethodReceipt.Description = paymentInfo.CurrencyTypeValue.Description; string acctNumber = paymentInfo.MaskedNumber; if ( string.IsNullOrWhiteSpace( acctNumber ) && paymentDetail != null && !string.IsNullOrWhiteSpace( paymentDetail.AccountNumberMasked ) ) { acctNumber = paymentDetail.AccountNumberMasked; } tdAccountNumberReceipt.Description = acctNumber; tdAccountNumberReceipt.Visible = !string.IsNullOrWhiteSpace( acctNumber ); tdWhenReceipt.Description = schedule != null ? schedule.ToString() : "Today"; // If there was a transaction code returned and this was not already created from a previous saved account, // show the option to save the account. if ( !( paymentInfo is ReferencePaymentInfo ) && !string.IsNullOrWhiteSpace( TransactionCode ) && gatewayComponent.SupportsSavedAccount( paymentInfo.CurrencyTypeValue ) ) { cbSaveAccount.Visible = true; pnlSaveAccount.Visible = true; txtSaveAccount.Visible = true; // If current person does not have a login, have them create a username and password phCreateLogin.Visible = !new UserLoginService( rockContext ).GetByPersonId( person.Id ).Any(); } else { pnlSaveAccount.Visible = false; } }
private void BindSavedAccounts( GatewayComponent component ) { var currentValue = rblSavedCC.SelectedValue; rblSavedCC.Items.Clear(); if ( CurrentPerson != null ) { // Get the saved accounts for the currently logged in user var savedAccounts = new FinancialPersonSavedAccountService( new RockContext() ) .GetByPersonId( CurrentPerson.Id ); // Verify component is valid and that it supports using saved accounts for one-time, credit card transactions var ccCurrencyType = DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.CURRENCY_TYPE_CREDIT_CARD ) ); if ( component != null && component.SupportsSavedAccount( false ) && component.SupportsSavedAccount( ccCurrencyType ) ) { rblSavedCC.DataSource = savedAccounts .Where( a => a.FinancialGatewayId == RegistrationTemplate.FinancialGateway.Id && a.FinancialPaymentDetail != null && a.FinancialPaymentDetail.CurrencyTypeValueId == ccCurrencyType.Id ) .OrderBy( a => a.Name ) .Select( a => new { Id = a.Id, Name = "Use " + a.Name + " (" + a.FinancialPaymentDetail.AccountNumberMasked + ")" } ).ToList(); rblSavedCC.DataBind(); if ( rblSavedCC.Items.Count > 0 ) { rblSavedCC.Items.Add( new ListItem( "Use a different card", "0" ) ); rblSavedCC.SetValue( currentValue ); } } } }