示例#1
0
        public BikeShareSystem(Settings.BikeShareSystem settings)
        {
            var client = GbfsClient.GetInstance(settings.ManifestUrl);

            _stationNameReplacements = settings.StationNameReplacements;
            Become(() => Listening(client));
        }
示例#2
0
        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);
            });
        }