Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }