Exemple #1
0
 static void Filter(IDashboardDefinition template, DevExpress.DashboardCommon.Dashboard dashboard)
 {
     //var types = template.DashboardTypes.Select(tw => tw.Caption).ToArray();
     //for (int i = dashboard.DataSources.Count - 1; i >= 0; i--)
     //    if (!types.Contains(dashboard.DataSources[i].Name))
     //        dashboard.DataSources.RemoveAt(i);
 }
Exemple #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;
            }
        }
Exemple #3
0
        public static void ApplyModel(this DevExpress.DashboardCommon.Dashboard dashboard, RuleMode ruleMode,
                                      IDashboardDefinition template, IModelApplication model)
        {
            var dataSources = GetDataSources(dashboard, ruleMode, template, model);

            foreach (var adapter in dataSources)
            {
                if (adapter.ModelDataSource is IModelDashboardDataSourceFilter filter)
                {
                    var criteria = ApplyFilter(filter.Filter, adapter.DataSource.Filter);
                    adapter.DataSource.Filter = criteria?.ToString();
                    if (adapter.DataSource is DashboardSqlDataSource dashboardSqlDataSource)
                    {
                        foreach (var selectQuery in dashboardSqlDataSource.Queries.OfType <SelectQuery>().Where(query => Regex.IsMatch(query.Name, filter.TableName)))
                        {
                            if (filter.TopReturnedRecords > 0)
                            {
                                selectQuery.Top = filter.TopReturnedRecords;
                            }
                            selectQuery.FilterString = criteria?.ToString();
                        }
                    }
                }
                else if (adapter.ModelDataSource is IModelDashboardDataSourceParameter parameter)
                {
                    parameter.ApplyValue(dashboard.Parameters[parameter.ParameterName]);
                }
            }
        }
Exemple #4
0
        public static DevExpress.DashboardCommon.Dashboard CreateDashBoard(this IDashboardDefinition template, IObjectSpace objectSpace, FilterEnabled filterEnabled)
        {
            var dashboard = new DevExpress.DashboardCommon.Dashboard();

            try {
                if (!string.IsNullOrEmpty(template.Xml))
                {
                    dashboard = LoadFromXml(template);
                    dashboard.ApplyModel(filterEnabled, template, objectSpace);
                }
                foreach (var typeWrapper in template.DashboardTypes.Select(wrapper => new { wrapper.Type, Caption = GetCaption(wrapper) }))
                {
                    var wrapper = typeWrapper;
                    var dsource = dashboard.DataSources.FirstOrDefault(source => source.Name.Equals(wrapper.Caption));
                    var objects = objectSpace.CreateDashboardDataSource(wrapper.Type);
                    if (dsource != null)
                    {
                        dsource.Data = objects;
                    }
                    else if (!dashboard.DataSources.Contains(ds => ds.Name.Equals(wrapper.Caption)))
                    {
                        dashboard.AddDataSource(typeWrapper.Caption, objects);
                    }
                }
            }
            catch (Exception e) {
                dashboard.Dispose();
                Tracing.Tracer.LogError(e);
            }
            return(dashboard);
        }
Exemple #5
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);
        }
Exemple #6
0
 static void Filter(IDashboardDefinition template, DevExpress.DashboardCommon.Dashboard dashboard)
 {
     //var types = template.DashboardTypes.Select(tw => tw.Caption).ToArray();
     //for (int i = dashboard.DataSources.Count - 1; i >= 0; i--)
     //    if (!types.Contains(dashboard.DataSources[i].Name))
     //        dashboard.DataSources.RemoveAt(i);
 }
Exemple #7
0
 public static void SynchronizeModel(this DevExpress.DashboardCommon.Dashboard dashboard,  IDashboardDefinition template) {
     var dataSources = GetDataSources(dashboard, FilterEnabled.Always, template);
     foreach (var dataSource in dataSources){
         var filter = dataSource.ModelDataSource as IModelDashboardDataSourceFilter;
         if (filter != null)
             dataSource.DataSource.Filter = filter.SynchronizeFilter(dataSource.DataSource.Filter);
     }
 }
