示例#1
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;
            }
        }
示例#2
0
        private static void SaveModel(DashboardDatasourceFilterList datasourceFilterList, XafApplication application)
        {
            var modelDashboardDataSources = ((IModelDashboardModuleDataSources)((IModelApplicationDashboardModule)application.Model).DashboardModule).DataSources;

            foreach (var filter in datasourceFilterList.Filters)
            {
                if (modelDashboardDataSources[filter.ID] is IModelDashboardDataSourceFilter modelDashboardDataSource)
                {
                    modelDashboardDataSource.Filter                    = filter.Filter;
                    modelDashboardDataSource.TopReturnedRecords        = filter.TopReturnedRecords;
                    modelDashboardDataSource.ShowPersistentMembersOnly = filter.ShowPersistentMembersOnly;
                }
            }
        }
示例#3
0
        public static DashboardDatasourceFilterList CreateDashboardDatasourceFilterList(
            this DevExpress.DashboardCommon.Dashboard dashboard, IDashboardDefinition dashboardDefinition,
            RuleMode ruleMode, XafApplication application)
        {
            var objectSpace = application.CreateObjectSpace(typeof(DashboardDatasourceFilter));
            var dashboardDatasourceFilterList = new DashboardDatasourceFilterList();
            var dataSources = dashboard.GetDataSources(ruleMode, dashboardDefinition, application.Model);

            foreach (var item in dataSources.OrderBy(tuple => tuple.ModelDataSource.Index))
            {
                if (item.ModelDataSource is IModelDashboardDataSourceFilter modelFilter && modelFilter.ShowInPopupView)
                {
                    var filter = objectSpace.CreateObject <DashboardDatasourceFilter>();
                    filter.ID                        = item.ModelDataSource.Id();
                    filter.Filter                    = modelFilter.Filter;
                    filter.DataSourceName            = item.DataSource.Name;
                    filter.TopReturnedRecords        = modelFilter.TopReturnedRecords;
                    filter.ShowPersistentMembersOnly = modelFilter.ShowPersistentMembersOnly;
                    dashboardDatasourceFilterList.Filters.Add(filter);
                }
            }

            return(dashboardDatasourceFilterList);
        }