public async Task <PaymentInfo> ProcessPaymentAsync(int userId, string reference) { var uri = new Uri( new Uri(_paymentServiceBaseUrl), string.Format(ThirdPartyServices.Payment.PerformPayment(), userId, reference)); var request = new HttpRequestMessage(HttpMethod.Post, uri); var response = await _httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); return(PaymentInfoTranslator.Translate(await response.Content.ReadAsStringAsync())); }
public async Task <PaymentInfo> ProcessPaymentAsync(int userId, string reference) { var uri = new Uri( new Uri(_paymentServiceBaseUrl), string.Format(ThirdPartyServices.Payment.PerformPayment(), userId, reference)); var request = new HttpRequestMessage(HttpMethod.Post, uri); var chaosSettings = await _generalChaosSettingFactory.Value; var context = new Context(OperationKeys.PaymentApi.ToString()).WithChaosSettings(chaosSettings); var response = await _httpClient.SendAsync(request, context); response.EnsureSuccessStatusCode(); return(PaymentInfoTranslator.Translate(await response.Content.ReadAsStringAsync())); }
public async Task <PaymentInfo> ProcessPaymentAsync(int userId, string reference) { var response = await _httpInvoker.InvokeAsync(async() => { var client = new RestClient(_paymentServiceBaseUrl); var request = new RestRequest(ThirdPartyServices.Payment.PerformPayment(), Method.POST); request.AddUrlSegment(nameof(userId), userId); request.AddUrlSegment(nameof(reference), reference); return(await client.ExecuteTaskAsync(request)); }); if (response.StatusCode != HttpStatusCode.OK) { throw new InvalidOperationException("There was an error trying to perform the payment.", response.ErrorException); } return(PaymentInfoTranslator.Translate(response.Content)); }