Example #1
0
        public static void RefreshTables(IEventAggregator evAgg, NodeBase root, ref ObservableCollection <NodeDbTableToExcel> nodes)
        {
            var newRoot = new NodeDbTableRoot(evAgg)
            {
                Nodes = new ObservableCollection <NodeDbTableToExcel>()
            };

            nodes = newRoot.Nodes;

            List <NodeBase> allTables = new List <NodeBase>();

            GetTables <NodeBase>(root, node => node.GetNodes(), ref allTables);

            var distinctTables = allTables.GroupBy(g => new { g.Name }).Select(g => g.First()).ToList();
            var orderedTables  = distinctTables.OrderBy((x) => x.Name).ToList();

            nodes = new ObservableCollection <NodeDbTableToExcel>(orderedTables.Select((x) => new NodeDbTableToExcel(evAgg)
            {
                Name = x.Name, Description = x.Description, Nodes = new ObservableCollection <NodeDbTableToExcelToTab>()
            }).ToList());

            var allExcels = (root as NodeRoot).Nodes;

            foreach (var node in nodes)          // TABLES
            {
                foreach (var table in allTables) // ALLTABLES
                {
                    foreach (var rootEx in allExcels)
                    {
                        if (!node.Nodes.Any(x => x.Name.Equals(rootEx.Name)))
                        {
                            var newExcel = new NodeDbTableToExcelToTab(evAgg)
                            {
                                Name = rootEx.Name, Description = rootEx.Description
                            };
                            newExcel.Nodes = new ObservableCollection <NodeTab>(rootEx.Nodes.ToList().Where(x => x.Nodes != null && x.Nodes.Any(y => y.Name.Equals(node.Name))).ToList());
                            node.Nodes.Add(newExcel);
                        }
                    }
                }
            }
        }
Example #2
0
        public MainViewModel(IEventAggregator evAgg, UISprints sprints, DatabaseSchemaViewModel dataViewModel)
        {
            DataViewModel = dataViewModel;
            Sprints       = sprints.Sprints;
            eventAgg      = evAgg;

            rootTables = new NodeDbTableRoot(evAgg)
            {
                Name        = "ROOT for DB Tables",
                Description = "just helper instance...",
                Nodes       = new ObservableCollection <NodeDbTableToExcel>()
            };

            eventAgg.GetEvent <PathViewAddedEvent>().Subscribe(() => {
                Task.Run(() =>
                {
                    DoLoad();
                });
            });

            evAgg.GetEvent <SelectionChangedEvent>().Subscribe(SelectionChanged());

            Import = new DelegateCommand(() => DoImport());
            Save   = new DelegateCommand(() => DoSave());
            Load   = new DelegateCommand(() => DoLoad());

            ShowLog = new DelegateCommand(() =>
            {
                Process process = new Process();
                // Configure the process using the StartInfo properties.
                var rootAppender = ((Hierarchy)LogManager.GetRepository())
                                   .Root.Appenders.OfType <log4net.Appender.FileAppender>()
                                   .FirstOrDefault();

                string filename            = rootAppender != null ? rootAppender.File : string.Empty;
                process.StartInfo.FileName = rootAppender.File;
                //process.StartInfo.Arguments = @"c:\!! LOGs\EscapeDBUsage.log";
                process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                process.Start();
                //process.WaitForExit();// Waits here for the process to exit.
            });

            ShowDataFolder = new DelegateCommand(() =>
            {
                Process process = new Process();
                // Configure the process using the StartInfo properties.
                process.StartInfo.FileName    = "explorer";
                process.StartInfo.Arguments   = FoldersHelper.DataFolder;
                process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                process.Start();
                //process.WaitForExit();// Waits here for the process to exit.
            });

            Refresh        = new DelegateCommand(() => DoRefresh());
            RefreshColumns = new DelegateCommand(() => DoRefreshColumns());

            ExpandAll   = new DelegateCommand(() => DoExpandAll());
            CollapseAll = new DelegateCommand(() => DoCollapseAll());

            SaveSprints = new DelegateCommand(() => DoSaveSprints());

            AddExcel = new DelegateCommand(() => DoAddExcel());

            AddTables = new DelegateCommand(() => DoAddTables());
        }
Example #3
0
        public MainViewModel(IEventAggregator evAgg)
        {
            eventAgg   = evAgg;
            rootTables = new NodeDbTableRoot(evAgg)
            {
                Name        = "ROOT for DB Tables",
                Description = "just helper instance...",
                Nodes       = new ObservableCollection <NodeDbTableToExcel>()
            };

            evAgg.GetEvent <EventSelectedChanged>().Subscribe((n) => {
                SelectedExcel    = null;
                SelectedTab      = null;
                SelectedDbTable  = null;
                SelectedDbColumn = null;

                ExcelVisible  = false;
                TabVisible    = false;
                TableVisible  = false;
                ColumnVisible = false;

                if (n is NodeExcel)
                {
                    SelectedExcel = n as NodeExcel;
                    ExcelVisible  = true;
                }
                if (n is NodeTab)
                {
                    SelectedTab   = n as NodeTab;
                    SelectedExcel = (n as NodeTab).NodeExcel;
                    ExcelVisible  = true;
                    TabVisible    = true;
                }
                if (n is NodeDbTable)
                {
                    SelectedDbTable = n as NodeDbTable;
                    SelectedTab     = (n as NodeDbTable).NodeTab;
                    SelectedExcel   = (n as NodeDbTable).NodeTab.NodeExcel;
                    ExcelVisible    = true;
                    TabVisible      = true;
                    TableVisible    = true;
                }
                if (n is NodeDbColumn)
                {
                    SelectedDbColumn = n as NodeDbColumn;
                    SelectedDbTable  = (n as NodeDbColumn).NodeDbTable;
                    SelectedTab      = (n as NodeDbColumn).NodeDbTable.NodeTab;
                    SelectedExcel    = (n as NodeDbColumn).NodeDbTable.NodeTab.NodeExcel;
                    ExcelVisible     = true;
                    TabVisible       = true;
                    TableVisible     = true;
                    ColumnVisible    = true;
                }
            });
            Import = new DelegateCommand(() => DoImport());
            Save   = new DelegateCommand(() => DoSave());
            Load   = new DelegateCommand(() => DoLoad());

            ShowLog = new DelegateCommand(() =>
            {
                Process process = new Process();
                // Configure the process using the StartInfo properties.
                process.StartInfo.FileName = @"c:\!! LOGs\EscapeDBUsage.log";
                //process.StartInfo.Arguments = @"c:\!! LOGs\EscapeDBUsage.log";
                process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                process.Start();
                //process.WaitForExit();// Waits here for the process to exit.
            });


            Refresh        = new DelegateCommand(() => DoRefresh());
            RefreshColumns = new DelegateCommand(() => DoRefreshColumns());

            ExpandAll   = new DelegateCommand(() => DoExpandAll());
            CollapseAll = new DelegateCommand(() => DoCollapseAll());

            SaveSprints = new DelegateCommand(() => DoSaveSprints());

            AddExcel = new DelegateCommand(() => DoAddExcel());

            AddTables = new DelegateCommand(() => DoAddTables());

            Task.Run(() =>
            {
                DoLoad();
            });
        }