public static DevExpress.DashboardCommon.Dashboard GetDashboard(this IDashboardDefinition dashboardDefinition, XafApplication application, RuleMode ruleMode, IXpandDashboardDataSourceFillService dashboardDataSourceFillService = null, DataSourceOptionsContainer options = null, Action <DevExpress.DashboardCommon.Dashboard> editParameters = null, Action modeParametersEdited = null) { var dashboard = dashboardDefinition.GetDashboard(); dashboard.ApplyModel(ruleMode, dashboardDefinition, application.Model); var datasourceFilterList = dashboard.CreateDashboardDatasourceFilterList(dashboardDefinition, ruleMode, application); var dashboardDatasourceFilter = datasourceFilterList.Filters.FirstOrDefault(); if (modeParametersEdited != null) { if (dashboardDatasourceFilter != null) { var detailView = application.CreateDetailView(dashboardDatasourceFilter.ObjectSpace, datasourceFilterList); detailView.ViewEditMode = ViewEditMode.Edit; application.ShowViewStrategy.ShowViewInPopupWindow(detailView, () => { SaveModel(datasourceFilterList, application); modeParametersEdited(); }); } return(dashboard); } ConfigureDashboard(dashboardDefinition, ruleMode, dashboardDataSourceFillService, options, editParameters, datasourceFilterList, dashboard); return(dashboard); }
private static void ConfigureDashboard(IDashboardDefinition dashboardDefinition, RuleMode ruleMode, IXpandDashboardDataSourceFillService dashboardCollectionDataSourceFillService, DataSourceOptionsContainer options, Action <DevExpress.DashboardCommon.Dashboard> editParameters, DashboardDatasourceFilterList datasourceFilterList, DevExpress.DashboardCommon.Dashboard dashboard) { var canEditParameters = new[] { ruleMode, RuleMode.Always }.Contains(dashboardDefinition.EditParameters); if (canEditParameters) { editParameters(dashboard); } dashboardCollectionDataSourceFillService.FillService.DatasourceCreating += (sender, args) => { var filter = datasourceFilterList.Filters.LastOrDefault(_ => _.DataSourceName == args.TargetType.Name); if (filter != null) { dashboardCollectionDataSourceFillService.TopReturnedRecords = filter.TopReturnedRecords; dashboardCollectionDataSourceFillService.ShowPersistentMembersOnly = filter.ShowPersistentMembersOnly; } }; if (options != null) { options.ObjectDataSourceLoadingBehavior = DocumentLoadingBehavior.LoadAsIs; } }