Ejemplo n.º 1
0
        public static void MergeItems(DashboardItemCollection fromItems, DashboardMerger dashboardMerger)
        {
            DashboardItemCollection toItems  = dashboardMerger.OriginalDashboard.Items;
            IList <DashboardItem>   newItems = dashboardMerger.NewItems;

            foreach (DashboardItem dashboardItem in fromItems)
            {
                AddItemCopy(dashboardItem, dashboardMerger, (dashboardItemCopy) => {
                    toItems.Add(dashboardItemCopy);
                    newItems.Add(dashboardItemCopy);
                });
            }
        }
Ejemplo n.º 2
0
        static void AddItemCopy(DashboardItem originalItem, DashboardMerger dashboardMerger, Action <DashboardItem> addItemDelegate)
        {
            DashboardItemCollection      toItems             = dashboardMerger.OriginalDashboard.Items;
            IDictionary <string, string> dataSourceNamesMap  = dashboardMerger.DataSourceNamesMap;
            DataSourceCollection         existingDataSources = dashboardMerger.OriginalDashboard.DataSources;
            DashboardItem dashboardItemCopy = originalItem.CreateCopy();

            bool shouldAddItem = false;

            if (toItems.Any(item => item.ComponentName == originalItem.ComponentName))
            {
                if (ResolveDashboardItemNameConflict(dashboardItemCopy, originalItem.ComponentName, toItems, dashboardMerger.DashboardItemNamesMap))
                {
                    shouldAddItem = true;
                }
            }
            else
            {
                dashboardItemCopy.ComponentName = originalItem.ComponentName;
                shouldAddItem = true;
            }
            if (shouldAddItem)
            {
                DataDashboardItem dataDashboardItem = dashboardItemCopy as DataDashboardItem;
                if (dataDashboardItem != null && dataDashboardItem.DataSource != null)
                {
                    string newDataSourceName = String.Empty;
                    if (!dataSourceNamesMap.TryGetValue(dataDashboardItem.DataSource.ComponentName, out newDataSourceName))
                    {
                        newDataSourceName = dataDashboardItem.DataSource.ComponentName;
                    }
                    dataDashboardItem.DataSource = existingDataSources[newDataSourceName];
                }
                addItemDelegate(dashboardItemCopy);
            }
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            DashboardItemCollection controls = dashboardViewer1.Dashboard.Items;

            PrintControlInfo(controls);
        }
Ejemplo n.º 4
0
        static bool ResolveDashboardItemNameConflict(DashboardItem dashboardItemCopy, string originalItemName, DashboardItemCollection toItems, IDictionary <string, string> dashboardItemNamesMap)
        {
            // Provide your item component name confilict resolution logic here

            string newName = NamesGenerator.GenerateName(originalItemName, 1, toItems.Select(item => item.ComponentName));

            dashboardItemNamesMap.Add(originalItemName, newName);
            dashboardItemCopy.ComponentName = newName;
            return(true);
        }