Exemple #8
0
        static DevExpress.DashboardCommon.Dashboard GetDashboard(this IDashboardDefinition dashboardDefinition)
        {
            var dashboard = dashboardDefinition.ToDashboard();

            MigrateDatasourceTypes(dashboard);
            AddNewDataSources(dashboardDefinition, dashboard);

            return(dashboard);
        }
 protected override void OnClosed(EventArgs e) {
     _editHistory.Changed -= _EditHistory_Changed;
     _editHistory = null;
     _template = null;
     _objectSpace = null;
     dashboardDesigner.Dashboard.Dispose();
     dashboardDesigner = null;
     base.OnClosed(e);
 }
Exemple #10
0
        public static DevExpress.DashboardCommon.Dashboard CreateDashBoard(this IDashboardDefinition template, FilterEnabled filterEnabled)
        {
            var dashBoard = CreateDashBoard(template);

            if (dashBoard != null)
            {
                dashBoard.ApplyModel(filterEnabled, template);
            }
            return(dashBoard);
        }
Exemple #11
0
 protected override void OnClosed(EventArgs e)
 {
     _editHistory.Changed -= _EditHistory_Changed;
     _editHistory          = null;
     _template             = null;
     _objectSpace          = null;
     _dashboardDesigner.Dashboard.Dispose();
     _dashboardDesigner = null;
     base.OnClosed(e);
 }
        public void LoadTemplate(IDashboardDefinition dashboardDefinition, XafApplication application)
        {
            _template = dashboardDefinition;
            dashboardDefinition.GetDashboard(application, RuleMode.DesignTime, null, null, null, () => {});
            var dashboardCollectionDataSourceFillService = (IXpandDashboardDataSourceFillService)((XpandDashboardDataProvider)DashboardsModule.DataProvider)
                                                           .AttachService(Designer.ServiceContainer, (IDashboardData)dashboardDefinition);

            dashboardCollectionDataSourceFillService.FillService.LoadBeforeParameters += (sender, args) =>
                                                                                         args.Handled = new[] { RuleMode.Always, RuleMode.DesignTime }.Contains(dashboardDefinition.EditParameters);
            Designer.Dashboard = dashboardDefinition.GetDashboard(application, RuleMode.DesignTime, dashboardCollectionDataSourceFillService, Designer.DataSourceOptions,
                                                                  dashboard => Designer.DashboardChanged += (sender, args) => Designer.ShowDashboardParametersForm());
            _editHistory.Changed += _EditHistory_Changed;
        }
Exemple #13
0
 static DevExpress.DashboardCommon.Dashboard LoadFromXml(IDashboardDefinition dashboardDefinition) {
     var dashboard = new DevExpress.DashboardCommon.Dashboard();
     using (var me = new MemoryStream()) {
         var sw = new StreamWriter(me);
         sw.Write(dashboardDefinition.Xml);
         sw.Flush();
         me.Seek(0, SeekOrigin.Begin);
         dashboard.LoadFromXml(me);
         sw.Close();
         me.Close();
     }
     return dashboard;
 }
Exemple #14
0
        static DevExpress.DashboardCommon.Dashboard LoadFromXml(IDashboardDefinition dashboardDefinition)
        {
            var dashboard = new DevExpress.DashboardCommon.Dashboard();

            using (var me = new MemoryStream()) {
                var sw = new StreamWriter(me);
                sw.Write(dashboardDefinition.Xml);
                sw.Flush();
                me.Seek(0, SeekOrigin.Begin);
                dashboard.LoadFromXml(me);
                sw.Close();
                me.Close();
            }
            return(dashboard);
        }
Exemple #15
0
 private static void AddNewDataSources(IDashboardDefinition dashboardDefinition, DevExpress.DashboardCommon.Dashboard dashboard)
 {
     foreach (var typeWrapper in dashboardDefinition.DashboardTypes)
     {
         var exists = dashboard.DataSources.OfType <DashboardObjectDataSource>()
                      .Any(source => Equals(source.DataSource, typeWrapper.Type));
         if (!exists)
         {
             var dataSource = new DashboardObjectDataSource {
                 DataSourceType = typeWrapper.Type,
                 Name           = CaptionHelper.GetClassCaption(typeWrapper.Type.FullName),
                 ComponentName  = typeWrapper.Type.Name
             };
             dashboard.DataSources.Add(dataSource);
         }
     }
 }
