Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }