/// <summary> /// 获取当前项目的数据库连接对象 /// </summary> /// <returns></returns> public static ConnectionEntity GetProjectConnection() { if (Connection != null && Connection.ID > 0) { if (!string.IsNullOrEmpty(ConnectionString)) { Connection.ConnectionString = ConnectionString; } return(Connection); } ProjectEntity project = GetCurrentProject(); ConnectionEntity entity = new ConnectionEntity(); if (project.ConnectionID > 0) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); entity = service.GetConnectionById(project.ConnectionID.ToString()); //填充当前的链接字符 if (!string.IsNullOrEmpty(ConnectionString)) { entity.ConnectionString = ConnectionString; } } return(entity); }
//重新绑定模板分类下面的模板节点 public void ReBindTemplateNodes(string typeId, TreeNode typeNode) { //读取模版文件 typeNode.Nodes.Clear(); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); TemplateEntity[] templs = service.GetTemplateList(typeId); foreach (TemplateEntity templ in templs) { TreeNode templNode = new TreeNode() { Text = templ.TemplateName + TemplateExt, Tag = templ.ID, ContextMenuStrip = menuTemplateInfo }; string key = templ.FileExtensions.Replace(".", ""); if (key.IndexOf("htm") > -1 && key != "cshtml") { key = "html"; } SetNodeImage(templNode, key); if (TemplateID > -1) { templNode.Checked = true; } typeNode.Nodes.Add(templNode); } }
//建表脚本-Tables public static string CreateTablesScript(string projectID) { Information.Clear(); StringBuilder sb = new StringBuilder(); try { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); ProjectEntity project = service.GetProjectById(projectID); TableEntity[] tables = service.GetTableList(projectID); for (int i = 0; i < tables.Length; i++) { if (i == 0) { sb.Append(CreateTableScript(project, tables[i], true)); } else { sb.Append(CreateTableScript(project, tables[i], false)); } sb.AppendLine(""); } } catch (Exception ex) { Information.AddFmt("创建表脚本出错,错误信息:{0}", ex.Message); } return(sb.ToString()); }
private void menuAddType_Click(object sender, EventArgs e) { Prompt p = new Prompt("模板分类") { Height = 100 }; string text = p.Show(); if (string.IsNullOrEmpty(text)) { return; } CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); TemplateEntity entity = new TemplateEntity() { ParentID = TemplateRootID, Content = "", FilePrefix = "", TemplateName = text }; if (service.AddTemplate(entity) > 0) { //创建模版目录 //string path = Path.Combine(TemplateManager.TemplatePath, text); //FileHelper.CreateFolder(path); DataBind(); } else { MsgBox.Alert("添加模板分类失败"); } }
/// <summary> /// 模版分类重命名 /// </summary> private void menuRename_Click(object sender, EventArgs e) { string name = this.treeTemplate.SelectedNode.Text; Prompt p = new Prompt("模板分类") { Height = 100, DefaultValue = name }; string text = p.Show(); if (string.IsNullOrEmpty(text)) { return; } CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); TemplateEntity entity = service.GetTemplateById(GetSelectedID()); entity.TemplateName = text; if (service.UpdateTemplate(entity)) { //DirectoryInfo dir = new DirectoryInfo(TemplateManager.GetTemplateType(name)); //dir.MoveTo(TemplateManager.GetTemplateType(text)); this.treeTemplate.SelectedNode.Text = text; } else { MsgBox.Alert("模板分类重命名失败!"); } }
private void Register() { if (this.valid.IsValid()) { //真实姓名是否为中文 string realName = this.txtRealName.Text.Trim(); string code = this.txtCode.Text.Trim(); string ip = WSH.Windows.Common.HardwareInfo.GetNetCardIP(); string mac = WSH.Windows.Common.HardwareInfo.GetMacAddress(); loading.Show(this); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); //先看本机是否已经注册过账号 UserInfoEntity userInfo = service.GetUserInfo(new UserInfoEntity() { IPAddress = ip, MacAddress = mac }); if (userInfo != null && userInfo.ID > 0) { MsgBox.Alert("您本机已经注册过了,如果忘记,请点击左下角链接找回用户名和密码!"); this.Close(); return; } //没注册重新注册 string pwd = this.txtPassword.Text.Trim(); UserInfoEntity user = new UserInfoEntity() { UserName = this.txtUserName.Text.Trim(), RealName = realName, Password = CryptHelper.EncryptDES(pwd, CryptHelper.DefaultKey), CreateTime = DateTime.Now, Enabled = true, IsAdmin = false, IPAddress = ip, Email = this.txtEmail.Text.Trim(), MacAddress = mac }; if (service.ExistsUser(user)) { loading.Hide(); MsgBox.Alert("用户已经存在!"); return; } user.ID = service.AddUser(user); loading.Hide(); if (user.ID > 0) { User = user; User.Password = pwd; MsgBox.Alert("注册成功"); this.Close(); } else { MsgBox.Alert("注册失败"); } } }
public static CodeBuilderService GetCodeBuilderService() { if (CodeBuilderServiceInstance == null) { CodeBuilderServiceInstance = new CodeBuilderService(); CodeBuilderServiceInstance.Url = CodeBuilderServicesUrl; } return(CodeBuilderServiceInstance); }
//登录 private void CheckLogon() { string username = txtUserName.Text.Trim(); string password = txtPassWord.Text.Trim(); if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { MsgBox.Alert("请输入用户名和密码"); } else { loading.Show(this); this.btnLogon.Text = "登录中..."; try { string ip = HardwareInfo.GetNetCardIP(); string mac = HardwareInfo.GetMacAddress(); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); UserInfoEntity userInfo = service.GetUserInfo(new UserInfoEntity() { UserName = username, Password = CryptHelper.EncryptDES(password, CryptHelper.DefaultKey) }); if (userInfo != null && userInfo.ID > 0) { //if (string.IsNullOrEmpty(userInfo.MacAddress) || userInfo.MacAddress != mac) //{ // Global.LoadingForm.Hide(); // MsgBox.Alert("用户Mac地址不匹配"); //} //else //{ //} //记录用户信息 Global.User = userInfo; this.DialogResult = DialogResult.OK; this.Close(); } else { loading.Hide(); Global.LoadingForm.Hide(); MsgBox.Alert("用户名或密码不正确"); } } catch (Exception ex) { loading.Hide(); MsgBox.Alert("用户鉴权失败,请于管理员联系,错误信息:" + ex.Message); } loading.Hide(); Global.LoadingForm.Hide(); this.btnLogon.Text = "登录"; } }
public static void SetCurrentProject(string projectId) { ProjectEntity entity = new ProjectEntity(); if (!string.IsNullOrEmpty(projectId)) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); entity = service.GetProjectById(projectId); } SetCurrentProject(entity); }
public override bool SaveData() { string templateName = this.txtTemplateName.Text.Trim(); TemplateEntity entity = new TemplateEntity() { FileExtensions = "." + this.cboCodeType.Text, FilePrefix = this.txtPrefix.Text, FileName = this.txtFileName.Text, TemplateName = templateName, ParentID = ParentID, Content = this.txtCode.Text }; bool result = false; using (CodeBuilderService service = ServiceHelper.GetCodeBuilderService()) { if (string.IsNullOrEmpty(this.RecordID)) { result = service.AddTemplate(entity) > 0; } else { entity.ID = Convert.ToInt32(RecordID); result = service.UpdateTemplate(entity); } } //if (result) //{ // try // { // string fileName=TemplateManager.GetTemplateFile(templateName, TypeName); // FileHelper.WriteFile(fileName, this.txtCode.Text); // if (!string.IsNullOrEmpty(OldFileName) && fileName!=OldFileName) // { // File.Delete(OldFileName); // } // result = true; // } // catch (Exception ex) // { // result = false; // throw new Exception(ex.Message); // } //} if (result) { //保存成功后,表示页面未发生改变 IsChange = false; OldContent = entity.Content; } return(result); }
private void btnGenerateCode_Click(object sender, EventArgs e) { List <ClassInfo> classCollection = new List <ClassInfo>(); List <InterfaceInfo> interfaceCollection = new List <InterfaceInfo>(); AddFilterClass(classCollection); AddFieldInfoClass(classCollection); AddNewDataClass(classCollection); AddDataAccessClass(classCollection); AddRepositoryInterface(interfaceCollection); string[] codeFiles = CodeBuilderService.GenerateFiles("VbNet", classCollection.ToArray(), interfaceCollection.ToArray()); }
public void DataBind(string tableID) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); if (string.IsNullOrEmpty(tableID)) { DataTable dt = service.GetTableDataTable(Global.GetCurrentProjectID()); this.filterCheckList.DataBind(dt, "TableName"); } else { TableEntity table = service.GetTableById(tableID); this.filterCheckList.AddItem(table.TableName, true); } }
private void GetChildNodeChecked(List <TemplateEntity> list, TreeNode node) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); if (node.Text.EndsWith(TemplateExt) && node.Checked) { list.Add( service.GetTemplateById(node.Tag.ToString()) ); } foreach (TreeNode item in node.Nodes) { GetChildNodeChecked(list, item); } }
//导入模板 private void menuImport_Click(object sender, EventArgs e) { string[] fileNames = Dialog.GetFileNames(); if (fileNames != null && fileNames.Length > 0) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); bool isReloadTreeNode = false; StringBuilder sb = new StringBuilder(); string parentid = GetSelectedID(); foreach (string fileName in fileNames) { try { TemplateEntity entity = ParseTemplateFileName(fileName); entity.Content = FileHelper.GetFileContent(fileName); entity.ParentID = Convert.ToInt32(parentid); int id = service.AddTemplate(entity); if (id > 0) { isReloadTreeNode = true; } else { sb.AppendLine("文件:" + fileName + "导入失败!"); } } catch (Exception ex) { sb.AppendLine("文件:" + fileName + "导入失败,错误信息:" + ex.Message); } } string errors = sb.ToString(); if (string.IsNullOrEmpty(errors)) { MsgBox.Alert("导入成功"); if (isReloadTreeNode) { TreeNode typeNode = GetSelectNode(); ReBindTemplateNodes(parentid, typeNode); typeNode.ExpandAll(); } } else { Utils.ShowErrorDialog(errors); } } }
public override void BindData() { using (CodeBuilderService service = ServiceHelper.GetCodeBuilderService()) { TemplateEntity entity = service.GetTemplateById(this.RecordID); this.txtFileName.Text = entity.FileName; this.cboCodeType.Text = entity.FileExtensions.Replace(".", ""); this.txtTemplateName.Text = entity.TemplateName; this.txtPrefix.Text = entity.FilePrefix; //this.txtCode.LoadFile(TemplateManager.GetTemplateFile(entity.TemplateName, TypeName), true, true); this.txtCode.Text = entity.Content; // Utils.SetEditorLang(this.txtCode, "cs"); } //OldFileName = TemplateManager.GetTemplateFile(entity.TemplateName, TypeName); OldContent = this.txtCode.Text; BindTextBoxChange(); }
//绑定模板 public void DataBind() { if (IsShowCheckBox) { this.treeTemplate.CheckBoxes = true; } this.treeTemplate.Nodes.Clear(); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); TreeNode root = new TreeNode() { Text = "代码模板分类", Tag = TemplateRootID, ContextMenuStrip = menuType }; SetNodeImage(root, "folder"); //读取模版分类 TemplateEntity[] types = service.GetTemplateList(TemplateRootID.ToString()); foreach (TemplateEntity type in types) { //如果是指定类型则只绑定执行类型模版 if (TemplateID > -1 && TemplateID != type.ID) { continue; } TreeNode typeNode = new TreeNode() { Text = type.TemplateName, Tag = type.ID, ContextMenuStrip = menuTemplate }; SetNodeImage(typeNode, "folder"); if (TemplateID > -1) { typeNode.Checked = true; root.Checked = true; } ReBindTemplateNodes(type.ID.ToString(), typeNode); root.Nodes.Add(typeNode); } this.treeTemplate.Nodes.Add(root); this.treeTemplate.ExpandAll(); }
//删除模版节点 private bool DeleteNode(string type) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); if (MsgBox.Confirm("确定删除该模版" + type + "吗?")) { if (service.DeleteTemplate(GetSelectedID())) { this.treeTemplate.SelectedNode.Remove(); return(true); } else { MsgBox.Alert("删除模版" + type + "失败!"); return(false); } } return(false); }
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { var checkeds = e.Argument as List <string>; List <string> nonDelete = new List <string>(); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); int i = 0; foreach (var tableName in checkeds) { i++; backgroundWorker.ReportProgress(i); bool result = false; try { TableEntity table = service.GetTableByName(Global.GetCurrentProjectID(), tableName); if (table != null) { result = service.DeleteTable(table.ID.ToString()); } } catch (Exception ex) { result = false; } if (!result) { nonDelete.Add(tableName); } else { SuccessCount++; } } if (nonDelete.Count > 0) { StringBuilder sb = new StringBuilder(); sb.AppendLine("删除失败的表如下:"); sb.AppendLine(string.Join(",", nonDelete.ToArray())); Utils.ShowErrorDialog(sb.ToString()); } }
//建表脚本-Table public static string CreateTableScript(ProjectEntity project, TableEntity table, bool isUse) { CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); StringBuilder sb = new StringBuilder(); try { if (project == null) { project = Global.GetCurrentProject(); } ColumnEntity[] columns = service.GetColumnList(table.ID.ToString()); //DataBaseType dataBaseType = DataBaseHelper.GetDbType(project.DbType); if (isUse) { sb.Append(GetUseScript(project.ProjectName)); } sb.AppendLine("--创建表:" + table.Attr); sb.AppendLine("if exists (select name from sysobjects where name='" + table.TableName + "')"); sb.AppendLine("\tbegin"); sb.AppendLine("\t\tprint '--温馨提示:" + table.TableName + "表已经存在,如需重新建表,请手动删除'"); sb.AppendLine("\t\tprint 'drop table " + table.TableName + "'"); sb.AppendLine("\tend"); sb.AppendLine("else"); sb.AppendLine("create table " + table.TableName); sb.AppendLine("("); for (int i = 0; i < columns.Length; i++) { string last = i == columns.Length - 1 ? "" : ","; ColumnEntity col = columns[i]; bool isPK = !string.IsNullOrEmpty(table.DataKey) && table.DataKey.ToLower() == col.Field.ToLower(); if (isPK) { string pkInfo = table.DataKeyType == WSH.CodeBuilder.DispatchServers.DataKeyType.Guid ? " varchar(40) primary key" : col.DataType + " primary key identity"; sb.AppendLine(string.Format("\t{0} {1}{2}--{3}", col.Field, pkInfo, last, col.Display)); } else { string notNull = col.Required == false ? " not null" : ""; string isDefault = string.IsNullOrEmpty(col.DefaultValue) ? "" : " default " + col.DefaultValue; string[] numbers = new string[] { "decimal", "numeric" }; string[] strings = new string[] { "nvarchar", "varchar", "char" }; string len = string.Empty; if (Array.IndexOf(numbers, col.DataType) > -1) { len = "(18," + col.Length + ")"; } else if (Array.IndexOf(strings, col.DataType) > -1) { len = "(" + col.Length + ")"; } string dataType = DataTypeManager.GetLangDataType("sqlserver", col.DataType); sb.AppendLine(string.Format("\t{0} {1}{2}{3}{4}--{5}", col.Field, (dataType + len), notNull, isDefault, last, col.Display)); } } sb.AppendLine(")"); } catch (Exception ex) { Information.AddFmt("创建表脚本出错,错误信息:{0}", ex.Message); } return(sb.ToString()); }
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //先检查当前mac是否存在用户 string ip = WSH.Windows.Common.HardwareInfo.GetNetCardIP(); string mac = WSH.Windows.Common.HardwareInfo.GetMacAddress(); UserInfoEntity userInfo = null; try { loading.Show(this); CodeBuilderService service = ServiceHelper.GetCodeBuilderService(); userInfo = service.GetUserInfo(new UserInfoEntity() { IPAddress = ip, MacAddress = mac }); loading.Hide(); } catch (Exception ex) { loading.Hide(); MsgBox.Alert("获取用户信息失败,错误信息:" + ex.Message); } if (userInfo != null && userInfo.ID > 0) { string sendmail = userInfo.Email; if (string.IsNullOrEmpty(sendmail)) { //存在用户则发送邮件 Prompt p = new Prompt() { Content = "请输入您的邮箱", Height = 100, Width = 250 }; p.OnCustomValidate += (s, r) => { if (!RegexHelper.Test(r.Value, RegexHelper.Email)) { r.Msg = "邮箱格式不正确!"; r.IsSuccess = false; } }; sendmail = p.Show(); } if (!string.IsNullOrEmpty(sendmail)) { loading.Show(this); try { SmtpConfig config = SmtpConfigManager.GetDefaultConfig(); SmtpClient smtpClient = SmtpConfigManager.GetSmtpClient(config); MailMessage mail = new MailMessage() { Subject = "WSH.Studio找回用户名密码", BodyFormat = MailFormat.Text, From = config.Username, FromName = config.SendName, Body = string.Format("您注册过的WSH.Studio用户名为:{0},密码为:{1}", userInfo.UserName, CryptHelper.DecryptDES(userInfo.Password, CryptHelper.DefaultKey)) }; mail.AddRecipients(sendmail); bool isSend = smtpClient.Send(mail); if (!isSend) { throw new Exception(smtpClient.ErrorMsg); } loading.Hide(); MsgBox.Alert("已经将用户名和密码成功发送到您的邮箱,请查收!"); } catch (Exception ex) { loading.Hide(); MsgBox.Alert("找回用户名密码失败,请联系管理员,错误信息:" + ex.Message); } } } else { MsgBox.Alert("您本机还没有注册过账号,请先注册!"); } }