protected void Application_Start()
        {
            #region Query builder
            DefaultQueryBuilderContainer.Register <IDataSourceWizardConnectionStringsProvider, DataSourceWizardConnectionStringsProvider>();
            DefaultQueryBuilderContainer.RegisterDataSourceWizardDBSchemaProviderExFactory <DataSourceWizardDBSchemaProviderExFactory>();

            // MVCxQueryBuilder.StaticInitialize(); // Don't need this line if ASPxReportDesigner.StaticInitialize() has been called
            #endregion

            #region Reports
            DefaultWebDocumentViewerContainer.Register <IExportingAuthorizationService, OperationLogger>();
            DefaultWebDocumentViewerContainer.Register <WebDocumentViewerOperationLogger, OperationLogger>();
            DefaultWebDocumentViewerContainer.Register <IWebDocumentViewerAuthorizationService, OperationLogger>();

            DefaultReportDesignerContainer.Register <WebDocumentViewerOperationLogger, OperationLogger>();

            DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension.RegisterExtensionGlobal(new ReportStorageWithAccessRules());
            DefaultReportDesignerContainer.RegisterDataSourceWizardConnectionStringsProvider <DataSourceWizardConnectionStringsProvider>(); // Provide connections to Report Designer
            DefaultReportDesignerContainer.RegisterDataSourceWizardDBSchemaProviderExFactory <DataSourceWizardDBSchemaProviderExFactory>(); // Provide only nessesary dbtables

            DevExpress.XtraReports.Web.WebDocumentViewer.Native.WebDocumentViewerBootstrapper.SessionState = System.Web.SessionState.SessionStateBehavior.Required;
            MVCxReportDesigner.StaticInitialize();
            #endregion

            #region Dashboards
            DashboardConfigurator.Default.SetDashboardStorage(new DashboardStorageWithAccessRules());

            DashboardConfigurator.Default.SetConnectionStringsProvider(new DataSourceWizardConnectionStringsProvider()); // Provide connections to Dashboard Designer
            DashboardConfigurator.Default.SetDBSchemaProvider(new DBSchemaProviderEx());                                 // Provide only nessesary dbtables
            #endregion

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            ModelBinders.Binders.DefaultBinder = new DevExpress.Web.Mvc.DevExpressEditorsBinder();

            DevExpress.Web.ASPxWebControl.CallbackError += Application_Error;

            // Export to CSV (Preventing CSV Injections)
            DevExpress.Export.ExportSettings.EncodeCsvExecutableContent = DevExpress.Utils.DefaultBoolean.True; // More Secure, but may affect content
        }
        protected void Application_Start(object sender, EventArgs e)
        {
            #region Query builder
            DefaultQueryBuilderContainer.Register <IDataSourceWizardConnectionStringsProvider, DataSourceWizardConnectionStringsProvider>();
            DefaultQueryBuilderContainer.RegisterDataSourceWizardDBSchemaProviderExFactory <DataSourceWizardDBSchemaProviderExFactory>();

            //DevExpress.XtraReports.Web.ASPxQueryBuilder.StaticInitialize(); // This line is unnecessary if ASPxReportDesigner.StaticInitialize() has been called
            #endregion

            #region Reports
            DefaultWebDocumentViewerContainer.Register <IExportingAuthorizationService, OperationLogger>();
            DefaultWebDocumentViewerContainer.Register <WebDocumentViewerOperationLogger, OperationLogger>();
            DefaultWebDocumentViewerContainer.Register <IWebDocumentViewerAuthorizationService, OperationLogger>();

            DefaultReportDesignerContainer.Register <WebDocumentViewerOperationLogger, OperationLogger>();

            DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension.RegisterExtensionGlobal(new ReportStorageWithAccessRules());
            DefaultReportDesignerContainer.RegisterDataSourceWizardConnectionStringsProvider <DataSourceWizardConnectionStringsProvider>(); // Provide connections to Report Designer
            DefaultReportDesignerContainer.RegisterDataSourceWizardDBSchemaProviderExFactory <DataSourceWizardDBSchemaProviderExFactory>(); // Provide only nessesary dbtables

            DevExpress.XtraReports.Web.WebDocumentViewer.Native.WebDocumentViewerBootstrapper.SessionState = System.Web.SessionState.SessionStateBehavior.Required;
            DevExpress.XtraReports.Web.ASPxReportDesigner.StaticInitialize();
            #endregion

            #region Dashboards
            var service = new DashboardStorageWithAccessRules();
            DashboardConfigurator.Default.SetDashboardStorage(service);
            DashboardConfigurator.Default.CustomParameters += (o, args) => {
                if (!service.IsAuthorized(args.DashboardId))
                {
                    throw new UnauthorizedAccessException();
                }
            };

            DashboardConfigurator.Default.SetConnectionStringsProvider(new DataSourceWizardConnectionStringsProvider()); // Provide connections to Dashboard Designer
            DashboardConfigurator.Default.SetDBSchemaProvider(new DBSchemaProviderEx());                                 // Provide only nessesary dbtables
            #endregion

            // Export to CSV (Preventing CSV Injections)
            DevExpress.Export.ExportSettings.EncodeCsvExecutableContent = DevExpress.Utils.DefaultBoolean.True; // More Secure, but may affect content
        }