public override UpdateTripStatusResponse UpdateTripStatus(UpdateTripStatusRequest r) { requests++; Gateway destPartner = GetDestinationPartner(r.clientID, r.tripID); if (destPartner != null) { Logger.AddTag("Destination partner", destPartner.name); string originClientID = r.clientID; ChangeClientIDToTripThru(r); UpdateTripStatusResponse response = destPartner.UpdateTripStatus(r); r.clientID = originClientID; if (SuccesAndTripStillActive(r, response)) { activeTrips[r.tripID].Status = r.status; if (r.status == Status.Complete) { GetTripStatusResponse resp = GetPriceAndDistanceDetailsFromClient(r); DeactivateTripAndUpdateStats(r.tripID, Status.Complete, resp.price, resp.distance); } else if (r.status == Status.Cancelled || r.status == Status.Rejected) { DeactivateTripAndUpdateStats(r.tripID, r.status); } } else { Logger.Log("Request to destination partner failed, Result=" + response.result); } return(response); } Logger.Log("Destination partner trip not found"); Logger.AddTag("ClientId", r.clientID); return(new UpdateTripStatusResponse(result: Result.NotFound)); }
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); }
public override Gateway.UpdateTripStatusResponse UpdateTripStatus(Gateway.UpdateTripStatusRequest request) { Logger.BeginRequest("UpdateTripStatus sent to " + server.name, request); UpdateTripStatusResponse response = server.UpdateTripStatus(request); Logger.EndRequest(response); return(response); }
public override Gateway.UpdateTripStatusResponse UpdateTripStatus(Gateway.UpdateTripStatusRequest request) { Logger.BeginRequest("UpdateTripStatus received from " + gateway.GetName(request.clientID), request); UpdateTripStatusResponse response = gateway.UpdateTripStatus(request); Logger.EndRequest(response); return(response); }
public override UpdateTripStatusResponse UpdateTripStatus(UpdateTripStatusRequest r) { // Note: GetTrip populates the foreignTripID requests++; if (!tripsByID.ContainsKey(r.tripID)) return new UpdateTripStatusResponse(result: Result.NotFound); PartnerTrip t = tripsByID[r.tripID]; UpdateTripStatusResponse response = new UpdateTripStatusResponse(); t.UpdateTripStatus(notifyPartner: false, status: r.status, driverLocation: r.driverLocation, eta: r.eta); return response; }
private bool SuccesAndTripStillActive(UpdateTripStatusRequest r, UpdateTripStatusResponse response) { return response.result == Result.OK && activeTrips.ContainsKey(r.tripID); }
public override UpdateTripStatusResponse UpdateTripStatus(UpdateTripStatusRequest r) { // Note: GetTrip populates the foreignTripID UpdateTripStatusResponse response; { requests++; if (!tripsByID.ContainsKey(r.tripID)) { response = new UpdateTripStatusResponse(result: Result.NotFound); } else { PartnerTrip t = tripsByID[r.tripID]; //lock (t) //{ response = new UpdateTripStatusResponse(); t.UpdateTripStatus(notifyPartner: false, status: r.status, driverLocation: r.driverLocation, eta: r.eta); //} Logger.SetServicingId(this.ID); } } return response; }
private bool SuccesAndTripStillActive(UpdateTripStatusRequest r, UpdateTripStatusResponse response) { return(response.result == Result.OK && activeTrips.ContainsKey(r.tripID)); }
public override UpdateTripStatusResponse UpdateTripStatus(UpdateTripStatusRequest r) { requests++; Gateway destPartner = GetDestinationPartner(r.clientID, r.tripID); if (destPartner != null) { UpdateTripStatusResponse response = null; Logger.AddTag("Destination partner", destPartner.name); Logger.SetServicingId(destPartner.ID); if (ShouldForwardTripUpdate(r, destPartner)) { string originClientID = r.clientID; ChangeClientIDToTripThru(r); response = destPartner.UpdateTripStatus(r); r.clientID = originClientID; } else { response = new UpdateTripStatusResponse(result: Result.OK); } if (activeTrips.ContainsKey(r.tripID) && r.driverLocation != null) { if (activeTrips[r.tripID].DriverInitiaLocation == null) { activeTrips[r.tripID].DriverInitiaLocation = r.driverLocation; } switch (r.status) { case Status.Enroute: activeTrips[r.tripID].AddEnrouteLocationList(r.driverLocation); break; case Status.PickedUp: activeTrips[r.tripID].AddPickUpLocationList(r.driverLocation); break; } } if (SuccesAndTripStillActive(r, response)) { activeTrips[r.tripID].Status = r.status; switch (r.status) { case Status.PickedUp: { DateTime pickupTime = DateTime.UtcNow; TimeSpan lateness = pickupTime - (DateTime)activeTrips[r.tripID].Creation; activeTrips[r.tripID].PickupTime = pickupTime; activeTrips[r.tripID].Lateness = lateness; activeTrips[r.tripID].LatenessMilliseconds = lateness.TotalMilliseconds; break; } case Status.Complete: { GetTripStatusResponse resp = GetPriceAndDistanceDetailsFromClient(r); DeactivateTripAndUpdateStats(r.tripID, Status.Complete, resp.price, resp.distance); } break; case Status.Rejected: case Status.Cancelled: DeactivateTripAndUpdateStats(r.tripID, r.status); break; } } else { Logger.Log("Request to destination partner failed, Result=" + response.result); } return(response); } Logger.Log("Destination partner trip not found"); Logger.AddTag("ClientId", r.clientID); return(new UpdateTripStatusResponse(result: Result.NotFound)); }
public override UpdateTripStatusResponse UpdateTripStatus(UpdateTripStatusRequest r) { requests++; Gateway destPartner = GetDestinationPartner(r.clientID, r.tripID); if (destPartner != null) { UpdateTripStatusResponse response = null; Logger.AddTag("Destination partner", destPartner.name); Logger.SetServicingId(destPartner.ID); if (ShouldForwardTripUpdate(r, destPartner)) { string originClientID = r.clientID; ChangeClientIDToTripThru(r); response = destPartner.UpdateTripStatus(r); r.clientID = originClientID; } else response = new UpdateTripStatusResponse(result: Result.OK); if (activeTrips.ContainsKey(r.tripID) && r.driverLocation != null){ if (activeTrips[r.tripID].DriverInitiaLocation == null) activeTrips[r.tripID].DriverInitiaLocation = r.driverLocation; switch (r.status) { case Status.Enroute: activeTrips[r.tripID].AddEnrouteLocationList(r.driverLocation); break; case Status.PickedUp: activeTrips[r.tripID].AddPickUpLocationList(r.driverLocation); break; } } if (SuccesAndTripStillActive(r, response)) { activeTrips[r.tripID].Status = r.status; switch (r.status) { case Status.PickedUp: { DateTime pickupTime = DateTime.UtcNow; TimeSpan lateness = pickupTime - (DateTime)activeTrips[r.tripID].Creation; activeTrips[r.tripID].PickupTime = pickupTime; activeTrips[r.tripID].Lateness = lateness; activeTrips[r.tripID].LatenessMilliseconds = lateness.TotalMilliseconds; break; } case Status.Complete: { GetTripStatusResponse resp = GetPriceAndDistanceDetailsFromClient(r); DeactivateTripAndUpdateStats(r.tripID, Status.Complete, resp.price, resp.distance); } break; case Status.Rejected: case Status.Cancelled: DeactivateTripAndUpdateStats(r.tripID, r.status); break; } } else Logger.Log("Request to destination partner failed, Result=" + response.result); return response; } Logger.Log("Destination partner trip not found"); Logger.AddTag("ClientId", r.clientID); return new UpdateTripStatusResponse(result: Result.NotFound); }