public async void LoadEntries(Label statusLabel) { const string getEntry = "SELECT b.ID, b.HNO, b.HNO_EXTENSION, b.AP_LAT, b.AP_LNG, sz.ZIP, s.NAME, z1.ZONE_NAME as z1_NAME, z2.ZONE_NAME as z2_NAME " + "FROM building b " + " LEFT JOIN street_zip sz ON sz.ID = b.STREET_ZIP_ID " + " LEFT JOIN street s on s.ID = sz.STREET_ID " + " LEFT JOIN zone z1 on s.ZONE_ID = z1.ID " + " LEFT JOIN zone z2 on z1.LEVEL_1_ZONE_ID = z2.ID " + "WHERE b.AP_LAT IS NOT NULL AND b.AP_LNG IS NOT NULL;"; await Task.Run(() => { var reader = MySqlHelper.ExecuteReader(MainWindow.ConnectionString, getEntry); while (reader.Read()) { string apLat = reader.GetString("AP_LAT").Replace('.', ','); string apLng = reader.GetString("AP_LNG").Replace('.', ','); BuildingEntry newItem = new BuildingEntry() { Id = reader.GetInt32("ID"), Hno = reader.GetString("HNO"), HnoExtension = reader.GetString("HNO_EXTENSION"), ApLat = double.Parse(apLat), ApLng = double.Parse(apLng), Zip = reader.GetString("ZIP"), StreetName = reader.GetString("Name"), PlaceName = reader.GetString("z1_NAME"), }; var z2NameOrdinal = reader.GetOrdinal("z2_NAME"); newItem.ProvinceName = reader.IsDBNull(z2NameOrdinal) ? "" : reader.GetString(z2NameOrdinal); _entries.Add(newItem); } }); statusLabel.Content = $"Loaded {_entries.Count} entries"; }
public void NextEntry() { _currentEntry = _entries[_rand.Next(_entries.Count)]; }