private bool doRefresh(PayPalSession session, PayPalOAuthToken authToken, Transaction transaction, object extraData = null) { var logID = Log(MessageType.Info, "doRefresh()", "Refresh transaction"); payoutItemDetails payoutItem = null; var payoutItemID = getPayoutItemID(transaction); if (payoutItemID.IsNullOrWhiteSpace()) { var payouts = getPayouts(getBatchID(transaction), authToken, logID); switch (payouts.BatchHeader.BatchStatus) { case payoutBatchStatus.NEW: case payoutBatchStatus.PENDING: case payoutBatchStatus.PROCESSING: return(false); } if (!payouts.Items.Any()) { return(false); } payoutItem = payouts.Items.FirstOrDefault(item => item.PayoutItem.SenderItemId.Equals(transaction.ID.AsString())); } else { payoutItem = getPayoutItem(payoutItemID, authToken, logID); } if (payoutItem == null) { return(false); } var transactionStatus = mapTransactionStatus(payoutItem.TransactionStatus); if (transaction.Status == transactionStatus) { return(false); } transaction.__Apply(Transaction.Operation.Refresh(transactionStatus, payoutItem.TimeProcessed, payoutItem.Token, payoutItem.Amount, payoutItem.PayoutItemFee.Value, extraData)); return(true); }
private payoutItemDetails cancelPayoutItem(string payoutItemID, PayPalOAuthToken authToken, Guid logID) { Log(MessageType.Info, "cancelPayoutIyem()", "Cancel payout item", relatedMessageID: logID); try { var request = new WebClient.RequestParams(this) { Method = HTTPRequestMethod.POST, ContentType = ContentType.JSON, Headers = new Dictionary <string, string> { { HDR_AUTHORIZATION, authToken.AuthorizationHeader } } }; var response = WebClient.GetJson(URI_CancelPayoutItem(payoutItemID), request); Log(MessageType.Trace, "cancelPayoutIyem()", "Payout Item", relatedMessageID: logID, parameters: response.ToJSON()); var payoutItem = new payoutItemDetails(response); if (payoutItem.TransactionStatus == payoutTransactionStatus.RETURNED) { Log(MessageType.Info, "cancelPayoutIyem()", "Payout item canceled", relatedMessageID: logID); } else { Log(MessageType.Info, "cancelPayoutIyem()", "Payout item not canceled", relatedMessageID: logID); } return(payoutItem); } catch (Exception ex) { var error = composeError(StringConsts.PAYPAL_PAYOUT_ITEM_CANCEL_ERROR_MESSAGE.Args(ex.ToMessageWithType()), ex); Log(MessageType.Error, "cancelPayoutIyem()", error.Message, ex, relatedMessageID: logID); throw error; } }