/// <summary> /// Issue credit to user during a burn transaction in lieu of earn credit that user has in his account /// </summary> /// <param name="request"></param> /// <returns>result</returns> public async Task <SaveStatementCredit_Response> SaveStatementCreditAsync(SaveStatementCreditRequest request) { SaveStatementCredit_Response response; using (var client = VisaRtmClientManager.Instance.GetVisaRtmClient()) { Stopwatch sprocTimer = Stopwatch.StartNew(); try { response = await client.SaveStatementCreditAsync(request).ConfigureAwait(false); } finally { sprocTimer.Stop(); PerformanceInformation.Add("SaveStatementCreditAsync ", String.Format("{0} ms", sprocTimer.ElapsedMilliseconds)); } } return(response); }
/// <summary> /// Get SaveStatementCreditRequest request /// </summary> /// <param name="cardId">Token returned by partner for credit card</param> /// <param name="creditAmount">Amount to credit</param> /// <param name="transactionId">Transaction Id</param> /// <param name="transactionSettlementDate">Transaction settlement date.</param> /// <param name="partnerUserId">Partner user Id</param> /// <param name="community">Community Code</param> /// <returns>request</returns> public static SaveStatementCreditRequest GetSaveStatementCreditAsync(string cardId, float creditAmount, string transactionId, DateTime transactionSettlementDate, string partnerUserId, string community) { const string currentCodeUs = "840"; var request = new SaveStatementCreditRequest(); var externalStatementCredit = new ExternalStatementCredit(); externalStatementCredit.CardId = cardId; externalStatementCredit.CommunityCode = community; externalStatementCredit.StatementCreditAmount = new MonetaryAmount { Currency = currentCodeUs, Value = creditAmount }; //TODO: Check if the value for StatementCreditDescription and StatementCreditSourceId is correct externalStatementCredit.StatementCreditDescription = "MSFT EARN REDEMPTION"; externalStatementCredit.StatementCreditSourceId = "earn.microsoft.com"; externalStatementCredit.TransactionId = transactionId; externalStatementCredit.TransactionSettlementDate = transactionSettlementDate.ToString("s"); //format like 2016-03-07T21:13:53 externalStatementCredit.UserId = partnerUserId; request.ExternalStatementCredit = externalStatementCredit; return(request); }