public void SaveItem(bjf_account submitItem)
        {
            if (submitItem.id == 0)
            {
                submitItem.createid   = Convert.ToInt32(SessionHelper.GetSession("userid"));
                submitItem.updateid   = Convert.ToInt32(SessionHelper.GetSession("userid"));
                submitItem.createtime = DateTime.Now;
                submitItem.updatetime = DateTime.Now;

                submitItem.mobile     = EncryAndDecryptHelper.Encryption(submitItem.mobile);
                submitItem.dbpassword = EncryAndDecryptHelper.Encryption(submitItem.dbpassword);
                submitItem.domainname = string.Format("{0}.login.cn", submitItem.domainname);
                submitItem.state      = (int)AccountState.未创建;

                this.Add(submitItem);
            }
            else
            {
                var item = this.GetItem(submitItem.id);
                item.name            = submitItem.name;
                item.mobile          = EncryAndDecryptHelper.Encryption(submitItem.mobile);
                item.domainshortname = submitItem.domainshortname;
                item.domainname      = string.Format("{0}.login.cn", submitItem.domainname);
                item.dbname          = submitItem.dbname;
                item.dbserver        = submitItem.dbserver;
                item.dbuserid        = submitItem.dbuserid;
                item.dbpassword      = EncryAndDecryptHelper.Encryption(submitItem.dbpassword);
                item.comment         = submitItem.comment;

                item.updateid   = Convert.ToInt32(SessionHelper.GetSession("userid"));
                item.updatetime = DateTime.Now;
                this.Update(item);
            }
            this.Save();
        }
        /// <summary>
        /// 初始化数据库
        /// </summary>
        public void InitDataBase(bjf_account submitItem)
        {
            try
            {
                string path = HttpRuntime.AppDomainAppPath.ToString();

                if (!path.EndsWith(@"\"))
                {
                    path += @"\";
                }
                path += @"asset\sql\powerbjf.sql"; //获取脚本位置
                if (File.Exists(path))
                {
                    FileInfo file      = new FileInfo(path);
                    var      sqlScript = file.OpenText().ReadToEnd();
                    if (!string.IsNullOrWhiteSpace(sqlScript))                   //脚本不能为空
                    {
                        var connection = this.GetDbConnectionString(submitItem); //获取mysql数据库连接字符串
                        using (var conn = new MySqlConnection(connection))
                        {
                            using (var cmd = new MySqlCommand(sqlScript, conn))
                            {
                                try
                                {
                                    conn.Open();
                                    cmd.ExecuteNonQuery();
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine(e);
                                    throw;
                                }
                            }
                            //创建完毕更改创建状态
                            UpdateCreateState(submitItem);
                        }
                    }
                    else
                    {
                        var msg = string.Format("读取数据库脚本出错:{0}", path);
                        LogHelper.log.Error(msg);
                        throw new Exception(msg);
                    }
                }
                else
                {
                    var msg = string.Format("找不到数据库脚本:{0}", path);
                    LogHelper.log.Error(msg);
                    throw new Exception(msg);
                }
            }
            catch (Exception ex)
            {
                var msg = string.Format("初始化数据库出错:{0}", ex.Message);
                LogHelper.log.Error(msg);
                throw new Exception(msg);
            }
        }
        /// <summary>
        /// 创建数据库
        /// </summary>
        public void CreateDataBase(bjf_account submitItem)
        {
            try
            {
                submitItem.state = (int)AccountState.创建中;
                this.Update(submitItem);

                var createSql = string.Format("CREATE DATABASE {0};", submitItem.dbname);
                //创建数据库
                this.ExcuteSql(createSql);
                //初始化数据库
                Task.Factory.StartNew(() => InitDataBase(submitItem));
            }
            catch (Exception ex)
            {
                var msg = string.Format("创建数据库出错:{0}", ex.Message);
                LogHelper.log.Error(msg);
            }
        }
 public ActionResult SubmitSave(bjf_account submitItem)
 {
     try
     {
         var item = AccountManager.GetInstance().GetByMobile(submitItem.mobile);
         if (submitItem.id == 0 && item != null)
         {
             return(Json(new { state = 1, msg = "该手机号已存在,不允许重复." }));
         }
         else if (submitItem.id != 0 && item != null && item.id != submitItem.id)
         {
             return(Json(new { state = 1, msg = "该手机号已存在,不允许重复." }));
         }
         AccountManager.GetInstance().SaveItem(submitItem);
         return(Json(new { state = 0, msg = "操作成功." }));
     }
     catch (Exception ex)
     {
         LogHelper.log.Error(ex.Message);
         return(Json(new { state = 1, msg = ex.Message }));
     }
 }
 /// <summary>
 /// 获取数据库连接字符串
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public string GetDbConnectionString(bjf_account item)
 {
     return(string.Format(
                "server={0};database={1};user id={2};password={3};Convert Zero Datetime=True;Allow Zero Datetime=True;Connect Timeout=21600;", item.dbserver, item.dbname, item.dbuserid, EncryAndDecryptHelper.Decryption(item.dbpassword)));
 }
 /// <summary>
 /// 更改状态
 /// </summary>
 /// <param name="item"></param>
 public void UpdateCreateState(bjf_account item)
 {
     item.state = (int)AccountState.已创建;
     this.Update(item);
     this.Save();
 }