namespace EnVisage.Views.Reporting.Controllers { using System.IO; using System.Web; using Telerik.Reporting.Cache.File; using Telerik.Reporting.Services; using Telerik.Reporting.Services.WebApi; //The class name determines the service URL. //ReportsController class name defines /api/report/ service URL. public class ReportsController : ReportsControllerBase { static ReportServiceConfiguration configurationInstance; static ReportsController() { //This is the folder that contains the XML (trdx) report definitions //In this case this is the Reports folder var appPath = HttpContext.Current.Server.MapPath("~/"); var reportsPath = Path.Combine(appPath, "Reports"); //Add resolver for trdx report definitions, //then add resolver for class report definitions as fallback resolver; //finally create the resolver and use it in the ReportServiceConfiguration instance. var resolver = new ReportFileResolver(reportsPath) .AddFallbackResolver(new ReportTypeResolver()); //Setup the ReportServiceConfiguration configurationInstance = new ReportServiceConfiguration { HostAppId = "Html5App", Storage = new Telerik.Reporting.Cache.File.FileStorage(Path.Combine(appPath, "telerikCache")), ReportResolver = resolver, // ReportSharingTimeout = 0, // ClientSessionTimeout = 15, }; } public ReportsController() { //Initialize the service configuration this.ReportServiceConfiguration = configurationInstance; } } }