Пример #1
0
        public List <string> GetTableOrderByDependencies()
        {
            //Chứa cặp các table và các dependency của chúng
            Dictionary <string, Item> existedAdj = new Dictionary <string, Item>();
            List <Item> graphTableDependency     = new List <Item>();

            List <string> tables = _dbUtilities.GetAllTable();

            foreach (var table in tables)
            {
                List <Item> adjTableDenpendencies = new List <Item>();
                //List các table dependency của table
                var dependencies = _dbUtilities.GetAllTableDependOn(table).ToArray();

                foreach (var dependency in dependencies)
                {
                    if (!table.Equals(dependency))               //Kiểm tra có phải là chính nó
                    {
                        if (!existedAdj.ContainsKey(dependency)) //Kiểm tra là đã tạo Item này chưa
                        {
                            var item = new Item(dependency);
                            existedAdj.Add(item.Name, item);
                        }
                        adjTableDenpendencies.Add(existedAdj[dependency]); //Tạo mới cạnh
                    }
                }
                //Tạo mới đỉnh là table các cạch là adjTableDenpendencies
                graphTableDependency.Add(new Item(table, adjTableDenpendencies.ToArray()));
            }

            return(TopologicalSort.Sort(graphTableDependency.ToArray(), x => x.Dependencies));
        }
Пример #2
0
        private void ConfigurationView_Load(object sender, EventArgs e)
        {
            needItemCheck = false;

            var tables = _dbUtilities.GetAllTable().ToArray();

            chklistboxTable.Items.AddRange(tables);

            var lastCheckedTable = _appconfigUtilities.GetLastCheckedTable();

            for (int i = 0; i < chklistboxTable.Items.Count; i++)
            {
                if (lastCheckedTable.Contains(chklistboxTable.Items[i].ToString()))
                {
                    chklistboxTable.SetItemChecked(i, true);
                }
            }

            needItemCheck = true;
        }