예제 #1
0
        public override Dictionary <string, string> GetUrls()
        {
            var predefinedList        = PredefinedReports.GetReportList();
            var reportListFromSession = Session.GetObjectFromJson <Dictionary <string, string> >(ReportExtensionSessionKey);

            if (reportListFromSession != null)
            {
                foreach (var reportItem in reportListFromSession)
                {
                    predefinedList[reportItem.Key] = reportItem.Value;
                }
            }
            return(predefinedList);
        }
예제 #2
0
        public override byte[] GetData(string url)
        {
            byte[] reportBytes;
            lock (sync) {
                var storedReports = Session.GetObjectFromJson <Dictionary <string, string> >(ReportExtensionSessionKey);
                if (storedReports != null && storedReports.ContainsKey(url) && Session.TryGetValue(url, out reportBytes))
                {
                    return(reportBytes);
                }
            }
            XtraReport report = PredefinedReports.GetReport(url);

            if (report == null)
            {
                throw new Exception("Report was not found.");
            }

            using (var stream = new MemoryStream()) {
                report.SaveLayoutToXml(stream);
                report.Dispose();
                return(stream.ToArray());
            }
        }