Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 /// <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>
 /// 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);
 }
Exemplo n.º 4
0
 /// <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 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);
        }
Exemplo n.º 8
0
        /// <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));
        }
Exemplo n.º 9
0
        /// <summary>
        /// Removes a favorite from the collection.
        /// </summary>
        public static async Task RemoveAsync(StopAndRoutePair pair)
        {
            await InitializeAsync();

            instance.favorites.Remove(pair);
        }
Exemplo n.º 10
0
 /// <summary>
 /// Adds a favorite to the collection.
 /// </summary>
 public static async Task AddAsync(StopAndRoutePair pair)
 {
     await InitializeAsync();
     instance.favorites.Add(pair);
 }
Exemplo n.º 11
0
 /// <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);
 }
Exemplo n.º 12
0
        /// <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);
        }