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)); }
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; }