public override Gateway.GetTripStatusResponse GetTripStatus(Gateway.GetTripStatusRequest request) { Logger.BeginRequest("GetTripStatus sent to " + server.name, request); Gateway.GetTripStatusResponse response = server.GetTripStatus(request); Logger.EndRequest(response); return response; }
public Partner(string ID, string name, Gateway tripthru, List<PartnerFleet> PartnerFleets = null, string preferedPartnerId = null) : base(ID, name) { this.tripthru = tripthru; this.preferedPartnerId = preferedPartnerId; this.PartnerFleets = new Dictionary<string, PartnerFleet>(); if (PartnerFleets != null) { foreach (PartnerFleet f in PartnerFleets) AddPartnerFleet(f); } tripsByID = new Dictionary<string, PartnerTrip>(); partnerAccounts.Clear(); clientIdByAccessToken.Clear(); { PartnerAccount partnerAccount = new PartnerAccount { UserName = "******", Password = "******", Email = "*****@*****.**", AccessToken = "jaosid1201231", RefreshToken = "jaosid1201231", ClientId = "TripThru", ClientSecret = "23noiasdn2123" }; partnerAccounts[partnerAccount.ClientId] = partnerAccount; clientIdByAccessToken[partnerAccount.AccessToken] = partnerAccount.ClientId; } }
public override Gateway.GetPartnerInfoResponse GetPartnerInfo(Gateway.GetPartnerInfoRequest request) { Logger.BeginRequest("GetPartnerInfo sent to " + server.name, request); Gateway.GetPartnerInfoResponse response = server.GetPartnerInfo(request); Logger.EndRequest(response); return response; }
public Partner(string ID, string name, Gateway tripthru, List<PartnerFleet> PartnerFleets = null, string preferedPartnerId = null) : base(ID, name) { this.tripthru = tripthru; this.preferedPartnerId = preferedPartnerId; this.PartnerFleets = new Dictionary<string, PartnerFleet>(); if (PartnerFleets != null) { foreach (PartnerFleet f in PartnerFleets) AddPartnerFleet(f); } tripsByID = new Dictionary<string, PartnerTrip>(); partnerAccounts.Clear(); clientIdByAccessToken.Clear(); var accounts = StorageManager.GetPartnerAccounts(); if (accounts != null) foreach (PartnerAccount account in accounts) { if (Storage.Storage.UserRole.partner != account.Role && account.ClientId != "TripThru") continue; if (!partnerAccounts.ContainsKey(account.ClientId)) partnerAccounts[account.ClientId] = account; if (!clientIdByAccessToken.ContainsKey(account.AccessToken)) clientIdByAccessToken[account.AccessToken] = account.ClientId; } PartnerTrip.nextID = base.activeTrips.lastID; }
public override Gateway.RegisterPartnerResponse RegisterPartner(Gateway.RegisterPartnerRequest request) { Logger.BeginRequest("RegisterPartner sent to " + server.name, request); Gateway.RegisterPartnerResponse response = server.RegisterPartner(request); Logger.EndRequest(response); return response; }
public override Gateway.QuoteTripResponse QuoteTrip(Gateway.QuoteTripRequest request) { Logger.BeginRequest("QuoteTrip sent to " + server.name, request); Gateway.QuoteTripResponse response = server.QuoteTrip(request); Logger.EndRequest(response); return response; }
public override Gateway.DispatchTripResponse DispatchTrip(Gateway.DispatchTripRequest request) { requests++; requests++; //Assuming Tripthru will quote itself in AutoDispatch Gateway.DispatchTripResponse resp = server.DispatchTrip(request); if (resp.result == Gateway.Result.Rejected) rejects++; Gateway.DispatchTripResponse response = new Gateway.DispatchTripResponse { result = resp.result, }; return response; }
public override Gateway.GetPartnerInfoResponse GetPartnerInfo(Gateway.GetPartnerInfoRequest request) { requests++; Gateway.GetPartnerInfoResponse resp = server.GetPartnerInfo(request); Gateway.GetPartnerInfoResponse response = new Gateway.GetPartnerInfoResponse { fleets = resp.fleets, vehicleTypes = resp.vehicleTypes, result = resp.result }; return response; }
public override Gateway.DispatchTripResponse DispatchTrip(Gateway.DispatchTripRequest request) { requests++; requests++; //Assuming Tripthru will quote itself in AutoDispatch Gateway.DispatchTripResponse resp = server.DispatchTrip(request); if (resp.result == Gateway.Result.Rejected) rejects++; if (resp.result == Result.OK) { var resp1 = GetTripStatus(new GetTripStatusRequest(request.clientID, request.tripID)); if (resp1.distance != null) distance = distance + resp1.distance.Value; } Gateway.DispatchTripResponse response = new Gateway.DispatchTripResponse { result = resp.result, }; return response; }
public override Gateway.GetPartnerInfoResponse GetPartnerInfo(Gateway.GetPartnerInfoRequest request) { Logger.BeginRequest("GetPartnerInfo sent to " + name, request); JsonServiceClient client = new JsonServiceClient(RootUrl); GatewayService.PartnersResponse resp = client.Get<GatewayService.PartnersResponse>(new GatewayService.Partners { access_token = AccessToken, }); Gateway.GetPartnerInfoResponse response = new Gateway.GetPartnerInfoResponse { fleets = resp.Fleets, vehicleTypes = resp.VehicleTypes, result = resp.ResultCode }; Logger.EndRequest(response); return response; }
public override Gateway.DispatchTripResponse DispatchTrip(Gateway.DispatchTripRequest request) { Uri uri; if (!Uri.TryCreate(RootUrl, UriKind.Absolute, out uri)) return new Gateway.DispatchTripResponse { result = Result.InvalidParameters }; Logger.BeginRequest("DispatchTrip sent to " + name, request); //Logger.Log("RootURL: " + RootUrl); GatewayService.Trip dispatch = new GatewayService.Trip { 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, PartnerId = request.partnerID, FleetId = request.fleetID, DriverId = request.driverID, TripId = request.tripID }; JsonServiceClient client = new JsonServiceClient(RootUrl); client.Timeout = timeout; GatewayService.TripResponse resp = client.Post<GatewayService.TripResponse>(dispatch); Gateway.DispatchTripResponse response = new Gateway.DispatchTripResponse { result = resp.ResultCode, }; Logger.EndRequest(response); return response; }
public Test_TripLifeCycle_Base( string filename, Gateway tripthru, TimeSpan? maxLateness = null, PartnerTrip.Origination? origination = null, PartnerTrip.Origination? service = null, double? locationVerificationTolerance = null) { this.filename = filename; this.tripthru = tripthru; if (maxLateness != null) this.maxLateness = (TimeSpan)maxLateness; if (origination != null) this.origination = origination; if (service != null) this.service = service; if (locationVerificationTolerance != null) this.locationVerificationTolerance = (double)locationVerificationTolerance; PartnerConfiguration configuration = Partner.LoadPartnerConfigurationFromJsonFile(filename); partner = new Partner(configuration.Partner.ClientId, configuration.Partner.Name, new GatewayClientMock(tripthru), configuration.partnerFleets); partner.tripthru.RegisterPartner(partner); }
public override Gateway.GetTripStatusResponse GetTripStatus(Gateway.GetTripStatusRequest request) { requests++; Gateway.GetTripStatusResponse resp = server.GetTripStatus(request); Gateway.GetTripStatusResponse response; if (resp.result == Gateway.Result.OK) { response = new Gateway.GetTripStatusResponse { result = Gateway.Result.OK, ETA = resp.ETA, passengerName = resp.passengerName, driverID = resp.driverID, driverLocation = resp.driverLocation, driverName = resp.driverName, dropoffTime = resp.dropoffTime, dropoffLocation = resp.dropoffLocation, fleetName = resp.fleetName, fleetID = resp.fleetID, vehicleType = resp.vehicleType, status = resp.status, partnerName = resp.partnerName, partnerID = resp.partnerID, pickupTime = resp.pickupTime, pickupLocation = resp.pickupLocation, distance = resp.distance, driverRouteDuration = resp.driverRouteDuration, price = resp.price }; } else { response = new Gateway.GetTripStatusResponse { result = resp.result }; } return response; }
public override Gateway.GetTripStatusResponse GetTripStatus(Gateway.GetTripStatusRequest request) { Logger.BeginRequest("GetTripStatus sent to " + name, request); JsonServiceClient client = new JsonServiceClient(RootUrl); GatewayService.TripStatusResponse resp = client.Get<GatewayService.TripStatusResponse>(new GatewayService.TripStatus { access_token = AccessToken, TripId = request.tripID }); GetTripStatusResponse response; if (resp.ResultCode == Result.OK) { response = new Gateway.GetTripStatusResponse { result = Gateway.Result.OK, ETA = resp.ETA, passengerName = resp.PassengerName, driverID = resp.DriverId, driverLocation = resp.DriverLocation, driverName = resp.DriverName, dropoffTime = resp.DropoffTime, dropoffLocation = resp.DropoffLocation, fleetName = resp.FleetName, fleetID = resp.FleetId, vehicleType = resp.VehicleType, status = resp.Status, partnerName = resp.PartnerName, partnerID = resp.PartnerId, pickupTime = resp.PickupTime, pickupLocation = resp.PickupLocation, distance = resp.Distance, driverRouteDuration = resp.DriverRouteDuration, price = resp.Price }; } else { response = new Gateway.GetTripStatusResponse { result = resp.ResultCode }; } Logger.EndRequest(response); return response; }
public override Gateway.RegisterPartnerResponse RegisterPartner(Gateway.RegisterPartnerRequest request) { JsonServiceClient client = new JsonServiceClient(RootUrl); GatewayService.PartnerResponse resp = client.Post<GatewayService.PartnerResponse>(new GatewayService.PartnerRequest { access_token = AccessToken, Name = request.name, CallbackUrl = request.callback_url }); return new Gateway.RegisterPartnerResponse { result = resp.ResultCode }; }
public override Gateway.RegisterPartnerResponse RegisterPartner(Gateway partner) { return(MakeRejectRegisterPartnerResponse()); }
protected DispatchTripResponse MakeRejectDispatchResponse(DispatchTripRequest r, Gateway client, Gateway partner) { DispatchTripResponse response; rejects++; response = new DispatchTripResponse(result: Result.Rejected); var trip = new Trip { Id = r.tripID, OriginatingPartnerName = client.name, OriginatingPartnerId = client.ID, ServicingPartnerName = partner == null ? null : partner.name, ServicingPartnerId = partner == null ? null : partner.ID, Status = Status.Rejected, PickupLocation = r.pickupLocation, PickupTime = r.pickupTime, DropoffLocation = r.dropoffLocation, PassengerName = r.passengerName, VehicleType = r.vehicleType, Creation = DateTime.UtcNow, LatenessMilliseconds = 0, SamplingPercentage = 1 }; activeTrips.SaveTrip(trip); // Hack: save trip should be moved somewhere else. return response; }
private void RequestQuotesFromPartnerAndAdd(QuoteTripRequest request, List<Quote> quotes, Gateway partner) { string savedClientID = request.clientID; request.clientID = ID; QuoteTripResponse response = partner.QuoteTrip(request); if (response.result == Result.OK) { if (response.quotes != null) quotes.AddRange(response.quotes); } request.clientID = savedClientID; }
private void RegisterOfficeConfiguration(Gateway tripThru, Office o) { List<Fleet> fleets = new List<Fleet>(); List<Zone> coverage = o.coverage; fleets.Add(new Fleet("TDispatch", "TDispatch", o.name, o.name, coverage)); List<VehicleType> vehicleTypes = new List<VehicleType>(); TDispatchIntegration partner = new TDispatchIntegration(tripThru, apiKey: o.api_key, fleetAuth: o.fleetAuthorizationCode, fleetAccessToken: o.fleetAccessToken, fleetRefreshToken: o.fleetRefreshToken, passengerAuth: o.passengerAuthorizationCode, passengerAccessToken: o.passengerAccessToken, passengerRefreshToken: o.passengerRefreshToken, passengerProxyPK: o.passengerProxyPK, fleets: fleets, vehicleTypes: vehicleTypes); o.fleetAccessToken = partner.api.FLEET_ACCESS_TOKEN; o.fleetRefreshToken = partner.api.FLEET_REFRESH_TOKEN; o.passengerAccessToken = partner.api.PASSENGER_ACCESS_TOKEN; o.passengerRefreshToken = partner.api.PASSENGER_REFRESH_TOKEN; o.ID = partner.ID; o.name = partner.name; RegisterPartner(new GatewayLocalClient(partner)); // the local client is not necessary, it just encloses the call inside a Begin/End request (for logging) }
private void RecordTripOriginatingAndServicingPartner(DispatchTripRequest r, Gateway partner) { originatingPartnerByTrip.Add(r.tripID, r.clientID); Logger.AddTag("Originating partner", r.clientID); servicingPartnerByTrip.Add(r.tripID, partner.ID); Logger.AddTag("Servicing partner", partner.name); }
public override Gateway.UpdateTripStatusResponse UpdateTripStatus(Gateway.UpdateTripStatusRequest request) { Logger.BeginRequest("UpdateTripStatus sent to " + name, request); JsonServiceClient client = new JsonServiceClient(RootUrl); GatewayService.TripStatusResponse resp = client.Put<GatewayService.TripStatusResponse>(new GatewayService.TripStatus { access_token = AccessToken, Status = request.status, TripId = request.tripID, DriverLocationLat = request.driverLocation != null ? (double?)request.driverLocation.Lat : null, DriverLocationLng = request.driverLocation != null ? (double?)request.driverLocation.Lng : null, DriverLocationAddress = request.driverLocation != null ? request.driverLocation.Address : null }); Gateway.UpdateTripStatusResponse response; response = new Gateway.UpdateTripStatusResponse { result = resp.ResultCode }; Logger.EndRequest(response); return response; }
public GatewayLocalClient(Gateway server) : base(server.ID, server.name) { this.server = server; }
private Gateway SelectThePartnerWithBestQuote(DispatchTripRequest r, Gateway partner, QuoteTripResponse response) { Quote bestQuote = null; DateTime bestETA = r.pickupTime + missedBookingPeriod; // not more than 30 minues late foreach (Quote q in response.quotes) { DateTime eta = (DateTime)q.ETA; if (eta == null) // if no ETA is returned then we assum a certain lateness. eta = r.pickupTime + missedBookingPeriod - new TimeSpan(0, 1, 0); if (eta.ToUniversalTime() < bestETA.ToUniversalTime()) { bestETA = (DateTime)q.ETA; bestQuote = q; } } if (bestQuote != null) { partner = partners[bestQuote.PartnerId]; r.fleetID = bestQuote.FleetId; Logger.Log("Best quote " + bestQuote + " from " + partner.name); } else Logger.Log("There are no partners to handle this trip within an exceptable service time"); return partner; }
virtual public RegisterPartnerResponse RegisterPartner(Gateway partner) { throw new Exception("Not supported"); }
public GatewayLocalServer(Gateway gateway) : base(gateway.ID, gateway.name) { this.gateway = gateway; }
public GatewayClientMock(Gateway server) : base(server.ID, server.name) { this.server = server; }
private static bool PartnerHasBeenSelected(Gateway partner) { return(partner != null); }
public override Gateway.RegisterPartnerResponse RegisterPartner(Gateway gateway) { requests++; Gateway.RegisterPartnerResponse resp = server.RegisterPartner(gateway); if (resp.result == Gateway.Result.Rejected) rejects++; return new Gateway.RegisterPartnerResponse { result = resp.result }; }
public override Gateway.UpdateTripStatusResponse UpdateTripStatus(Gateway.UpdateTripStatusRequest request) { requests++; UpdateTripStatusResponse resp = server.UpdateTripStatus(request); if (resp.result == Gateway.Result.Rejected) rejects++; switch (request.status) { case Status.Cancelled: cancels++; break; case Status.Complete: completes++; break; } Gateway.UpdateTripStatusResponse response; response = new Gateway.UpdateTripStatusResponse { result = resp.result }; return response; }
private void RequestQuotesFromPartnerAndAdd(QuoteTripRequest request, List <Quote> quotes, Gateway partner) { string savedClientID = request.clientID; request.clientID = ID; QuoteTripResponse response = partner.QuoteTrip(request); if (response.result == Result.OK) { if (response.quotes != null) { quotes.AddRange(response.quotes); } } request.clientID = savedClientID; }
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; }
public virtual RegisterPartnerResponse RegisterPartner(Gateway partner) { throw new Exception("Not supported"); }
public override Gateway.RegisterPartnerResponse RegisterPartner(Gateway partner) { return MakeRejectRegisterPartnerResponse(); }
public override GetGatewayStatsResponse GetGatewayStats(Gateway.GetGatewayStatsRequest request) { try { GetGatewayStatsResponse resp = new GetGatewayStatsResponse( activeTrips: activeTrips.Count, requestsAllTime: (long)requests.allTime.value, requestsLast24Hrs: (long)requests.last24Hrs.Count, requestsLastHour: (long)requests.lastHour.Count, rejectsAllTime: (long)rejects.allTime.value, rejectsLast24Hrs: (long)rejects.last24Hrs.Count, rejectsLastHour: (long)rejects.lastHour.Count, cancelsAllTime: (long)cancels.allTime.value, cancelsLast24Hrs: (long)cancels.last24Hrs.Count, cancelsLastHour: (long)cancels.lastHour.Count, exceptionsAllTime: (long)exceptions.allTime.value, exceptionsLast24Hrs: (long)exceptions.last24Hrs.Count, exceptionsLastHour: (long)exceptions.lastHour.Count, tripsAllTime: (long)completes.allTime.value, tripsLast24Hrs: (long)completes.last24Hrs.Count, tripsLastHour: (long)completes.lastHour.Count, distanceAllTime: distance.allTime.value, distanceLast24Hours: distance.last24Hrs.Count, distanceLastHour: distance.lastHour.Count, fareAllTime: fare.allTime.value, fareLast24Hrs: fare.last24Hrs.Count, fareLastHour: fare.lastHour.Count); return resp; } catch (Exception e) { exceptions++; Logger.LogDebug("GatewayStats=" + e.Message, e.ToString()); return new GetGatewayStatsResponse(result: Result.UnknownError); } }
private bool PickupLocationIsServedByPartner(QuoteTripRequest r, Gateway p) { bool covered = false; foreach (Zone z in GetPartnerCoverage(p.ID)) { if (z.IsInside(r.pickupLocation)) { covered = true; break; } } return covered; }
public override Gateway.DispatchTripResponse DispatchTrip(Gateway.DispatchTripRequest request) { Logger.BeginRequest("DispatchTrip sent to " + name, request); GatewayService.Dispatch dispatch = new GatewayService.Dispatch { 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, PartnerId = request.partnerID, FleetId = request.fleetID, DriverId = request.driverID, TripId = request.tripID }; JsonServiceClient client = new JsonServiceClient(RootUrl); GatewayService.DispatchResponse resp = client.Get<GatewayService.DispatchResponse>(dispatch); Gateway.DispatchTripResponse response = new Gateway.DispatchTripResponse { result = resp.ResultCode, }; Logger.EndRequest(response); return response; }