示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }