internal ProjectHandler(string name, DevSiteLoginInfo info) { this.Name = name; DevConnection = info.TryConnect(); DevSite = info; Preference = GetProjectPreference(); }
private void button1_Click(object sender, EventArgs e) { err.Clear(); DevSiteLoginInfo dev = GetDevSite(); try { dev.TryConnect(); } catch (Exception ex) { StringBuilder sb = new StringBuilder(ex.Message); if (ex.InnerException != null) { sb.Append("\n").Append(ex.InnerException.StackTrace); } err.SetError(txtProjectName, sb.ToString()); return; } if (Completed != null) { Completed.Invoke(this, EventArgs.Empty); } this.Close(); }
static MainForm() { Version = Assembly.GetExecutingAssembly().GetName().Version; Storage = new LocalStorage(); DefaultDevSite = new DevSiteLoginInfo(); Projects = new ProjectCollection(); }
internal DevSiteLoginInfo GetDevSite() { DevSiteLoginInfo dev = new DevSiteLoginInfo(); dev.AccessPoint = txtAP.Text; dev.User = txtUser.Text; dev.ContractName = cboContract.Text; dev.Password = txtPassword.Text; return dev; }
internal DevSiteLoginInfo GetDevSite() { DevSiteLoginInfo dev = new DevSiteLoginInfo(); dev.AccessPoint = txtAP.Text; dev.User = txtUser.Text; dev.ContractName = cboContract.Text; dev.Password = txtPassword.Text; return(dev); }
internal static DevSiteLoginInfo Load(XmlElement devSiteElement) { XmlHelper h = new XmlHelper(devSiteElement); DevSiteLoginInfo info = new DevSiteLoginInfo(); info.AccessPoint = h.GetText("AccessPoint"); info.ContractName = h.GetText("ContractName"); info.User = h.GetText("User"); info.Password = h.GetText("Password"); if (string.IsNullOrWhiteSpace(h.GetText("ContractName"))) info.ContractName = DEFAULT_CONTRACT_NAME; else info.ContractName = h.GetText("ContractName"); return info; }
internal static DevSiteLoginInfo Load(XmlElement devSiteElement) { XmlHelper h = new XmlHelper(devSiteElement); DevSiteLoginInfo info = new DevSiteLoginInfo(); info.AccessPoint = h.GetText("AccessPoint"); info.ContractName = h.GetText("ContractName"); info.User = h.GetText("User"); info.Password = h.GetText("Password"); if (string.IsNullOrWhiteSpace(h.GetText("ContractName"))) { info.ContractName = DEFAULT_CONTRACT_NAME; } else { info.ContractName = h.GetText("ContractName"); } return(info); }
private void SetDevSite(DevSiteLoginInfo devSite) { this.DevSite = devSite; try { DevConnection = this.DevSite.TryConnect(); Status = ProjectStatus.Succeed; } catch { Status = ProjectStatus.LoadFail; } XmlHelper h = new XmlHelper(this.Preference); XmlElement de = h.GetElement("Property/DevSite"); XmlNode dep = de.ParentNode; dep.RemoveChild(de); de = devSite.XmlContent.GetElement("."); XmlNode node = dep.OwnerDocument.ImportNode(de, true); dep.AppendChild(node); if (MainForm.CurrentProject != null) MainForm.CurrentProject.UpdateProjectPreference(this.Preference); }
private void LoadDevProject(string projectName, DevSiteLoginInfo devSite) { ReloadProjectList(); foreach (ToolStripMenuItem item in cmOpenProject.DropDownItems) item.Checked = item.Text == projectName; MainForm.CurrentProject = Projects.LoadProjectHandler(projectName); if (CurrentProject == null) return; if (CurrentProject.Status == ProjectStatus.LoadFail) return; //ProjectHandler project = null; //if (devSite != null) // project = new ProjectHandler(projectName, devSite); //else // project = new ProjectHandler(projectName); ProjectHandler project = MainForm.CurrentProject; tvProjects.Nodes.Clear(); TreeNode tn = tvProjects.Nodes.Add(projectName); tn.SelectedImageKey = "project"; tn.ImageKey = "project"; ProjectNodeHandler projectNodeHandler = new ProjectNodeHandler(tn, project); projectNodeHandler.Reloaded += new EventHandler(projectNodeHandler_Reloaded); tn.Tag = projectNodeHandler; TreeNode udtNode = tn.Nodes.Add("UDT"); udtNode.ImageKey = "udts"; udtNode.SelectedImageKey = "udts"; udtNode.ToolTipText = "自訂資料表"; UDTNodeHandler udtNodeHandler = new UDTNodeHandler(udtNode); udtNode.Tag = udtNodeHandler; udtNodeHandler.Reload(); MainForm.CurrentUDT = udtNodeHandler.UDTHandler; TreeNode udsNode = tn.Nodes.Add("UDS"); udsNode.ImageKey = "udss"; udsNode.SelectedImageKey = "udss"; udsNode.ToolTipText = "自訂服務"; UDSNodeHandler udsNodeHandler = new UDSNodeHandler(udsNode); udsNode.Tag = udsNodeHandler; udsNodeHandler.Reload(); MainForm.CurrentUDS = udsNodeHandler.UDSHandler; TreeNode fileNode = tn.Nodes.Add("檔案管理"); fileNode.SelectedImageKey = "upload"; fileNode.ImageKey = "upload"; MainForm.CurrentFileNodeHandler = null; if (MainForm.LoginArgs.SucceedModuleLogin) { fileNode.ToolTipText = string.Empty; FileNodeHandler fileNodeHandler = new FileNodeHandler(fileNode); fileNode.Tag = fileNodeHandler; MainForm.CurrentFileNodeHandler = fileNodeHandler; } else { fileNode.ToolTipText = "檔案管理伺服器登入失敗"; } tvProjects.ExpandAll(); udtNodeHandler.CollapseOutsideProject(); udsNodeHandler.CollapseOutsideProject(); }
internal ResetDevSiteForm(string projectName, DevSiteLoginInfo devSite) { InitializeComponent(); _devSite = devSite; _projectName = projectName; }
internal ResetDevSiteForm(string projectName, DevSiteLoginInfo devSite) { InitializeComponent(); _devSite = devSite; _projectName = projectName; }
internal ProjectEventArgs(string projectName, DevSiteLoginInfo devSite) { ProjectName = projectName; DevSite = devSite; }
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)); }
internal ProjectHandler CreateProjectHandler(string projectName, DevSiteLoginInfo siteInfo) { foreach (string p in _projects) { if (p == projectName) return new ProjectHandler(projectName, siteInfo); } return null; }
private void btnSubmit_Click(object sender, EventArgs e) { err.Clear(); if (string.IsNullOrWhiteSpace(txtProjectName.Text)) err.SetError(txtProjectName, "專案名稱不可空白"); else if (!ProjectHandler.ValidName(txtProjectName.Text)) err.SetError(txtProjectName, "專案名稱必須為英文或數字組成"); if (MainForm.Projects.Contains(txtProjectName.Text)) err.SetError(txtProjectName, "專案名稱已被使用"); if (!chkUseDefault.Checked) { if (string.IsNullOrWhiteSpace(txtAP.Text)) err.SetError(txtAP, "開發站不可空白"); if (string.IsNullOrWhiteSpace(txtUser.Text) && cboContract.Text != "_dev") err.SetError(txtUser, "帳號不可空白"); if (string.IsNullOrWhiteSpace(txtPwd.Text) && cboContract.Text != "_dev") err.SetError(txtPwd, "密碼不可空白"); } if (string.IsNullOrWhiteSpace(txtProjectPath.Text)) err.SetError(txtProjectPath, "專案本機檔案路徑不可空白"); else if (!Directory.Exists(txtProjectPath.Text)) err.SetError(txtProjectPath, "指定的本機檔案路徑不存在"); foreach (Control ctrl in this.Controls) { if (string.IsNullOrEmpty(err.GetError(ctrl))) continue; return; } try { if (chkUseDefault.Checked) MainForm.DefaultDevSite.TryConnect(); else { Connection connection = new Connection(); connection.Connect(txtAP.Text, cboContract.Text, txtUser.Text, txtPwd.Text); } } catch (Exception ex) { if (chkUseDefault.Checked) err.SetError(chkUseDefault, "登入失敗 : " + ex.Message); else err.SetError(txtAP, "登入失敗 : " + ex.Message); return; } DevSiteLoginInfo info = new DevSiteLoginInfo(); if (chkUseDefault.Checked) info = MainForm.DefaultDevSite; else { info.AccessPoint = txtAP.Text; info.ContractName = cboContract.Text; info.User = txtUser.Text; info.Password = txtPwd.Text; } MainForm.Projects.AddProject(txtProjectName.Text, info, txtProjectPath.Text); this.Close(); }
private void btnSubmit_Click(object sender, EventArgs e) { err.Clear(); if (string.IsNullOrWhiteSpace(txtProjectName.Text)) err.SetError(txtProjectName, "專案名稱不可空白"); if (MainForm.Projects.Contains(txtProjectName.Text)) err.SetError(txtProjectName, "專案名稱已被使用"); if (string.IsNullOrEmpty(txtFileName.Text)) err.SetError(btnBro, "請選擇檔案"); if(!File.Exists(txtFileName.Text)) err.SetError(btnBro, "檔案不存在"); if (!chkUseDefault.Checked) { if (string.IsNullOrWhiteSpace(txtAP.Text)) err.SetError(txtAP, "開發站不可空白"); if (string.IsNullOrWhiteSpace(txtUser.Text)) err.SetError(txtUser, "帳號不可空白"); if (string.IsNullOrWhiteSpace(txtPwd.Text)) err.SetError(txtPwd, "密碼不可空白"); } foreach (Control ctrl in this.Controls) { if (string.IsNullOrEmpty(err.GetError(ctrl))) continue; return; } try { if (chkUseDefault.Checked) MainForm.DefaultDevSite.TryConnect(); else { Connection connection = new Connection(); connection.Connect(txtAP.Text, "admin", txtUser.Text, txtPwd.Text); } } catch (Exception ex) { err.SetError(txtAP, "登入失敗 : " + ex.Message); return; } DevSiteLoginInfo info = new DevSiteLoginInfo(); if (chkUseDefault.Checked) info = MainForm.DefaultDevSite; else { info.AccessPoint = txtAP.Text; info.User = txtUser.Text; info.Password = txtPwd.Text; } XmlDocument doc = new XmlDocument(); doc.Load(txtFileName.Text); try { MainForm.Projects.LoadProject(txtProjectName.Text, info, rbCheck.Checked, doc.DocumentElement); } catch (Exception ex) { MessageBox.Show("載入失敗 : \n" + ex.Message, "失敗", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Close(); }