private async Task <Guid> CreateTrip(TripRequestModel model) { var drivers = await GetDrivers(); var users = await GetUsers(); var driverInfo = drivers.SingleOrDefault(x => x.Id == int.Parse(model.Driver)); var userInfo = users.SingleOrDefault(x => x.Id == int.Parse(model.User)); var uri = new Uri(new Uri(_tripApiSettings.Value.BaseUrl), _tripApiSettings.Value.CreateUrl); var request = new HttpRequestMessage(HttpMethod.Post, uri) { Content = new JsonContent(new { userId = int.Parse(model.User), driverId = int.Parse(model.Driver), from = _originsAndDestinations.Values.SingleOrDefault(x => x.Description == model.From), to = _originsAndDestinations.Values.SingleOrDefault(x => x.Description == model.To), plate = driverInfo?.CurrentVehicle.Plate, brand = driverInfo?.CurrentVehicle.Brand, model = driverInfo?.CurrentVehicle.Model, paymentMethod = userInfo?.PaymentMethod }) }; var response = await _httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); return(JsonConvert.DeserializeObject <Guid>(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 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())); }