private static ReportDataResponse GetReportData(Request request) { if (request == null) { throw new ArgumentNullException("request"); } // OZ: 2008-11-26 Check Security if (!Security.IsUserInGroup(Security.CurrentUser.UserID, InternalSecureGroups.Administrator) && !ReportManager.CanRead(request.Target.PrimaryKeyId.Value, Security.CurrentUser.UserID)) { throw new AccessDeniedException(); } ReportDataResponse response = null; string filter = null; RequestParameter parameter = request.Parameters[ReportDataRequest.FilterParameterName]; if (parameter != null) { filter = parameter.Value as string; } ReportEntity report = request.Target as ReportEntity; if (report != null) { XmlDocument doc = new XmlDocument(); doc.LoadXml(report.RdlText); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(doc.NameTable); namespaceManager.AddNamespace("ns", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"); List <DataTable> data = new List <DataTable>(); foreach (XmlNode dataSetNode in doc.SelectNodes("/ns:Report/ns:DataSets/ns:DataSet", namespaceManager)) { DataTable table = LoadDataSet(namespaceManager, dataSetNode, filter); data.Add(table); } response = new ReportDataResponse(data); } return(response); }
private static ReportDataResponse GetReportData(Request request) { if (request == null) throw new ArgumentNullException("request"); // OZ: 2008-11-26 Check Security if (!Security.IsUserInGroup(Security.CurrentUser.UserID, InternalSecureGroups.Administrator) && !ReportManager.CanRead(request.Target.PrimaryKeyId.Value, Security.CurrentUser.UserID)) throw new AccessDeniedException(); ReportDataResponse response = null; string filter = null; RequestParameter parameter = request.Parameters[ReportDataRequest.FilterParameterName]; if (parameter != null) filter = parameter.Value as string; ReportEntity report = request.Target as ReportEntity; if (report != null) { XmlDocument doc = new XmlDocument(); doc.LoadXml(report.RdlText); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(doc.NameTable); namespaceManager.AddNamespace("ns", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"); List<DataTable> data = new List<DataTable>(); foreach (XmlNode dataSetNode in doc.SelectNodes("/ns:Report/ns:DataSets/ns:DataSet", namespaceManager)) { DataTable table = LoadDataSet(namespaceManager, dataSetNode, filter); data.Add(table); } response = new ReportDataResponse(data); } return response; }