Example #1
0
 private IEnumerable<ApplicationEvent> WhenStateIsInvalid(Guid appOperationId, Transfer transfer)
 {
     transfer.Fail(string.Format(Messages.TransferFailedUnknownReason, transfer.Id));
     TransferRepository.Update(transfer);
     Logger.Error("Transfer #{0} is in invalid state.", transfer.Id);
     return Enumerable.Empty<ApplicationEvent>();
 }
Example #2
0
 protected virtual IEnumerable<ApplicationEvent> WhenDepositFailed(Guid appOperationId, Transfer transfer)
 {
     transfer.Fail(string.Format(Messages.TransferFailed, transfer.Deposit.ErrorMessage));
     var transactionName = TransactionReferenceBook.CompensationFor(transfer.Withdrawal);
     var compensationTransaction = Compensate(transfer.From, transfer, transactionName.Code, transactionName.Description);
     TransactionRepository.Create(compensationTransaction);
     TransferRepository.Update(transfer);
     var transactionModel = compensationTransaction.ToModel<Transaction, TransactionModel>();
     return new List<ApplicationEvent>
     {
         new TransactionProgressEvent(appOperationId, transactionModel, transfer.Id)
     };
 }
Example #3
0
 protected virtual IEnumerable<ApplicationEvent> WhenWithdrawalFailed(Guid appOperationId, Transfer transfer)
 {
     transfer.Fail(string.Format(Messages.TransferFailed, transfer.Withdrawal.ErrorMessage));
     TransferRepository.Update(transfer);
     return Enumerable.Empty<ApplicationEvent>();
 }