Пример #1
0
        /// <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);
        }
Пример #2
0
        //重新绑定模板分类下面的模板节点
        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);
            }
        }
Пример #3
0
        //建表脚本-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());
        }
Пример #4
0
        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("添加模板分类失败");
            }
        }
Пример #5
0
        /// <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("模板分类重命名失败!");
            }
        }
Пример #6
0
 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("注册失败");
         }
     }
 }
Пример #7
0
 public static CodeBuilderService GetCodeBuilderService()
 {
     if (CodeBuilderServiceInstance == null)
     {
         CodeBuilderServiceInstance     = new CodeBuilderService();
         CodeBuilderServiceInstance.Url = CodeBuilderServicesUrl;
     }
     return(CodeBuilderServiceInstance);
 }
Пример #8
0
        //登录
        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 = "登录";
            }
        }
Пример #9
0
        public static void SetCurrentProject(string projectId)
        {
            ProjectEntity entity = new ProjectEntity();

            if (!string.IsNullOrEmpty(projectId))
            {
                CodeBuilderService service = ServiceHelper.GetCodeBuilderService();
                entity = service.GetProjectById(projectId);
            }
            SetCurrentProject(entity);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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());
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
        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);
            }
        }
Пример #14
0
 //导入模板
 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);
         }
     }
 }
Пример #15
0
        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();
        }
Пример #16
0
        //绑定模板
        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();
        }
Пример #17
0
        //删除模版节点
        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);
        }
Пример #18
0
        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());
            }
        }
Пример #19
0
        //建表脚本-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());
        }
Пример #20
0
        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("您本机还没有注册过账号,请先注册!");
            }
        }