Пример #1
0
        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);
        }