Exemple #16
0
        private static void AddNewDataSources(IDashboardDefinition dashboardDefinition, DevExpress.DashboardCommon.Dashboard dashboard)
        {
            var dashboardTypesCount = dashboardDefinition.DashboardTypes.Count;

            if (dashboardTypesCount > 1)
            {
                throw new UserFriendlyException($"{dashboardDefinition.Name} contains {dashboardTypesCount} dashboard types. Only one dashboard type is supported.");
            }
            var wrapper    = dashboardDefinition.DashboardTypes.First();
            var dataSource = new DashboardObjectDataSource {
                DataSourceType = wrapper.Type,
                Name           = nameof(DashboardObjectDataSource),
                ComponentName  = nameof(DashboardObjectDataSource)
            };

            dashboard.DataSources.Add(dataSource);
        }
Exemple #17
0
        private static bool CanApply(IModelDashboardDataSource modelDashboardDataSource, RuleMode ruleMode,
                                     IDashboardDefinition template)
        {
            if (modelDashboardDataSource.NodeEnabled &&
                new[] { RuleMode.Always, ruleMode }.Contains(modelDashboardDataSource.Enabled))
            {
                if (modelDashboardDataSource is IModelDashboardDataSourceFilter modelDashboardDataSourceFilter)
                {
                    var objectSpace            = XPObjectSpace.FindObjectSpaceByObject(template);
                    var isObjectFitForCriteria = objectSpace.IsObjectFitForCriteria(template,
                                                                                    CriteriaOperator.Parse(modelDashboardDataSourceFilter.DashboardDefinitionCriteria));
                    return(isObjectFitForCriteria.HasValue && isObjectFitForCriteria.Value);
                }

                return(true);
            }

            return(false);
        }
Exemple #18
0
        public static DevExpress.DashboardCommon.Dashboard ToDashboard(this IDashboardDefinition dashboardDefinition)
        {
            var dashboard = new DevExpress.DashboardCommon.Dashboard();

            if (!string.IsNullOrWhiteSpace(dashboardDefinition.Xml))
            {
                using (var me = new MemoryStream()){
                    var sw  = new StreamWriter(me);
                    var xml = dashboardDefinition.Xml;
                    xml = Regex.Replace(xml,
                                        $"({typeof(ParameterLessProxyCollection).FullName}, {typeof(ParameterLessProxyCollection).Namespace}, Version=)([^,]*)",
                                        "${1}" + XpandAssemblyInfo.Version, RegexOptions.IgnoreCase);
                    sw.Write(xml);
                    sw.Flush();
                    me.Seek(0, SeekOrigin.Begin);
                    dashboard.LoadFromXml(me);
                    sw.Close();
                    me.Close();
                }
            }
            return(dashboard);
        }
Exemple #19
0
        public static string GetXml(this IDashboardDefinition template, FilterEnabled filterEnabled, IObjectSpace objectSpace)
        {
            var dashBoard = template.CreateDashBoard(objectSpace, filterEnabled);

            using (var memoryStream = new MemoryStream()) {
                dashBoard.SaveToXml(memoryStream);
                memoryStream.Position = 0;
                var document           = XDocument.Load(memoryStream);
                var dataSourceAdapters = GetDataSources(dashBoard, filterEnabled, template, objectSpace);
                foreach (var dataSourceAdapter in dataSourceAdapters)
                {
                    if (document.Root != null)
                    {
                        DataSourceAdapter adapter = dataSourceAdapter;
                        var datasources           = document.Root.Descendants("DataSource").Where(element => element.Attribute("Name").Value == adapter.DataSource.Name && !element.Descendants("Filter").Any());
                        foreach (var datasource in datasources)
                        {
                            datasource.Add(new XElement("Filter", dataSourceAdapter.DataSource.Filter));
                        }
                    }
                }
                return(document.ToString());
            }
        }
