private void GetStopTimes(BusSnapshotInfo status, out StopTimeInfo last, out StopTimeInfo next) { last = next = null; var times = StaticData.GetStopTimesByTripId(status.TripId); var stoptimes = new LinkedList<StopTimeInfo>(times.OrderBy(st => st.Sequence)); if (stoptimes == null || stoptimes.Count == 0) { return; } var busTime = status.AdjustedTimestamp; LinkedListNode<StopTimeInfo> node = stoptimes.First; while(node != null) { if(busTime < node.Value.Arrival) { next = node.Value; break; } last = node.Value; node = node.Next; } }
public Task<Tuple<StopTimeInfo, StopTimeInfo>> GetStopTimes(BusSnapshotInfo status) { StopTimeInfo last = null; StopTimeInfo next = null; GetStopTimes(status, out last, out next); return Task.FromResult(Tuple.Create(last, next)); }
public void HandleSnapshot(BusSnapshotInfo snapshot) { var eventHubClient = EventHubClient.CreateFromConnectionString(_ehConnectionString, _ehName); var snapJson = JsonConvert.SerializeObject(snapshot); var data = new EventData(Encoding.UTF8.GetBytes(snapJson)); eventHubClient.Send(data); eventHubClient.Close(); }
public async Task UpdateBus(BusSnapshotInfo snapshot) { var appName = CloudConfigurationManager.GetSetting("sfAppName"); var svcName = CloudConfigurationManager.GetSetting("sfSvcNameTemplate"); var trip = ActorProxy.Create<ITrip>(new ActorId(snapshot.TripId), appName, string.Format(svcName, "Trip")); var tripInfo = await trip.GetInfo(); var headsign = tripInfo == null ? string.Format("[{0}]", snapshot.TripId) : tripInfo.Headsign; await Clients.Group("mapViews").updateBus(snapshot, headsign); }
public void HandleSnapshot(BusSnapshotInfo snapshot) { var json = JsonConvert.SerializeObject(snapshot, Formatting.Indented); Console.WriteLine(json); }