/// <summary> /// Appends count number of tiles to the tile builder. /// </summary> private static void AppendTrackingDataToTile(TileXMLBuilder tileBuilder, IEnumerable<TrackingData> unorderedTrackingData) { // Append 15 minutes worth of scheduled tile notifications: DateTime time = DateTime.Now; tileBuilder.EnableNotificationQueue(); for (int i = 0; i < 15; i++) { var orderedTrackingData = (from rtd in unorderedTrackingData where !rtd.IsNoData && rtd.PredictedArrivalTime > time orderby rtd.PredictedArrivalInMinutes ascending select rtd).Take(5).ToList(); foreach (TrackingData trackingData in orderedTrackingData) { tileBuilder.AppendTileWithBlockTextAndLines( time, (trackingData.PredictedArrivalTime - time).Minutes.ToString(), trackingData.Status, string.Format("BUS {0}", trackingData.Route.ShortName.ToUpper()), trackingData.TripHeadsign.ToUpper(), trackingData.StopName.ToUpper(), string.Format("{0} / {1}", trackingData.ScheduledArrivalTime.ToString("h:mm"), trackingData.PredictedArrivalTime.ToString("h:mm"))); } time = time.AddMinutes(1); } }