Exemple #20
0
        public static DevExpress.DashboardCommon.Dashboard CreateDashBoard(this IDashboardDefinition template, IObjectSpace objectSpace, bool filter)
        {
            var dashboard = new DevExpress.DashboardCommon.Dashboard();

            try {
                LoadFromXml(template.Xml, dashboard);

                foreach (ITypeWrapper typeWrapper in template.DashboardTypes)
                {
                    ITypeWrapper wrapper = typeWrapper;
                    if (dashboard.DataSources.Contains(ds => ds.Name.Equals(wrapper.Caption)))
                    {
                        Type dashBoardObjectType = DashBoardObjectType(template, dashboard, typeWrapper);
                        if (dashBoardObjectType != null)
                        {
                            ITypeWrapper wrapper1   = typeWrapper;
                            var          dataSource = dashboard.DataSources.First(ds => ds.Name.Equals(wrapper1.Caption));
                            dataSource.Data = GetObjects(objectSpace, dashBoardObjectType);
                        }
                    }
                    else if (!dashboard.DataSources.Contains(ds => ds.Name.Equals(wrapper.Caption)))
                    {
                        dashboard.DataSources.Add(new DashboardObjectDataSource(typeWrapper.Caption, GetObjects(objectSpace, typeWrapper.Type)));
                    }
                }
                if (filter)
                {
                    Filter(template, dashboard);
                }
            }
            catch (Exception e) {
                dashboard.Dispose();
                Tracing.Tracer.LogError(e);
            }
            return(dashboard);
        }
Exemple #21
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);
        }
Exemple #22
0
        public static IEnumerable <(IDashboardDataSource DataSource, IModelDashboardDataSource ModelDataSource)> GetDataSources(this DevExpress.DashboardCommon.Dashboard dashboard,
                                                                                                                                RuleMode ruleMode, IDashboardDefinition template, IModelApplication model)
        {
            var modelDashboardModule =
                ((IModelDashboardModuleDataSources)((IModelApplicationDashboardModule)model).DashboardModule);

            return(modelDashboardModule.DataSources
                   .Where(source => source.NodeEnabled && CanApply(source, ruleMode, template)).Select(modelDataSource => {
                var dataSource = dashboard.DataSources.FirstOrDefault(source =>
                                                                      Regex.IsMatch(source.Name, modelDataSource.DataSourceName, RegexOptions.IgnoreCase) && Regex.IsMatch(source.GetType().Name, modelDataSource.DatasourceType, RegexOptions.IgnoreCase));
                return (DataSource: dataSource, ModelDataSource: modelDataSource);
            }).Where(tuple => tuple.DataSource != null && tuple.ModelDataSource != null));
        }
Exemple #23
0
 public void LoadTemplate(IDashboardDefinition dashboardDefinition)
 {
     _template             = dashboardDefinition;
     Designer.Dashboard    = _template.CreateDashBoard(FilterEnabled.DesignTime);
     _editHistory.Changed += _EditHistory_Changed;
 }
Exemple #24
0
 public static DevExpress.DashboardCommon.Dashboard LoadFromXml(this IDashboardDefinition dashboardDefinition)
 {
     throw new NotImplementedException();
 }
Exemple #25
0
 static Type DashBoardObjectType(IDashboardDefinition template, DevExpress.DashboardCommon.Dashboard dashboard, ITypeWrapper typeWrapper)
 {
     var wrapper = template.DashboardTypes.FirstOrDefault(type => type.Caption.Equals(dashboard.DataSources.First(ds => ds.Name.Equals(typeWrapper.Caption)).Name));
     return wrapper != null ? wrapper.Type : null;
 }
 public void LoadTemplate(IDashboardDefinition DashboardDefinition) {
     _template = DashboardDefinition;
     Designer.Dashboard = _template.CreateDashBoard(ObjectSpace, true);
     _editHistory.Changed += _EditHistory_Changed;
 }
