public static async Task <IEnumerable <IZone> > GetZonesAsync(this SQLiteDatabase database) { List <IZone> results = new List <IZone>(); using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Zones")) foreach (DataRow row in await database.GetRowsAsync(cmd)) { results.Add(await database.CreateZoneFromDataRowAsync(row)); } results.Sort((lhs, rhs) => new NaturalStringComparer().Compare(lhs.Name, rhs.Name)); return(results); }
// Public members public static async Task <IZone> GetZoneAsync(this SQLiteDatabase database, long zoneId, GetZoneOptions options = GetZoneOptions.Default) { using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Zones WHERE id = $zone_id")) { cmd.Parameters.AddWithValue("$zone_id", zoneId); DataRow row = await database.GetRowAsync(cmd); if (row != null) { return(await database.CreateZoneFromDataRowAsync(row, options)); } } return(null); }
public static async Task <IZone> GetZoneAsync(this SQLiteDatabase database, string name, GetZoneOptions options = GetZoneOptions.Default) { if (string.IsNullOrWhiteSpace(name)) { return(null); } string fullName = ZoneUtilities.GetFullName(name.Trim()).ToLowerInvariant(); using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Zones WHERE name = $name OR name = $fullName OR id IN (SELECT zone_id FROM ZoneAliases WHERE alias = $name OR alias = $fullName)")) { cmd.Parameters.AddWithValue("$name", name.ToLowerInvariant()); cmd.Parameters.AddWithValue("$fullName", fullName.ToLowerInvariant()); DataRow row = await database.GetRowAsync(cmd); if (row != null) { return(await database.CreateZoneFromDataRowAsync(row, options)); } } return(null); }