void RequestTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { TimerCounter++; if (TimerCounter == 30) { if (!isDriverAccepted) { TimerCounter = 0; DatabaseReference cancelDriverRef = database.GetReference("driversAvailable/" + selectedDriver.ID + "/ride_id"); cancelDriverRef.SetValue("timeout"); if (mAvailableDrivers != null) { NotifyDriver(mAvailableDrivers); } else { RequestTimer.Enabled = false; //Event NoDriverAcceptedRequest?.Invoke(this, new EventArgs()); } } } }
public void NotifyDriver(List <AvailableDriver> availableDrivers) { mAvailableDrivers = availableDrivers; if (mAvailableDrivers.Count >= 1 && mAvailableDrivers != null) { selectedDriver = mAvailableDrivers[0]; notifyDriverRef = database.GetReference("driversAvailable/" + selectedDriver.ID + "/ride_id"); notifyDriverRef.SetValue(newTrip.RideID); if (mAvailableDrivers.Count > 1) { mAvailableDrivers.RemoveAt(0); } else if (mAvailableDrivers.Count == 1) { mAvailableDrivers = null; } RequestTimer.Enabled = true; } else { //No driver accepted RequestTimer.Enabled = false; NoDriverAcceptedRequest?.Invoke(this, new EventArgs()); } }
private void RequestTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { timerCounter++; if (timerCounter == 10) { if (!isDriverAccepted) { timerCounter = 0; DatabaseReference timeoutdriverRef = Database.DefaultInstance.GetRootReference().GetChild("driversAvailable/" + selectedDriver.ID + "/ride_id"); timeoutdriverRef.SetValue <NSString>((NSString)"timeout"); // Pass down request to another driver if (availableDrivers != null) { NotifyDriver(availableDrivers); } else { RequestTimer.Enabled = false; NoDriverAcceptedRequest?.Invoke(this, new EventArgs()); } } } }
public void NotifyDriver(List <AvailableDriver> drivers) { availableDrivers = drivers; if (availableDrivers.Count >= 1 && availableDrivers != null) { selectedDriver = availableDrivers[0]; notifyDriverRef = Database.DefaultInstance.GetRootReference().GetChild("driversAvailable/" + selectedDriver.ID + "/ride_id"); notifyDriverRef.SetValue <NSString>((NSString)newTripDetails.RideID); // Remove selected driver from the list if (availableDrivers.Count > 1) { availableDrivers.RemoveAt(0); } else if (availableDrivers.Count == 1) { availableDrivers = null; } RequestTimer.Enabled = true; } else { // No driver accepted RequestTimer.Enabled = false; NoDriverAcceptedRequest?.Invoke(this, new EventArgs()); } }
public void NotifyDriver(List <ActiveDrivers> availableDrivers, Rides rideInfo) { rides = rideInfo; mAvailableDrivers = availableDrivers; if (mAvailableDrivers.Count >= 1 && mAvailableDrivers != null) { selectedDriver = mAvailableDrivers[0]; // notifyDriverRef = database.GetReference("driversAvailable/" + selectedDriver.ID + "/ride_id"); // notifyDriverRef.SetValue(newTrip.RideID); string driverID = selectedDriver.DriverId.ToString(); string rideDetails = JsonConvert.SerializeObject(RideDetails()); SendNotification.Invoke(this, new SendNotificationEventArgs { driverID = driverID, rideDetails = rideDetails }); // hubConnection.InvokeAsync("NotifyDriver", driverID ,rideDetails ); if (mAvailableDrivers.Count > 1) { mAvailableDrivers.RemoveAt(0); } else if (mAvailableDrivers.Count == 1) { //No more available drivers in our list mAvailableDrivers = null; } RequestTimer.Enabled = true; } else { //No driver accepted RequestTimer.Enabled = false; NoDriverAcceptedRequest?.Invoke(this, new EventArgs()); } }