示例#1
0
        public override Gateway.QuoteTripResponse QuoteTrip(Gateway.QuoteTripRequest request)
        {
            Logger.BeginRequest("QuoteTrip received from " + tripthru.name, request);
            Gateway.QuoteTripResponse response = null;
            {
                // TDispatch requires that we supply the string address and postal code in addition to the Lng/Lat coordinates
                Pair <string, string> pickup_address  = MapTools.GetReverseGeoLocAddress(request.pickupLocation);
                Pair <string, string> dropoff_address = MapTools.GetReverseGeoLocAddress(request.dropoffLocation);

                TDispatchAPI.GetFareRequest createRequest = new TDispatchAPI.GetFareRequest
                {
                    payment_method  = "cash",
                    pickup_location = new TDispatchAPI.Location {
                        lat = request.pickupLocation.Lat, lng = request.pickupLocation.Lng
                    },
                    pickup_time      = request.pickupTime.ToString("yyyy-MM-dd'T'HH:mm:ssK", DateTimeFormatInfo.InvariantInfo),
                    dropoff_location = new TDispatchAPI.Location {
                        lat = request.dropoffLocation.Lat, lng = request.dropoffLocation.Lng
                    }
                };
                // TODO: replace with POST /locations/fare
                TDispatchAPI.GetFareResponse createResponse = api.GetFare(createRequest);
                List <Quote> quotes = new List <Quote>();
                var          price  = 0.0;
                try
                {
                    price = double.Parse(createResponse.fare.formatted_total_cost.Replace("$", ""));
                }
                catch (Exception e) { }
                quotes.Add(new Quote(partnerID: ID, partnerName: name, fleetID: ID, fleetName: name, price: price, ETA: DateTime.UtcNow + new TimeSpan(1, 0, createResponse.fare.time_to_wait)));
                response = new Gateway.QuoteTripResponse(quotes, Result.OK);
            }
            Logger.EndRequest(response);
            return(response);
        }
示例#2
0
        public override Gateway.QuoteTripResponse QuoteTrip(Gateway.QuoteTripRequest request)
        {
            Logger.BeginRequest("QuoteTrip sent to " + name, request);
            GatewayService.Quotes quotes = new GatewayService.Quotes
            {
                access_token  = AccessToken,
                PassengerId   = request.passengerID,
                PassengerName = request.passengerName,
                Luggage       = request.luggage,
                Persons       = request.persons,
                PickupLat     = request.pickupLocation.Lat,
                PickupLng     = request.pickupLocation.Lng,
                PickupTime    = request.pickupTime,
                DropoffLat    = request.dropoffLocation == null ? (double?)null : request.dropoffLocation.Lat,
                DropoffLng    = request.dropoffLocation == null ? (double?)null : request.dropoffLocation.Lng,
                PaymentMethod = request.paymentMethod,
                VehicleType   = request.vehicleType,
                MaxPrice      = request.maxPrice,
                MinRating     = request.minRating,
                FleetId       = request.fleetID,
                DriverId      = request.driverID,
            };
            JsonServiceClient client = new JsonServiceClient(RootUrl);

            GatewayService.QuotesResponse resp     = client.Get <GatewayService.QuotesResponse>(quotes);
            Gateway.QuoteTripResponse     response = new Gateway.QuoteTripResponse
            {
                result = resp.ResultCode,
                quotes = resp.Quotes
            };
            Logger.EndRequest(response);
            return(response);
        }
 public override Gateway.QuoteTripResponse QuoteTrip(Gateway.QuoteTripRequest request)
 {
     requests++;
     Gateway.QuoteTripResponse resp = server.QuoteTrip(request);
     if (resp.result == Gateway.Result.Rejected)
     {
         rejects++;
     }
     Gateway.QuoteTripResponse response = new Gateway.QuoteTripResponse
     {
         result = resp.result,
         quotes = resp.quotes
     };
     return(response);
 }
示例#4
0
        public override Gateway.QuoteTripResponse QuoteTrip(Gateway.QuoteTripRequest request)
        {
            Uri uri;

            if (!Uri.TryCreate(RootUrl, UriKind.Absolute, out uri))
            {
                return new Gateway.QuoteTripResponse
                       {
                           result = Result.InvalidParameters
                       }
            }
            ;
            Logger.BeginRequest("QuoteTrip sent to " + name, request);
            //Logger.Log("RootURL: " + RootUrl);
            GatewayService.Quotes quotes = new GatewayService.Quotes
            {
                access_token  = AccessToken,
                PassengerId   = request.passengerID,
                PassengerName = request.passengerName,
                Luggage       = request.luggage,
                Persons       = request.persons,
                PickupLat     = request.pickupLocation.Lat,
                PickupLng     = request.pickupLocation.Lng,
                PickupTime    = request.pickupTime,
                DropoffLat    = request.dropoffLocation == null ? (double?)null : request.dropoffLocation.Lat,
                DropoffLng    = request.dropoffLocation == null ? (double?)null : request.dropoffLocation.Lng,
                PaymentMethod = request.paymentMethod,
                VehicleType   = request.vehicleType,
                MaxPrice      = request.maxPrice,
                MinRating     = request.minRating,
                FleetId       = request.fleetID,
                DriverId      = request.driverID,
            };
            JsonServiceClient client = new JsonServiceClient(RootUrl);

            client.Timeout = timeout;
            GatewayService.QuotesResponse resp     = client.Get <GatewayService.QuotesResponse>(quotes);
            Gateway.QuoteTripResponse     response = new Gateway.QuoteTripResponse
            {
                result = resp.ResultCode,
                quotes = resp.Quotes
            };
            Logger.EndRequest(response);
            return(response);
        }