Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 2
0
        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()));
        }