Beispiel #1
0
        private static void WriteFileCache(IList <Station> stations)
        {
            StationsData data = new StationsData()
            {
                Timestamp = DateTime.Now,
                Stations  = stations
            };
            string stationsJson = JsonConvert.SerializeObject(data);

            File.WriteAllText(StationsCache.cachePath, stationsJson);
        }
Beispiel #2
0
        async void OnTextChangedAsync(object sender, EventArgs e)
        {
            SearchBar    searchBar    = (SearchBar)sender;
            StationsData stationsData = await _tidalService.GetStationsDataAsync(GenerateRequestUriForStations(Constants.UKTidalEndpoind, searchBar.Text));

            if (stationsData != null)
            {
                BindingContext = stationsData.Stations;
            }
            else
            {
                BindingContext = null;
            }
        }
Beispiel #3
0
        private static IList <Station> FetchStationsFromFile()
        {
            // TODO: Check timestamp and decide whether the station list has to be refreshed.
            string       stationsJson = File.ReadAllText(StationsCache.cachePath);
            StationsData stationsData = null;

            try
            {
                stationsData = JsonConvert.DeserializeObject <StationsData>(stationsJson);
            }
            catch (Exception)
            {
                Console.WriteLine("Unable to deserialize file cache.");
                File.Delete(StationsCache.cachePath);
            }

            return(stationsData?.Stations);
        }
        public async Task<StationsData> GetStationsDataAsync(string uri)
        {
            StationsData stationsData = null;
            try
            {
                HttpResponseMessage response = await _client.GetAsync(uri);
                if (response.IsSuccessStatusCode)
                {
                    string content = await response.Content.ReadAsStringAsync();
                    stationsData = JsonConvert.DeserializeObject<StationsData>(content);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("\tERROR {0}", ex.Message);
            }

            return stationsData;
        }
Beispiel #5
0
 public MainPage()
 {
     this.InitializeComponent();
     stationsData = new StationsData();
 }