private void button1_Click(object sender, EventArgs e) { err.Clear(); bool valid = true; if (string.IsNullOrWhiteSpace(txtName.Text)) { valid = false; err.SetError(txtName, "名稱不可空白"); } if (!valid) { return; } UDTHandler udt = UDTNodeHandler.UDTHandler; if (udt.Exists(txtName.Text)) { valid = false; err.SetError(txtName, "資料表名稱已存在"); } if (!valid) { return; } UDTTable table = null; try { table = udt.CreateTable(txtName.Text); } catch (Exception ex) { MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //int nodeIndex = UDTNodeHandler.Node.Nodes.Count - 1; //TreeNode newNode = UDTNodeHandler.Node.Nodes.Insert(nodeIndex, txtName.Text.ToLower()); //newNode.SelectedImageKey = "udt"; //newNode.ImageKey = "udt"; //newNode.Tag = new TableNodeHandler(newNode, table); //newNode.TreeView.SelectedNode = newNode; foreach (TreeNode node in UDTNodeHandler.Node.Nodes) { if (node.Text == txtName.Text.ToLower()) { node.TreeView.SelectedNode = node; break; } } this.Close(); }
internal void LoadProject(string projectName, DevSiteLoginInfo devSite, bool checkDup, XmlElement source) { if (this._projects.Contains(projectName)) { throw new Exception("專案已經存在"); } XmlHelper sourceHelper = new XmlHelper(source); if (checkDup) { Connection devConnection = devSite.TryConnect(); Envelope evn = devConnection.SendRequest("UDSManagerService.ListContracts", new Envelope()); XmlHelper rsp = new XmlHelper(evn.Body); StringBuilder contracts = new StringBuilder(); foreach (XmlElement contractElement in sourceHelper.GetElements("Property/Contract")) { string contractName = contractElement.GetAttribute("Name"); if (rsp.GetElement("Contract[@Name='" + contractName + "']") != null) { contracts.Append(contractName).Append("\n"); } } evn = devConnection.SendRequest("UDTService.DDL.ListTables", new Envelope()); rsp = new XmlHelper(evn.Body); StringBuilder tables = new StringBuilder(); foreach (XmlElement contractElement in rsp.GetElements("Property/Table")) { string tableName = contractElement.GetAttribute("Name"); if (rsp.GetElement("Table[@Name='" + tableName + "']") != null) { tables.Append(tableName).Append("\n"); } } StringBuilder msg = new StringBuilder(); if (tables.Length > 0) { msg.Append("檢查到重覆資料表 : \n").Append(tables); } if (contracts.Length > 0) { msg.Append("檢查到重覆 Contract : \n").Append(contracts); } if (msg.Length > 0) { throw new Exception(msg.ToString()); } } string filepath = MainForm.Storage.GetPropertyValue(LOCAL_FILE_PATH, projectName); this.InternalAddProject(projectName, devSite, filepath); ProjectHandler ph = this.CreateProjectHandler(projectName, devSite); UDSHandler uds = ph.GetUDSHandler(); XmlElement ce = sourceHelper.GetElement("Property[@Name='UDS']"); if (ce != null) { uds.ImportContracts(ce, true); } UDTHandler udt = ph.GetUDT(); XmlElement te = sourceHelper.GetElement("Property[@Name='UDT']"); if (te != null) { udt.SetTables(te, true); } if (ProjectAdded != null) { ProjectAdded.Invoke(this, new ProjectEventArgs(projectName, devSite)); } }