public List <DataPoint> GetData(string type, string field, List <DataScreen> screens) { List <DataPoint> dataset = new List <DataPoint>(); DataQuery dq = BuildQuery(type, screens); if (dq == null || dq.SQL.Contains("ERROR:")) { Debug.Assert(false, "Error building reports getdata query." + dq.SQL); dataset.Add(new DataPoint() { Value = "Error building the query.", ValueType = "ERROR" }); _logger.InsertError("Error building query." + Environment.NewLine + dq.SQL, "DatasetManager", "GetData:" + type + Environment.NewLine + field); return(dataset); } IDataReader reader = null; try { using (var context = new TreeMonDbContext(this._connectionKey)) { reader = context.Execute(dq.SQL, dq.Parameters); if (reader == null || reader.FieldCount == 0) { return(dataset); } while (reader.Read()) { dataset.Add(new DataPoint() { Value = reader[field].ToString(), ValueType = reader[field].GetType().Name }); } } } catch (Exception ex) { Debug.Assert(false, ex.Message); dataset.Add(new DataPoint() { Value = "Error getting report data.", ValueType = "ERROR" }); _logger.InsertError(ex.Message + Environment.NewLine + dq.SQL, "DatasetManager", "GetData:" + type + ":" + field); } finally { if (reader != null) { reader.Close(); } //if (conn != null) conn.Close(); } return(dataset); }