public DataSet GetReportData(string reportFileName, IDictionary <string, object> parameters = null)
        {
            var data   = new DataSet();
            var report = RdlType.Load(GetReportFile(reportFileName));

            report.UpdateReportParameters(parameters);

            foreach (var dataSet in report.DataSets)
            {
                var connectionString = ConnectionHelper.GetConnectionString(dataSet.Query.DataSourceName);
                if (string.IsNullOrWhiteSpace(connectionString))
                {
                    var firstOrDefault = report.DataSources.FirstOrDefault(d => d.Name == dataSet.Query.DataSourceName);
                    if (firstOrDefault != null)
                    {
                        connectionString = firstOrDefault.ConnectionProperties.ConnectString;
                    }
                }

                using (var dbConnection = new SqlConnection(connectionString ?? string.Empty))
                {
                    dbConnection.Open();
                    var queryParameters = report.GetDataSetQueryParameters(dataSet.Name);
                    var table           = ExecuteSQL(dbConnection, dataSet.Query.CommandText, queryParameters);
                    table.TableName = dataSet.Name;
                    data.Tables.Add(table);
                }
            }

            return(data);
        }
 protected override void OnClose()
 {
     _buffer     = null;
     _reportType = null;
 }
 public void Can_deserealize_rdl_file()
 {
     var rdl = RdlType.Load(GetEmbeddedRdlFile("TestReport_v2.rdl"));
 }