/// <summary>
        /// Gets the published report.
        /// </summary>
        /// <param name="reportId">The report id.</param>
        /// <returns></returns>
        public Report GetPublishedReport(Guid reportId)
        {
            var queryDescription = new ReportQueryDescription
            {
                ElementName = "Report",
                ElementId   = reportId.ToString(),
            };

            string xml = _integrationProxy.FindElements(queryDescription);

            Response response = ModelSerializer.DeserializeTo <Response>(xml);

            return(response.Reports[0]);
        }
        /// <summary>
        /// Runs a dynamic report.
        /// </summary>
        /// <typeparam name="TReport">The type of the report.</typeparam>
        /// <param name="report">The report.</param>
        /// <returns></returns>
        public Report RunDynamicReport <TReport>(TReport report)
            where TReport : DynamicReportBase
        {
            var queryDescription = new ReportQueryDescription
            {
                ElementName       = "Report",
                ElementId         = report.ReportName,
                QueryStringParams = report.GetQueryStringParamCollection()
            };

            string xml = _integrationProxy.FindElements(queryDescription);

            Response response = ModelSerializer.DeserializeTo <Response>(xml);

            return(response.Reports[0]);
        }