Exemple #27
0
 static IEnumerable<DataSourceAdapter> GetDataSources(DevExpress.DashboardCommon.Dashboard dashboard, FilterEnabled filterEnabled, IDashboardDefinition template) {
     var modelDashboardModule =
         ((IModelApplicationDashboardModule)ApplicationHelper.Instance.Application.Model).DashboardModule;
     return modelDashboardModule.DataSources.Where(source => source.NodeEnabled && CanApply(source, filterEnabled, template)).Select(modelDataSource => {
         var dataSource = dashboard.DataSources.FirstOrDefault(source =>
             String.Equals(source.Name.Trim(), modelDataSource.DataSourceName.Trim(), StringComparison.CurrentCultureIgnoreCase));
         return new DataSourceAdapter(dataSource, modelDataSource);
     }).Where(adapter => adapter.ModelDataSource != null&&adapter.DataSource!=null);
 }
Exemple #28
0
 public static void SaveDashboard(this DevExpress.DashboardCommon.Dashboard dashboard, IDashboardDefinition template, MemoryStream memoryStream) {
     dashboard.SynchronizeModel(template);
     dashboard.SaveToXml(memoryStream);
     dashboard.ApplyModel(FilterEnabled.Always, template);
 }
Exemple #29
0
 public void LoadTemplate(IDashboardDefinition dashboardDefinition)
 {
     _template             = dashboardDefinition;
     Designer.Dashboard    = _template.CreateDashBoard(ObjectSpace, true);
     _editHistory.Changed += _EditHistory_Changed;
 }
Exemple #30
0
 public static void SaveDashboard(this IObjectSpace objectSpace, DevExpress.DashboardCommon.Dashboard dashboard, IDashboardDefinition template, MemoryStream memoryStream)
 {
     dashboard.SynchronizeModel(objectSpace, template);
     dashboard.SaveToXml(memoryStream);
     dashboard.ApplyModel(FilterEnabled.Always, template, objectSpace);
 }
Exemple #31
0
 private static bool CanApply(IModelDashboardDataSource modelDashboardDataSource, FilterEnabled filterEnabled, IDashboardDefinition template, IObjectSpace objectSpace)
 {
     if (modelDashboardDataSource.NodeEnabled && new[] { FilterEnabled.Always, filterEnabled }.Contains(modelDashboardDataSource.Enabled))
     {
         var isObjectFitForCriteria = objectSpace.IsObjectFitForCriteria(template, CriteriaOperator.Parse(modelDashboardDataSource.DashboardDefinitionCriteria));
         return(isObjectFitForCriteria.HasValue && isObjectFitForCriteria.Value);
     }
     return(false);
 }
Exemple #32
0
        static IEnumerable <DataSourceAdapter> GetDataSources(DevExpress.DashboardCommon.Dashboard dashboard, FilterEnabled filterEnabled, IDashboardDefinition template, IObjectSpace objectSpace)
        {
            var modelDashboardModule =
                ((IModelApplicationDashboardModule)ApplicationHelper.Instance.Application.Model).DashboardModule;

            return(modelDashboardModule.DataSources.Where(source => source.NodeEnabled && CanApply(source, filterEnabled, template, objectSpace)).Select(modelDataSource => {
                var dataSource = dashboard.DataSources.FirstOrDefault(source =>
                                                                      String.Equals(source.Name.Trim(), modelDataSource.DataSourceName.Trim(), StringComparison.CurrentCultureIgnoreCase));
                return new DataSourceAdapter(dataSource, modelDataSource);
            }).Where(adapter => adapter.ModelDataSource != null));
        }
 public void LoadTemplate(IDashboardDefinition dashboardDefinition) {
     _template = dashboardDefinition;
     Designer.Dashboard = _template.CreateDashBoard(ObjectSpace, FilterEnabled.DesignTime);
     _editHistory.Changed += _EditHistory_Changed;
 }
Exemple #34
0
 private static bool CanApply(IModelDashboardDataSource modelDashboardDataSource, FilterEnabled filterEnabled, IDashboardDefinition template) {
     if (modelDashboardDataSource.NodeEnabled&&new[]{FilterEnabled.Always,filterEnabled}.Contains(modelDashboardDataSource.Enabled)) {
         var objectSpace = XPObjectSpace.FindObjectSpaceByObject(template);
         var isObjectFitForCriteria = objectSpace.IsObjectFitForCriteria(template, CriteriaOperator.Parse(modelDashboardDataSource.DashboardDefinitionCriteria));
         return isObjectFitForCriteria.HasValue && isObjectFitForCriteria.Value;
     }
     return false;
 }
