public bool Equals(StopAndRoutePair pair) { if ((object)pair == null) { return(false); } return(string.Equals(Stop, pair.Stop, StringComparison.OrdinalIgnoreCase) && string.Equals(Route, pair.Route, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// Makes a tracking data that's used to indicate no data. /// </summary> public TrackingData(StopAndRoutePair pair) { this.isNoData = true; this.StopId = pair.Stop; this.StopName = pair.StopName; this.RouteId = pair.Route; this.Status = "NO DATA"; this.Route = new Route() { ShortName = pair.RouteName, Id = pair.Route }; this.stopAndRoute = new StopAndRoutePair(this); }
/// <summary> /// Creates a no data tracking data out of the specific stop & route. /// </summary> public TrackingData(string stopId, string stopName, string routeId, string routeName, string routeDescription) { this.isNoData = true; this.StopId = stopId; this.StopName = stopName; this.RouteId = routeId; this.Status = "NO DATA"; this.StopOrDestination = routeDescription; this.Route = new Route() { ShortName = routeName, Id = routeId }; this.stopAndRoute = new StopAndRoutePair(this); }
/// <summary> /// Creates the tracking data out of an arrival and departure element. /// </summary> public TrackingData(DateTime serverTime, string stopId, string stopName, XElement arrivalAndDepartureElement) { this.RouteId = arrivalAndDepartureElement.GetFirstElementValue <string>("routeId"); this.TripId = arrivalAndDepartureElement.GetFirstElementValue <string>("tripId"); this.TripHeadsign = arrivalAndDepartureElement.GetFirstElementValue <string>("tripHeadsign"); this.StopName = stopName; this.StopId = stopId; this.Context = OneStop; scheduledArrivalTime = arrivalAndDepartureElement.GetFirstElementValue <long>("scheduledArrivalTime").ToDateTime(); this.ScheduledArrivalInMinutes = (scheduledArrivalTime - serverTime).Minutes; long predictedTime = arrivalAndDepartureElement.GetFirstElementValue <long>("predictedArrivalTime"); if (predictedTime > 0) { DateTime predictedArrivalDateTime = predictedTime.ToDateTime(); this.PredictedArrivalInMinutes = (predictedArrivalDateTime - serverTime).Minutes; } else { this.PredictedArrivalInMinutes = this.scheduledArrivalInMinutes; } this.scheduledArrivalTime = DateTime.Now.AddMinutes(this.scheduledArrivalInMinutes); this.predictedArrivalTime = DateTime.Now.AddMinutes(this.predictedArrivalInMinutes); int difference = this.predictedArrivalInMinutes - this.scheduledArrivalInMinutes; if (difference > 0) { this.status = "DELAY"; } else { this.status = "ON TIME"; } // Grab the route element from the document and parse it into a Route object: var routeElements = (from routeElement in arrivalAndDepartureElement.Document.Descendants("route") where routeElement.GetFirstElementValue <string>("id") == this.RouteId select routeElement).ToList(); this.Route = new Route(routeElements[0]); this.stopAndRoute = new StopAndRoutePair(this); }
public bool Equals(StopAndRoutePair pair) { if ((object)pair == null) { return false; } return string.Equals(Stop, pair.Stop, StringComparison.OrdinalIgnoreCase) && string.Equals(Route, pair.Route, StringComparison.OrdinalIgnoreCase); }
/// <summary> /// Returns true if the pair is a favorite. /// </summary> public static async Task <bool> IsFavoriteAsync(StopAndRoutePair pair) { await InitializeAsync(); return(instance.favorites.Contains(pair)); }
/// <summary> /// Removes a favorite from the collection. /// </summary> public static async Task RemoveAsync(StopAndRoutePair pair) { await InitializeAsync(); instance.favorites.Remove(pair); }
/// <summary> /// Adds a favorite to the collection. /// </summary> public static async Task AddAsync(StopAndRoutePair pair) { await InitializeAsync(); instance.favorites.Add(pair); }
/// <summary> /// Returns true if the pair is a favorite. /// </summary> public static async Task<bool> IsFavoriteAsync(StopAndRoutePair pair) { await InitializeAsync(); return instance.favorites.Contains(pair); }
/// <summary> /// Creates the tracking data out of an arrival and departure element. /// </summary> public TrackingData(DateTime serverTime, string stopId, string stopName, XElement arrivalAndDepartureElement) { this.RouteId = arrivalAndDepartureElement.GetFirstElementValue<string>("routeId"); this.TripId = arrivalAndDepartureElement.GetFirstElementValue<string>("tripId"); this.TripHeadsign = arrivalAndDepartureElement.GetFirstElementValue<string>("tripHeadsign"); this.StopName = stopName; this.StopId = stopId; this.Context = OneStop; scheduledArrivalTime = arrivalAndDepartureElement.GetFirstElementValue<long>("scheduledArrivalTime").ToDateTime(); this.ScheduledArrivalInMinutes = (scheduledArrivalTime - serverTime).Minutes; long predictedTime = arrivalAndDepartureElement.GetFirstElementValue<long>("predictedArrivalTime"); if (predictedTime > 0) { DateTime predictedArrivalDateTime = predictedTime.ToDateTime(); this.PredictedArrivalInMinutes = (predictedArrivalDateTime - serverTime).Minutes; } else { this.PredictedArrivalInMinutes = this.scheduledArrivalInMinutes; } this.scheduledArrivalTime = DateTime.Now.AddMinutes(this.scheduledArrivalInMinutes); this.predictedArrivalTime = DateTime.Now.AddMinutes(this.predictedArrivalInMinutes); int difference = this.predictedArrivalInMinutes - this.scheduledArrivalInMinutes; if (difference > 0) { this.status = "DELAY"; } else { this.status = "ON TIME"; } // Grab the route element from the document and parse it into a Route object: var routeElements = (from routeElement in arrivalAndDepartureElement.Document.Descendants("route") where routeElement.GetFirstElementValue<string>("id") == this.RouteId select routeElement).ToList(); this.Route = new Route(routeElements[0]); this.stopAndRoute = new StopAndRoutePair(this); }