public BikeShareSystem(Settings.BikeShareSystem settings) { var client = GbfsClient.GetInstance(settings.ManifestUrl); _stationNameReplacements = settings.StationNameReplacements; Become(() => Listening(client)); }
private void Thinking() { TransactionCategory = nameof(Thinking); ReceiveAsync <Think>(async think => { var laMetroGbfsFeedUrl = "https://gbfs.bcycle.com/bcycle_lametro/gbfs.json"; var client = GbfsClient.GetInstance(laMetroGbfsFeedUrl); var manifest = await client.GetManifest(); var language = manifest.Data.ContainsKey("en") ? "en" : manifest.Data.Keys.First(); var statuses = await manifest.GetStationStatus(client, language); var totalBikesAvailable = statuses.Data.Stations.Sum(s => s.NumBikesAvailable); Sender.Tell(new Message { Text = $"Whoa, there are {totalBikesAvailable} bikes available! - {think.Message.Text}", }); Become(Waiting); }); }