Exemple #35
0
        public static void SynchronizeModel(this DevExpress.DashboardCommon.Dashboard dashboard, IObjectSpace objectSpace, IDashboardDefinition template)
        {
            var dataSources = GetDataSources(dashboard, FilterEnabled.Always, template, objectSpace);

            foreach (var dataSource in dataSources)
            {
                var filter = dataSource.ModelDataSource as IModelDashboardDataSourceFilter;
                if (filter != null)
                {
                    dataSource.DataSource.Filter = filter.SynchronizeFilter(dataSource.DataSource.Filter);
                }
            }
        }
Exemple #36
0
        public static void Show(this DashboardViewer dashboardViewer, XafApplication application, IDashboardDefinition dashboardDefinition)
        {
            var dashboardCollectionDataSourceFillService = (IXpandDashboardDataSourceFillService)((XpandDashboardDataProvider)DashboardsModule.DataProvider)
                                                           .AttachViewService(dashboardViewer.ServiceContainer, (IDashboardData)dashboardDefinition);

            dashboardCollectionDataSourceFillService.FillService.LoadBeforeParameters += (sender, args) =>
                                                                                         args.Handled = new[] { RuleMode.Always, RuleMode.Runtime }.Contains(dashboardDefinition.EditParameters);
            dashboardDefinition.GetDashboard(application, RuleMode.Runtime, dashboardCollectionDataSourceFillService, null, null, () => {});

            dashboardViewer.Dashboard = dashboardDefinition.GetDashboard(application, RuleMode.Runtime, dashboardCollectionDataSourceFillService, dashboardViewer.DataSourceOptions,
                                                                         dashboard => dashboardViewer.DashboardChanged += (_, args) => dashboardViewer.ShowDashboardParametersForm());
        }
Exemple #37
0
        static Type DashBoardObjectType(IDashboardDefinition template, DevExpress.DashboardCommon.Dashboard dashboard, ITypeWrapper typeWrapper)
        {
            var wrapper = template.DashboardTypes.FirstOrDefault(type => type.Caption.Equals(dashboard.DataSources.First(ds => ds.Name.Equals(typeWrapper.Caption)).Name));

            return(wrapper != null ? wrapper.Type : null);
        }
Exemple #38
0
 public static void ApplyModel(this DevExpress.DashboardCommon.Dashboard dashboard, FilterEnabled filterEnabled, IDashboardDefinition template) {
     var dataSources = GetDataSources(dashboard, filterEnabled, template);
     foreach (var adapter in dataSources) {
         var filter = adapter.ModelDataSource as  IModelDashboardDataSourceFilter;
         if (filter != null) adapter.DataSource.Filter = filter.ApplyFilter(adapter.DataSource.Filter);
         var parameter = adapter.ModelDataSource as IModelDashboardDataSourceParameter;
         if (parameter != null) parameter.ApplyValue(dashboard.Parameters[parameter.ParameterName]);
     }
 }
Exemple #39
0
        public static void ApplyModel(this DevExpress.DashboardCommon.Dashboard dashboard, FilterEnabled filterEnabled, IDashboardDefinition template, IObjectSpace objectSpace)
        {
            var dataSources = GetDataSources(dashboard, filterEnabled, template, objectSpace);

            foreach (var adapter in dataSources)
            {
                var filter = adapter.ModelDataSource as  IModelDashboardDataSourceFilter;
                if (filter != null)
                {
                    adapter.DataSource.Filter = filter.ApplyFilter(adapter.DataSource.Filter);
                }
                var parameter = adapter.ModelDataSource as IModelDashboardDataSourceParameter;
                if (parameter != null)
                {
                    parameter.ApplyValue(dashboard.Parameters[parameter.ParameterName]);
                }
            }
        }