public Cancel ( FinancialScheduledTransaction scheduledTransaction, string &errorMessages ) : bool | ||
scheduledTransaction | FinancialScheduledTransaction | The scheduled transaction. |
errorMessages | string | The error messages. |
리턴 | bool |
public bool Cancel( FinancialScheduledTransaction scheduledTransaction, out string errorMessages )
{
if ( scheduledTransaction != null &&
scheduledTransaction.FinancialGateway != null &&
scheduledTransaction.FinancialGateway.IsActive )
{
if ( scheduledTransaction.FinancialGateway.Attributes == null )
{
scheduledTransaction.FinancialGateway.LoadAttributes( (RockContext)this.Context );
}
var gateway = scheduledTransaction.FinancialGateway.GetGatewayComponent();
if ( gateway != null )
{
if ( gateway.CancelScheduledPayment( scheduledTransaction, out errorMessages ) )
{
var noteTypeService = new NoteTypeService( (RockContext)this.Context );
var noteType = noteTypeService.Get( Rock.SystemGuid.NoteType.SCHEDULED_TRANSACTION_NOTE.AsGuid() );
if ( noteType != null )
{
var noteService = new NoteService( (RockContext)this.Context );
var note = new Note();
note.NoteTypeId = noteType.Id;
note.EntityId = scheduledTransaction.Id;
note.Caption = "Cancelled Transaction";
noteService.Add( note );
}
return true;
}
else
{
return false;
}
}
}
errorMessages = "Gateway is invalid or not active";
return false;
}
protected void bbtnDelete_Click( object sender, EventArgs e ) { BootstrapButton bbtnDelete = (BootstrapButton)sender; RepeaterItem riItem = (RepeaterItem)bbtnDelete.NamingContainer; HiddenField hfScheduledTransactionId = (HiddenField)riItem.FindControl( "hfScheduledTransactionId" ); Literal content = (Literal)riItem.FindControl( "lLiquidContent" ); Button btnEdit = (Button)riItem.FindControl( "btnEdit" ); var rockContext = new Rock.Data.RockContext(); FinancialScheduledTransactionService fstService = new FinancialScheduledTransactionService( rockContext ); var currentTransaction = fstService.Get( Int32.Parse(hfScheduledTransactionId.Value) ); string errorMessage = string.Empty; if ( fstService.Cancel( currentTransaction, out errorMessage ) ) { rockContext.SaveChanges(); content.Text = String.Format( "<div class='alert alert-success'>Your recurring {0} has been deleted.</div>", GetAttributeValue( "TransactionLabel" ).ToLower() ); } else { content.Text = String.Format( "<div class='alert alert-danger'>An error occured while deleting your scheduled transation. Message: {0}</div>", errorMessage ); } bbtnDelete.Visible = false; btnEdit.Visible = false; }