public static IEnumerable<IDatabase> GetAllDatabases(IClient client) { if (client == null) { throw new ArgumentNullException("client"); } WebResponse response = client.ExecuteRequest(DatabaseRequestScheme); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { var objects = JavascriptSerializer.Deserialize<dynamic>(reader.ReadToEnd()); foreach (var metric in objects) { yield return new Database(client, metric["name"]); } } }