public static string GetReportView(RestCommand command, int reportViewID)
        {
            ReportView reportView = ReportViews.GetReportView(command.LoginUser, reportViewID);

            if (reportView.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(reportView.GetXml("ReportView", true));
        }
    private DataTable GetTable(int reportID)
    {
        Report report = Reports.GetReport(UserSession.LoginUser, reportID);

        if (report == null)
        {
            return(null);
        }

        using (SqlConnection connection = new SqlConnection(GetReportConnectionString()))
        {
            DateTime    start       = DateTime.Now;
            ReportViews reportViews = new ReportViews(UserSession.LoginUser);
            ReportView  reportView  = reportViews.AddNewReportView();
            reportView.UserID     = UserSession.LoginUser.UserID;
            reportView.ReportID   = report.ReportID;
            reportView.DateViewed = DateTime.UtcNow;

            _query = report.GetSqlOld(false, filterControl.ReportConditions);
            reportView.SQLExecuted = _query;
            report.LastSqlExecuted = _query;
            report.Collection.Save();

            SqlCommand command = new SqlCommand(_query, connection);

            Report.CreateParameters(UserSession.LoginUser, command, UserSession.LoginUser.UserID);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataTable      table   = new DataTable();
            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted);
            command.Transaction = transaction;
            try
            {
                adapter.Fill(table);
                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                reportView.ErrorMessage = ex.Message;
                DataUtils.LogException(UserSession.LoginUser, ex);
            }

            foreach (DataColumn column in table.Columns)
            {
                column.ColumnName = column.ColumnName.Replace(' ', '_');
            }
            reportView.DurationToLoad = DateTime.Now.Subtract(start).TotalSeconds;
            reportView.Collection.Save();
            return(table);
        }
    }
        public static string GetReportViews(RestCommand command)
        {
            ReportViews reportViews = new ReportViews(command.LoginUser);

            reportViews.LoadByOrganizationID(command.Organization.OrganizationID);

            if (command.Format == RestFormat.XML)
            {
                return(reportViews.GetXml("ReportViews", "ReportView", true, command.Filters));
            }
            else
            {
                throw new RestException(HttpStatusCode.BadRequest, "Invalid data format");
            }
        }