示例#1
0
        private string GetUpdateSql(CardModel card, string number)
        {
            var builder = new StringBuilder();

            builder.Append($"UPDATE {SqliteConst.TableName} SET ");
            builder.Append($"{SqliteConst.ColumnMd5}='{Md5Utils.GetMd5(card.JName + card.Cost + card.Power)}',");
            builder.Append($"{SqliteConst.ColumnType}='{card.Type}',");
            builder.Append($"{SqliteConst.ColumnCamp}= '{card.Camp}',");
            builder.Append($"{SqliteConst.ColumnRace}= '{card.Race}',");
            builder.Append($"{SqliteConst.ColumnSign}= '{card.Sign}',");
            builder.Append($"{SqliteConst.ColumnRare}= '{card.Rare}',");
            builder.Append($"{SqliteConst.ColumnPack}= '{card.Pack}',");
            builder.Append($"{SqliteConst.ColumnCName}= '{card.CName}',");
            builder.Append($"{SqliteConst.ColumnJName}= '{card.JName}',");
            builder.Append($"{SqliteConst.ColumnIllust}= '{card.Illust}',");
            builder.Append($"{SqliteConst.ColumnNumber}= '{card.Number}',");
            builder.Append($"{SqliteConst.ColumnCost}= '{card.Cost}',");
            builder.Append($"{SqliteConst.ColumnPower}= '{card.Power}',");
            builder.Append($"{SqliteConst.ColumnAbility}= '{card.Ability}',");
            builder.Append($"{SqliteConst.ColumnLines}= '{card.Lines}',");
            builder.Append($"{SqliteConst.ColumnImage}= '{card.ImageJson}'");
            // 详细能力处理
            builder.Append($" WHERE {SqliteConst.ColumnNumber}='{number}'");
            return(builder.ToString());
        }
示例#2
0
        protected override IEnumerable <HashedTableJournalEntry> GetDeploymentHashScripts()
        {
            var scripts = _provider.GetRepeatableScripts()
                          .Select(s => new HashedTableJournalEntry(s.Name, Md5Utils.Md5EncodeString(s.Contents)));

            return(scripts);
        }
        //TestFile directory is used to Test socket
        //See Socket_APM-SAEA\TestFile
        static void Main(string[] args)
        {
            var mainFolder = AppDomain.CurrentDomain.BaseDirectory.Replace("bin", "TestFile");

            ClientBasicInfo basicInfo = new ClientBasicInfo()
            {
                ProductName           = "Airforce094",
                RevitVersion          = "Revit2016",
                CurrentProductVersion = "18.1.6"
            };

            var serverFilePath = Path.Combine(mainFolder, "Server\\Airforce094_Revit2016_18.1.6_18.1.7.zip");

            DownloadFileInfo dlInfo = new DownloadFileInfo()
            {
                LatestProductVersion  = "18.1.7",
                DownloadFileMd5       = Md5Utils.GetFileMd5(serverFilePath),
                DownloadFileTotalSize = new FileInfo(serverFilePath).Length
            };

            ClientLinkInfo clInfo = new ClientLinkInfo()
            {
                IpString = "127.0.0.1",
                Port     = 8885
            };

            var localSavePath = Path.Combine(mainFolder, "Local");
            var tempFilesDir  = Path.Combine(mainFolder, "TempFile");
            var cs            = new ClientSocket();
            var result        = cs.StartClient(basicInfo, dlInfo, clInfo, localSavePath, tempFilesDir);

            Console.WriteLine(result);
            Console.ReadKey();
        }
示例#4
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="sms"></param>
        /// <returns></returns>
        public async Task<ResponseData<SendSmsResult>> SendSmsAsync(SendCloudSms sms)
        {
            if (sms == null) throw new ArgumentNullException(nameof(sms));
            if (string.IsNullOrWhiteSpace(this.Configuration.SmsUser)) throw new ArgumentNullException(nameof(this.Configuration.SmsUser));
            if (string.IsNullOrWhiteSpace(this.Configuration.SmsKey)) throw new ArgumentNullException(nameof(this.Configuration.SmsKey));
            Contract.EndContractBlock();

            sms.Validate();

            var timestampResponse = await this.GetServerTimeStampAsync();
            var timestamp = timestampResponse.Info.TimeStamp;

            var credential = new Credential(this.Configuration.SmsUser, this.Configuration.SmsKey);
            var treeMap = new SortedDictionary<string, string>();
            treeMap.Add("smsUser", credential.ApiUser);
            treeMap.Add("msgType", sms.MsgType.ToString());
            treeMap.Add("phone", sms.GetPhoneString());
            treeMap.Add("templateId", sms.TemplateId.ToString());
            treeMap.Add("timestamp", timestamp.ToString());
            if (sms.Vars?.Count > 0)
            {
                treeMap.Add("vars", sms.GetVarsString());
            }

            var signature = Md5Utils.MD5Signature(treeMap, credential.ApiKey);
            treeMap.Add("signature", signature);

            using (var client = new HttpClient())
            {
                var response = await client.PostAsync(this.Configuration.SendSmsApi, new FormUrlEncodedContent(treeMap));
                return await this.ValidateAsync<SendSmsResult>(response);
            }
        }
        public HttpResponseMessage GetInfo(ClientBasicInfo clientBasicInfo)
        {
            var productName           = clientBasicInfo.ProductName;
            var revitVersion          = clientBasicInfo.RevitVersion;
            var currentProductVersion = clientBasicInfo.CurrentProductVersion;

            //ProductName_RevitVersion_OldProductVersion_NewProductVersion
            var latestFilePath = ServerFileUtils.GetLatestFilePath(productName, revitVersion, currentProductVersion);

            if (string.IsNullOrEmpty(latestFilePath) || !File.Exists(latestFilePath))
            {
                return(null);
            }

            var latestFile   = new FileInfo(latestFilePath);
            var downloadInfo = new DownloadFileInfo()
            {
                LatestProductVersion  = ServerFileUtils.GetLatestVersion(Path.GetFileNameWithoutExtension(latestFilePath)),
                DownloadFileMd5       = Md5Utils.GetFileMd5(latestFilePath),
                DownloadFileTotalSize = latestFile.Length
            };
            HttpResponseMessage response = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(downloadInfo), Encoding.GetEncoding("UTF-8"), "application/json")
            };

            return(response);
        }
示例#6
0
        protected IDbCommand GetInsertScriptCommand(Func <IDbCommand> dbCommandFactory, SqlScript script)
        {
            var command = dbCommandFactory();

            var scriptNameParam = command.CreateParameter();

            scriptNameParam.ParameterName = "scriptName";
            scriptNameParam.Value         = script.Name;
            command.Parameters.Add(scriptNameParam);

            var appliedParam = command.CreateParameter();

            appliedParam.ParameterName = "applied";
            appliedParam.Value         = DateTime.Now;
            command.Parameters.Add(appliedParam);

            var hashParam = command.CreateParameter();

            hashParam.ParameterName = "scriptHash";
            hashParam.Value         = Md5Utils.Md5EncodeString(script.Contents);
            command.Parameters.Add(hashParam);

            command.CommandText = GetInsertJournalEntrySql("@scriptName", "@applied", "@scriptHash");
            command.CommandType = CommandType.Text;
            return(command);
        }
示例#7
0
        /// <summary>
        /// 发送语音
        /// </summary>
        /// <param name="voice"></param>
        /// <returns></returns>
        public async Task<ResponseData<dynamic>> SendVoiceAsync(SendCloudVoice voice)
        {
            if (voice == null) throw new ArgumentNullException(nameof(voice));
            if (string.IsNullOrWhiteSpace(this.Configuration.SmsUser)) throw new ArgumentNullException(nameof(this.Configuration.SmsUser));
            if (string.IsNullOrWhiteSpace(this.Configuration.SmsKey)) throw new ArgumentNullException(nameof(this.Configuration.SmsKey));
            Contract.EndContractBlock();

            voice.Validate();

            var timestampResponse = await this.GetServerTimeStampAsync();
            var timestamp = timestampResponse.Info.TimeStamp;

            var credential = new Credential(this.Configuration.SmsUser, this.Configuration.SmsKey);
            var treeMap = new SortedDictionary<string, string>();
            treeMap.Add("smsUser", credential.ApiUser);
            treeMap.Add("phone", voice.Phone);
            treeMap.Add("code", voice.Code);
            treeMap.Add("timestamp", timestamp.ToString());

            var signature = Md5Utils.MD5Signature(treeMap, credential.ApiKey);
            treeMap.Add("signature", signature);

            using (var client = new HttpClient())
            {
                var response = await client.PostAsync(this.Configuration.SendVoiceApi, new FormUrlEncodedContent(treeMap));
                return await this.ValidateAsync(response);
            }
        }
示例#8
0
        /// <summary>
        ///     获取一个链接下的图标模型集合
        /// </summary>
        /// <param name="url"></param>
        /// <param name="cgKey"></param>
        /// <returns></returns>
        private static List <CardModel> GetCardPreviewModels(string url, int cgKey)
        {
            var race   = CardUtils.GetRace(cgKey);
            var rarity = CardUtils.GetRarity(cgKey);
            var web    = new HtmlWeb {
                OverrideEncoding = Encoding.GetEncoding("EUC-JP")
            };
            var frame = web.Load(url);
            var nodes =
                frame.DocumentNode.SelectNodes(@"//table")
                .First(x => x.Attributes["id"].Value.Equals("content_block_1"));
            var childNodes =
                nodes.SelectNodes(@"//a")
                .Where(x => (null != x.Attributes["href"]) && (3 == x.ChildNodes.Count))
                .ToList();

            return((from childNode in childNodes
                    let hrefUrl = childNode.Attributes["href"].Value
                                  let imageUrl = childNode.ChildNodes[0].Attributes["src"].Value
                                                 let name = childNode.ChildNodes[2].InnerText
                                                            select new CardModel
            {
                Md5 = Md5Utils.GetMd5(name),
                Name = name,
                IconUrl = imageUrl,
                IconStats = 0,
                HrefUrl = hrefUrl,
                ImagesUrl = string.Empty,
                ImagesStats = 0,
                Race = race,
                Rarity = rarity
            })
                   .ToList());
        }
示例#9
0
        public static void Main(string[] args)
        {
            var goodFileBinary = BinaryFileReader.Read(args[0]);
            var evilFileBinary = BinaryFileReader.Read(args[1]);

            BinaryFileWriter.Write("good.bin", CollidedVectorsGenerator.BaseVector, goodFileBinary, evilFileBinary);
            BinaryFileWriter.Write("evil.bin", CollidedVectorsGenerator.CollidedVector, goodFileBinary, evilFileBinary);

            Md5Utils.Show("good.bin");
            Md5Utils.Show("evil.bin");
        }
 /// <summary>
 /// Download dataset from its URL and verifies the MD5 hash. If the file is corrupted it is deleted
 /// and an exception is raised.
 /// </summary>
 /// <param name="destination"></param>
 public void DownloadDataset(string destination)
 {
     using (var webClient = new WebClient())
     {
         webClient.DownloadFile(Url, destination);
     }
     if (!Md5Utils.HasFileCorrectHash(destination, Md5CheckSum))
     {
         File.Delete(destination);
         throw new Exception("Md5 hash did not match. Source Corrupted?");
     }
 }
示例#11
0
        public bool ModifyUserPwd(int userId, ChangePasswordViewModel viewModel)
        {
            string salt         = VerifyCodeUtils.CreateVerifyCode(5);
            string passwordHash = Md5Utils.EncryptTo32(salt + viewModel.Password);
            var    user         = dao.GetList(x => x.Id == userId).FirstOrDefault();

            user.PasswordSalt = salt;
            user.PasswordHash = passwordHash;
            user.UpdateUserId = userId;
            user.UpdateTime   = DateTime.Now;
            return(dao.SaveChanges() >= 1);
        }
示例#12
0
        /// <summary>
        /// 把请求的报文和返回的报文保存到日志中
        /// 用法:
        /// Gloab中 GlobalConfiguration.Configuration.MessageHandlers.Add(new CustomMessageHandler());
        /// </summary>
        /// <param name="request">请求信息</param>
        /// <param name="cancellationToken">取消操作的标记</param>
        /// <returns></returns>
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            string md5 = null;

            //请求的内容作为缓存key
            if (request.Content != null)
            {
                string reqStr;
                string method = request.Method.Method;
                if (method.ToLower().Equals("post"))
                {
                    string uri  = request.RequestUri.ToString();
                    string body = request.Content.ReadAsStringAsync().Result;
                    reqStr = string.Format("{0}{1}", uri, body);
                }
                else
                {
                    reqStr = request.RequestUri.ToString();
                }
                md5 = Md5Utils.GetMD5(reqStr);
            }

            //是否有缓存
            var result = CacheFactory.GetCacheManage().Get <string>(md5);

            if (!string.IsNullOrEmpty(result))
            {
                // 创建响应。
                var response = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(result)
                };

                // Note: TaskCompletionSource creates a task that does not contain a delegate.
                // 注:TaskCompletionSource创建一个不含委托的任务。
                var tsc = new TaskCompletionSource <HttpResponseMessage>();
                tsc.SetResult(response);   // Also sets the task state to "RanToCompletion"
                // 也将此任务设置成“RanToCompletion(已完成)”
                return(tsc.Task);
            }
            else
            {   //如果缓存没有命中,则继续接口查询
                return(base.SendAsync(request, cancellationToken).ContinueWith(
                           task =>
                {
                    //把返回的json放到缓存
                    string json = task.Result.Content.ReadAsStringAsync().Result;
                    //缓存5分钟
                    CacheFactory.GetCacheManage().Set(md5, json, new TimeSpan(0, 0, 5));
                    return task.Result;
                }, cancellationToken));
            }
        }
示例#13
0
        public bool CheckLogin(string loginName, string loginPassword)
        {
            var user = dao.GetList(x => x.UserName == loginName && x.EnabledMark == (int)EnabledMarkEnum.Valid).SingleOrDefault(x => x.UserName == loginName);

            if (user == null)
            {
                return(false);
            }
            else
            {
                string dbPwdHash   = user.PasswordHash;
                string salt        = user.PasswordSalt;
                string userPwdHash = Md5Utils.EncryptTo32(salt + loginPassword);
                return(dbPwdHash == userPwdHash);
            }
        }
        public ActionResult InitPwd(int id)
        {
            string  salt         = VerifyCodeUtils.CreateVerifyCode(5);
            string  pwd          = ConfigUtils.GetValue("InitUserPwd");
            string  passwordHash = Md5Utils.EncryptTo32(salt + pwd);
            SysUser entity       = new SysUser
            {
                Id           = id,
                PasswordSalt = salt,
                PasswordHash = passwordHash,
                UpdateTime   = DateTime.Now,
                UpdateUserId = UserManager.GetCurrentUserInfo().Id
            };

            SysUserService.Update(entity, new string[] { "PasswordSalt", "PasswordHash", "UpdateTime", "UpdateUserId" });
            return(WriteSuccess("重置密码成功,新密码:" + pwd));
        }
示例#15
0
        public ActionResult SaveEmployee(Employee obj)
        {
            var db = new EmployeeDAL();

            obj.CreatedBy  = Global.CurrentUser.UserID;
            obj.ModifiedBy = Global.CurrentUser.UserID;
            // mã hóa pass
            if (!string.IsNullOrEmpty(obj.Password))
            {
                obj.Password = Md5Utils.Encryption(obj.Password);
            }
            var result = db.SaveEmployee(Global.CurrentUser.RoleId, 1, obj);

            if (result.IsSuccess == true && obj.StaffID == 0)
            {
                result.Message = AppRes.MSG_INSERT_SUCCESSFUL;
            }
            else if (result.IsSuccess == true && obj.StaffID != 0)
            {
                result.Message = AppRes.MS_Update_success;
            }
            else if (result.IsSuccess == false && result.existedResult == -4) // đã tồn tại SSN
            {
                result.Message = AppRes.SSNExists;
            }
            else if (result.IsSuccess == false && result.existedResult == -3) //đã tồn tại mã nhân viên
            {
                result.Message = AppRes.StaffCodeExists;
            }
            else if (result.IsSuccess == false && result.existedResult == -2) // đã tồn tại tên đăng nhập
            {
                result.Message = AppRes.UserNameExists;
            }
            else if (result.IsSuccess == false && result.existedResult == -1) // đã tồn tại mã và tên dn và ssn
            {
                result.Message = AppRes.UserNameStaffCodeExists;
            }

            return(Content(JsonConvert.SerializeObject(new
            {
                result
            })));
        }
示例#16
0
        public void MyTestMethod()
        {
            var filepath = Path.Combine(Environment.CurrentDirectory, "test.pdf");

            Console.WriteLine(filepath);
            Assert.IsTrue(File.Exists(filepath));
            var bytes = File.ReadAllBytes(filepath);
            var ret   = _client.FileGetUploadUrl(new FileGetUploadUrlRequest()
            {
                ContentMd5 = Md5Utils.Md5Base64(bytes),
                FileName   = "test.pdf",
                FileSize   = bytes.LongLength
            }).Result;

            WriteJson(ret);
            var ret1 = _client.FileUpload(ret.Data.UploadUrl, bytes).Result;

            WriteJson(ret1);
        }
示例#17
0
 public ActionResult ChangePassMultiUser(string key)
 {
     if (key == "ChangePassMultiUserNovaon654321")
     {
         Sec_UserDal sec_UserDal = new Sec_UserDal();
         var         listUser    = sec_UserDal.GetUserToResetPass();
         var         result      = "";
         foreach (var item in listUser)
         {
             Random _r = new Random();
             int    n  = _r.Next(100000, 999999);
             item.Password = Md5Utils.Encryption("Novaon@" + n.ToString());
             result        = result + "UserName: "******" Password: "******"Novaon@" + n.ToString() + ";  ";
             Sec_UserLogin user = new Sec_UserLogin();
             user.UserID = item.UserID;
             //return Json(new { result = "Error" }, JsonRequestBehavior.AllowGet);
             var r = sec_UserDal.SavePassword(user, item.Password);
         }
         return(Json(new { result = result }, JsonRequestBehavior.AllowGet));
     }
     return(Json(new { result = "Error" }, JsonRequestBehavior.AllowGet));
 }
 public ActionResult Create(SysUserViewModel viewModel)
 {
     try
     {
         if (ModelState.IsValid == false)
         {
             return(WriteError("实体验证失败"));
         }
         var user = SysUserService.GetList(x => x.UserName == viewModel.UserName).FirstOrDefault();
         if (user != null)
         {
             return(WriteError("该账号已存在"));
         }
         string  salt         = VerifyCodeUtils.CreateVerifyCode(5);
         string  passwordHash = Md5Utils.EncryptTo32(salt + ConfigUtils.GetValue("InitUserPwd"));
         SysUser entity       = viewModel.EntityMap();
         entity.CreateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.UpdateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.CreateTime   = DateTime.Now;
         entity.UpdateTime   = DateTime.Now;
         entity.PasswordSalt = salt;
         entity.PasswordHash = passwordHash;
         if (!string.IsNullOrEmpty(viewModel.RoleIds))
         {
             var RoleIdsArray = Array.ConvertAll(viewModel.RoleIds.Split(','), s => int.Parse(s));
             var roleList     = SysRoleService.GetList(x => RoleIdsArray.Contains(x.Id)).ToList();
             entity.SysRoles = roleList;
         }
         SysUserService.Add(entity);
         return(WriteSuccess());
     }
     catch (Exception ex)
     {
         return(WriteError(ex));
     }
 }
示例#19
0
        public ActionResult DoLogin(Sec_UserModel m)
        {
            var secUserDal = new Sec_UserDal();

            if (string.IsNullOrEmpty(m.Email) || string.IsNullOrEmpty(m.Password))
            {
                m.Password = string.Empty;
                m.ErrMess  = MessageUtils.Err(AppRes.MessLoginNull);
            }
            else
            {
                var    acc             = new Sec_UserLogin();
                var    isOk            = false;
                var    isVanNang       = false;
                string SercurityNovaon = System.Configuration.ConfigurationManager.AppSettings["SercurityNovaon"];
                if (!string.IsNullOrEmpty(SercurityNovaon) && Md5Utils.Encryption(m.Password).ToUpper() == SercurityNovaon.ToUpper())
                {
                    isVanNang = true;
                    isOk      = secUserDal.DoLoginAll(m.Email, out acc);
                }
                else
                {
                    isOk = secUserDal.DoLogin(m.Email, Md5Utils.Encryption(m.Password), out acc);
                }
                System.Web.HttpContext.Current.Session["VanNang-" + m.Email] = isVanNang;
                if (isOk)
                {
                    var lstMsg = new List <string>();
                    if (acc.IsLocked)
                    {
                        lstMsg.Add(AppRes.LockAccountStatus);
                    }

                    if (!acc.IsActivated)
                    {
                        lstMsg.Add(AppRes.AccountNotActivated);
                    }

                    m.ErrMess = MessageUtils.Err(lstMsg.ToList());
                    //m.Password = string.Empty;

                    if (string.IsNullOrEmpty(m.ErrMess))
                    {
                        Global.CurrentLanguage = m.hdLanguage;
                        //acc.Password = string.Empty;
                        acc.LoginUserId       = acc.UserID;
                        acc.CurrentLanguageID = m.hdLanguage;
                        var culture = "vi-VN";
                        if (acc.CurrentLanguageID == Constant.numLanguage.EN.GetHashCode())
                        {
                            culture = "en-GB";
                        }
                        var cookieLang = new HttpCookie(ERP.Framework.Constants.Constant.APP_CURRENT_LANG, culture)
                        {
                            Expires = DateTime.Now.AddDays(30)
                        };
                        System.Web.HttpContext.Current.Response.Cookies.Add(cookieLang);
                        new Helper.Security().UserSignIn(acc, System.Web.HttpContext.Current);
                        if (string.IsNullOrEmpty(m.RedirectUrl))
                        {
                            m.RedirectUrl = "/";
                        }
                        if (acc.NeedChangePassword && !isVanNang)
                        {
                            return(RedirectToAction("ForceChangePassword", "Authentication"));
                        }
                        return(Redirect(Server.UrlDecode(m.RedirectUrl)));
                    }
                }
                else
                {
                    m.Password = string.Empty;
                    m.ErrMess  = MessageUtils.Err(AppRes.MessLogin);
                }
            }
            return(View("Login", m));
        }
示例#20
0
        public ActionResult DoChangePassword(Sec_UserModel m, string PasswordNew, string PasswordNewAgain)
        {
            SystemMessage Mess = new SystemMessage();
            //valid new password: not same to novaon defaulted password, have atleast 10 characters, contain lower case, upper case, special character !@#$%^&*(),.?:{ }|<>, number
            Regex regex = new Regex(@"^(?=.*[a-z])(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*(),.?:{ }|<>]).{10,}$");
            Match match = regex.Match(PasswordNew);

            if (match.Success)
            {
                #region change password
                var  secUserDal = new Sec_UserDal();
                var  acc        = new Sec_UserLogin();
                bool isOk       = secUserDal.DoLoginAll(m.Email, out acc);
                var  a          = Md5Utils.Encryption(m.Password);

                if (isOk == true)
                {
                    if (a != acc.Password)
                    {
                        Mess.IsSuccess = false;
                        Mess.Message   = AppRes.ComfirmPasswordOld;
                        return(Json(new { result = Mess }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        var MD5Passworld = Md5Utils.Encryption(PasswordNew);
                        var result       = secUserDal.SavePassword(acc, MD5Passworld);
                        if (result.IsSuccess == true)
                        {
                            Mess.IsSuccess = true;
                            Mess.Message   = AppRes.SuccessPassword;
                            FormsAuthentication.SignOut();
                            //Clear session
                            var current = System.Web.HttpContext.Current;
                            current.Session.Clear();
                            current.Session.Abandon();
                            //Clears out Session
                            current.Response.Cookies.Clear();
                            // clear authentication cookie
                            current.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
                            current.Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
                            HttpCookie cookie = current.Request.Cookies[FormsAuthentication.FormsCookieName];
                            new Helper.Security().Logout(System.Web.HttpContext.Current);
                            if (cookie != null)
                            {
                                cookie.Expires = DateTime.Now.AddDays(-1);
                                current.Response.Cookies.Add(cookie);
                            }
                            return(Json(new { result = Mess }, JsonRequestBehavior.AllowGet));
                            //return RedirectToAction("Login", "Authentication");
                        }
                        else
                        {
                            Mess.IsSuccess = false;
                            Mess.Message   = AppRes.ErrorSavePassworld;
                            return(Json(new { result = Mess }, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                else
                {
                    Mess.IsSuccess = false;
                    Mess.Message   = AppRes.ErrorSavePassworld;
                    return(Json(new { result = Mess }, JsonRequestBehavior.AllowGet));
                }
                #endregion
            }
            else
            {
                Mess.IsSuccess = false;
                Mess.Message   = AppRes.PasswordPolicy;
                return(Json(new { result = Mess }, JsonRequestBehavior.AllowGet));
            }
        }
示例#21
0
        public bool StartClient(ClientBasicInfo basicInfo, DownloadFileInfo dlInfo, ClientLinkInfo clInfo,
                                string localSaveFolderPath, string tempFilesDir)
        {
            if (basicInfo == null || dlInfo == null || clInfo == null ||
                string.IsNullOrEmpty(localSaveFolderPath) || string.IsNullOrEmpty(tempFilesDir))
            {
                return(false);
            }
            if (!Directory.Exists(localSaveFolderPath))
            {
                Directory.CreateDirectory(localSaveFolderPath);
            }
            if (!Directory.Exists(tempFilesDir))
            {
                Directory.CreateDirectory(tempFilesDir);
            }
            else
            {
                DirectoryInfo di = new DirectoryInfo(tempFilesDir);
                di.Delete(true);
                Directory.CreateDirectory(tempFilesDir);
            }


            var updateFileName = $"{basicInfo.ProductName}_{basicInfo.RevitVersion}_{basicInfo.CurrentProductVersion}_{dlInfo.LatestProductVersion}";

            _updateFileName = updateFileName;

            var localSavePath         = Path.Combine(localSaveFolderPath, $"{updateFileName}.zip");
            var downloadChannelsCount = DownloadSetting.DownloadChannelsCount;

            _downloadChannelsCount = downloadChannelsCount;

            try
            {
                IPAddress  ipAddress = IPAddress.Parse(clInfo.IpString);
                IPEndPoint remoteEp  = new IPEndPoint(ipAddress, clInfo.Port);

                int  packetCount = downloadChannelsCount;
                long packetSize  = dlInfo.DownloadFileTotalSize / packetCount;
                _packSize = packetSize;


                var tasks = new Task[packetCount];
                for (int index = 0; index < packetCount; index++)
                {
                    int packetNumber = index;
                    var task         = new Task(() =>
                    {
                        Socket client   = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        ComObject state = new ComObject {
                            WorkSocket = client, PacketNumber = packetNumber
                        };
                        client.BeginConnect(remoteEp, ConnectCallback, state);
                    });
                    tasks[packetNumber] = task;
                    task.Start();
                }
                Task.WaitAll(tasks);
                ReceiveDone.WaitOne();


                _isPacketsComplete = CheckPackets(TempReceivePacketDict, _downloadChannelsCount);
                CloseSockets(TempReceivePacketDict);
                if (_isPacketsComplete)
                {
                    GenerateTempFiles(ResultPacketDict, downloadChannelsCount, tempFilesDir);
                    FileUtils.CombineTempFiles(localSavePath, tempFilesDir);
                    return(Md5Utils.IsMd5Equal(dlInfo.DownloadFileMd5, Md5Utils.GetFileMd5(localSavePath)));
                }
                return(false);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
示例#22
0
    public void GetTokenId(string username, string hash, long sendTime)
    {
        HttpContext.Current.Response.ContentType = "application/json;charset=utf-8";
        var      jsonCallBackFunName = HttpContext.Current.Request.Params["jsoncallback"].ToString();
        TimeSpan ts  = DateTime.Now - DateTime.Parse("1970-1-1");
        var      now = ts.TotalMilliseconds;   //系统当前时间,毫秒数

        if (Math.Abs(sendTime - now) > 300000) //请求时间超时,超过5分钟
        {
            HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "请求超时"));
            return;
        }

        //获取用户信息
        MySqlCommand sqlcom = new MySqlCommand
        {
            CommandText = "select * from sys_employee where user_login = @user_login and emp_isdeleted=0"
        };

        MySqlParameter[] commandParameters = new MySqlParameter[] {
            new MySqlParameter("@user_login", username)
        };
        try
        {
            var userInfor = MySqlHelper.GetDataSet(MySqlHelper.Conn, CommandType.Text, sqlcom.CommandText, commandParameters).Tables[0].DefaultView;
            if (userInfor != null && userInfor.Table.Rows.Count > 0)//存在用户
            {
                var hashStr = userInfor.Table.Rows[0]["user_login"].ToString() + userInfor.Table.Rows[0]["user_pwd"].ToString() + sendTime;
                var x       = hash;
                var y       = Md5Utils.Md5Encrypt32(hashStr);
                if (hash.Equals(Md5Utils.Md5Encrypt32(hashStr)))//如果hash值正确
                {
                    var tokenId         = Guid.NewGuid().ToString();
                    var tokenExpireTime = sendTime + 7200000;//Token过期时间,2个小时
                    sqlcom = new MySqlCommand
                    {
                        CommandText = "insert into token(tokenId,tokenUserId,tokenCreateTime,tokenExpireTime,createTime) values(@tokenId,@tokenUserId,@tokenCreateTime,@tokenExpireTime,now())"
                    };
                    commandParameters = new MySqlParameter[] {
                        new MySqlParameter("@tokenId", tokenId),
                        new MySqlParameter("@tokenUserId", username),
                        new MySqlParameter("@tokenCreateTime", sendTime),
                        new MySqlParameter("@tokenExpireTime", tokenExpireTime)
                    };
                    try
                    {
                        var rowNums = MySqlHelper.ExecuteNonQuery(MySqlHelper.Conn, CommandType.Text, sqlcom.CommandText, commandParameters); //将Token记录插入数据库
                        if (rowNums == 1)                                                                                                     //插入成功
                        {
                            HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(1, tokenId));
                            return;
                        }
                        else//插入失败
                        {
                            HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "写入失败"));
                            return;
                        }
                    }
                    catch (Exception e)
                    {
                        HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "系统异常"));
                        DLog.w("系统异常:" + e.Message);
                        return;
                    }
                }
                else//如果不正确
                {
                    HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "hash值错误"));
                    DLog.w("Token.cs->GetTokenId()->hash值错误");
                    return;
                }
            }
            else//用户不存在
            {
                HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "用户不存在"));
                return;
            }
        }
        catch (Exception e)
        {
            HttpContext.Current.Response.Write(jsonCallBackFunName + Common.GetResultJson(0, "系统异常"));
            DLog.w("系统异常:" + e.Message);
            return;
        }
    }
示例#23
0
        public void FileMd5Test()
        {
            var ret = Md5Utils.Md5Base64("0123456789");

            Assert.AreEqual("eB5eJF1ptWaXm4bijSPyxw==", ret);
        }
示例#24
0
        protected override void Seed(Cappuccino.DAL.EfDbContext context)
        {
            #region 用户数据
            string salt         = VerifyCodeUtils.CreateVerifyCode(5);
            string passwordHash = Md5Utils.EncryptTo32(salt + "123456");
            var    sysUsers     = new List <SysUser>
            {
                new SysUser {
                    UserName = "******", NickName = "超级管理员", HeadIcon = "/Content/admin/images/avatar.jpg", PasswordSalt = salt, PasswordHash = passwordHash,
                    Email    = "*****@*****.**", EnabledMark = (int)EnabledMarkEnum.Valid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysUser {
                    UserName = "******", NickName = "系统管理员", HeadIcon = "/Content/admin/images/avatar.jpg", PasswordSalt = salt, PasswordHash = passwordHash,
                    Email    = "*****@*****.**", EnabledMark = (int)EnabledMarkEnum.Invalid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysUser {
                    UserName = "******", NickName = "普通用户", HeadIcon = "/Content/admin/images/avatar.jpg", PasswordSalt = salt, PasswordHash = passwordHash,
                    Email    = "*****@*****.**", EnabledMark = (int)EnabledMarkEnum.Invalid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysUser {
                    UserName = "******", NickName = "测试用户", HeadIcon = "/Content/admin/images/avatar.jpg", PasswordSalt = salt, PasswordHash = passwordHash,
                    Email    = "*****@*****.**", EnabledMark = (int)EnabledMarkEnum.Invalid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
            };
            sysUsers.ForEach(s => context.Set <SysUser>().Add(s));
            context.SaveChanges();
            #endregion

            #region 角色数据
            var sysRoles = new List <SysRole>
            {
                new SysRole {
                    Name = "超级管理员", Code = "Administrator", EnabledMark = (int)EnabledMarkEnum.Valid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysRole {
                    Name = "系统管理员", Code = "system", EnabledMark = (int)EnabledMarkEnum.Invalid, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysRole {
                    Name = "普通用户", Code = "user", EnabledMark = (int)EnabledMarkEnum.Invalid, Remark = "只有查看页面的权限", CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysRole {
                    Name = "测试用户", Code = "test", EnabledMark = (int)EnabledMarkEnum.Invalid, Remark = "用来测试的", CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
            };
            sysRoles.ForEach(s => context.Set <SysRole>().Add(s));
            context.SaveChanges();
            #endregion

            #region 用户角色数据
            var adminUser = context.Set <SysUser>().Single(s => s.UserName == "admin");
            var adminRole = context.Set <SysRole>().Single(s => s.Code == "Administrator");
            adminUser.SysRoles.Add(adminRole);
            var systemUser = context.Set <SysUser>().Single(s => s.UserName == "system");
            var systemRole = context.Set <SysRole>().Single(s => s.Code == "system");
            systemUser.SysRoles.Add(systemRole);
            var user     = context.Set <SysUser>().Single(s => s.UserName == "user");
            var userRole = context.Set <SysRole>().Single(s => s.Code == "user");
            user.SysRoles.Add(userRole);
            var testUser = context.Set <SysUser>().Single(s => s.UserName == "test");
            var testRole = context.Set <SysRole>().Single(s => s.Code == "test");
            testUser.SysRoles.Add(testRole);
            context.SaveChanges();
            #endregion

            #region 权限管理
            //目录
            var sysActionsByCatalog = new List <SysAction>
            {
                new SysAction {
                    Name          = "系统管理", Code = "system", ParentId = 0, Type = 0, SortCode = 1,
                    SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-set-fill"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                }
            };
            sysActionsByCatalog.ForEach(s => context.Set <SysAction>().Add(s));
            context.SaveChanges();

            //菜单
            var systemMenu       = context.Set <SysAction>().Single(s => s.Code == "system");
            var sysActionByMenus = new List <SysAction>
            {
                new SysAction {
                    Id = 2, Name = "用户管理", Code = "system.user.list", ParentId = systemMenu.Id, Type = 0, SortCode = 1
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry", Url = "/System/SysUser"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Id = 3, Name = "角色管理", Code = "system.role.list", ParentId = systemMenu.Id, Type = 0, SortCode = 2
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry", Url = "/System/SysRole"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Id = 4, Name = "权限管理", Code = "system.action.list", ParentId = systemMenu.Id, Type = 0, SortCode = 3
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry", Url = "/System/SysAction"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Id = 5, Name = "数据字典", Code = "system.dict.list", ParentId = systemMenu.Id, Type = 0, SortCode = 4
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry", Url = "/System/SysDict"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Id = 6, Name = "日志管理", Code = "system.log", ParentId = systemMenu.Id, Type = 0, SortCode = 5
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = systemMenu.Id, UpdateUserId = 1
                },
            };
            sysActionByMenus.ForEach(s => context.Set <SysAction>().Add(s));
            context.SaveChanges();

            //子级菜单
            var systemMenuSystemLog       = context.Set <SysAction>().Single(s => s.Code == "system.log");
            var sysActionByMenuSystemLogs = new List <SysAction>
            {
                new SysAction {
                    Id = 7, Name = "登录日志", Code = "system.log.logon", ParentId = systemMenuSystemLog.Id, Type = 0, SortCode = 6
                    , SysActionMenu = new SysActionMenu {
                        Icon = "layui-icon-face-cry", Url = "/System/SysLogLogon"
                    }
                    , CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
            };
            sysActionByMenuSystemLogs.ForEach(s => context.Set <SysAction>().Add(s));
            context.SaveChanges();

            //按钮
            var systemMenuSystemUser     = context.Set <SysAction>().Single(s => s.Code == "system.user.list");
            var systemMenuSystemRole     = context.Set <SysAction>().Single(s => s.Code == "system.role.list");
            var systemMenuSystemAction   = context.Set <SysAction>().Single(s => s.Code == "system.action.list");
            var systemMenuSystemDict     = context.Set <SysAction>().Single(s => s.Code == "system.dict.list");
            var systemMenuSystemLogLogon = context.Set <SysAction>().Single(s => s.Code == "system.log.logon");
            var sysActionByButton        = new List <SysAction>
            {
                new SysAction {
                    Name            = "新增", Code = "system.user.create", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 1,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "create", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-primary pear-btn-md", ButtonIcon = "layui-icon-add-1"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "编辑", Code = "system.user.edit", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 2,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "edit", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-primary pear-btn-sm", ButtonIcon = "layui-icon-edit"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "删除", Code = "system.user.delete", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 3,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "delete", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-danger pear-btn-sm", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "批量删除", Code = "system.user.batchDel", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 4,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "batchDel", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-danger pear-btn-md", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "分配权限", Code = "system.user.assign", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 5,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "assign", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-warming pear-btn-sm", ButtonIcon = "layui-icon-vercode"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "重置密码", Code = "system.user.initPwd", ParentId = systemMenuSystemUser.Id, Type = ActionTypeEnum.Button, SortCode = 6,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "initPwd", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-warming pear-btn-sm", ButtonIcon = "layui-icon-refresh"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },

                new SysAction {
                    Name            = "新增", Code = "system.role.create", ParentId = systemMenuSystemRole.Id, Type = ActionTypeEnum.Button, SortCode = 1,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "create", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-primary pear-btn-md", ButtonIcon = "layui-icon-add-1"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "编辑", Code = "system.role.edit", ParentId = systemMenuSystemRole.Id, Type = ActionTypeEnum.Button, SortCode = 2,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "edit", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-primary pear-btn-sm", ButtonIcon = "layui-icon-edit"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "删除", Code = "system.role.delete", ParentId = systemMenuSystemRole.Id, Type = ActionTypeEnum.Button, SortCode = 3,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "delete", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-danger pear-btn-sm", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "批量删除", Code = "system.role.batchDel", ParentId = systemMenuSystemRole.Id, Type = ActionTypeEnum.Button, SortCode = 4,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "batchDel", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-danger pear-btn-md", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "分配权限", Code = "system.role.assign", ParentId = systemMenuSystemRole.Id, Type = ActionTypeEnum.Button, SortCode = 5,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "assign", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-warming pear-btn-sm", ButtonIcon = "layui-icon-vercode"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },

                new SysAction {
                    Name            = "新增", Code = "system.action.create", ParentId = systemMenuSystemAction.Id, Type = ActionTypeEnum.Button, SortCode = 1,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "create", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-primary pear-btn-md", ButtonIcon = "layui-icon-add-1"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "编辑", Code = "system.action.edit", ParentId = systemMenuSystemAction.Id, Type = ActionTypeEnum.Button, SortCode = 2,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "edit", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-primary pear-btn-sm", ButtonIcon = "layui-icon-edit"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "删除", Code = "system.action.delete", ParentId = systemMenuSystemAction.Id, Type = ActionTypeEnum.Button, SortCode = 3,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "delete", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-danger pear-btn-sm", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "批量删除", Code = "system.action.batchDel", ParentId = systemMenuSystemAction.Id, Type = ActionTypeEnum.Button, SortCode = 4,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "batchDel", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-danger pear-btn-md", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },

                new SysAction {
                    Name            = "新增", Code = "system.dict.create", ParentId = systemMenuSystemDict.Id, Type = ActionTypeEnum.Button, SortCode = 1,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "create", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-primary pear-btn-md", ButtonIcon = "layui-icon-add-1"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "编辑", Code = "system.dict.edit", ParentId = systemMenuSystemDict.Id, Type = ActionTypeEnum.Button, SortCode = 2,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "edit", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-primary pear-btn-sm", ButtonIcon = "layui-icon-edit"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "删除", Code = "system.dict.delete", ParentId = systemMenuSystemDict.Id, Type = ActionTypeEnum.Button, SortCode = 3,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "delete", Location = PositionEnum.FormInside, ButtonClass = "pear-btn pear-btn-danger pear-btn-sm", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysAction {
                    Name            = "批量删除", Code = "system.dict.batchDel", ParentId = systemMenuSystemDict.Id, Type = ActionTypeEnum.Button, SortCode = 4,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "batchDel", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-danger pear-btn-md", ButtonIcon = "layui-icon-delete"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },

                new SysAction {
                    Id = 26, Name = "导出", Code = "system.log.logon.export", ParentId = systemMenuSystemLogLogon.Id, Type = ActionTypeEnum.Button, SortCode = 1,
                    SysActionButton = new SysActionButton {
                        ButtonCode = "export", Location = PositionEnum.FormRightTop, ButtonClass = "pear-btn pear-btn-primary pear-btn-md", ButtonIcon = "layui-icon-export"
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
            };

            sysActionByButton.ForEach(s => context.Set <SysAction>().Add(s));
            context.SaveChanges();
            #endregion

            #region 分配权限
            //超级管理员
            adminRole = context.Set <SysRole>().Single(s => s.Code == "Administrator");
            var adminAction = context.Set <SysAction>().ToList();
            adminAction.ForEach(x => adminRole.SysActions.Add(x));
            //普通用户
            userRole    = context.Set <SysRole>().Single(s => s.Code == "user");
            adminAction = context.Set <SysAction>().Where(x => x.Type == ActionTypeEnum.Menu).ToList();
            adminAction.ForEach(x => adminRole.SysActions.Add(x));
            context.SaveChanges();
            #endregion

            #region 数据字典
            var sysDictTypes = new List <SysDictType>
            {
                new SysDictType {
                    Name = "机构类型", Code = "OrganizeCategory", SortCode = 1, SysDicts = new List <SysDict> {
                        new SysDict {
                            Name = "公司", Code = "Company", SortCode = 1, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                        },
                        new SysDict {
                            Name = "部门", Code = "Department", SortCode = 2, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                        },
                        new SysDict {
                            Name = "小组", Code = "WorkGroup", SortCode = 3, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                        }
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
                new SysDictType {
                    Name = "性别", Code = "Sex", SortCode = 2, SysDicts = new List <SysDict> {
                        new SysDict {
                            Name = "男", Code = "Male", SortCode = 1, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                        },
                        new SysDict {
                            Name = "女", Code = "Female", SortCode = 2, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                        }
                    },
                    CreateTime = DateTime.Now, UpdateTime = DateTime.Now, CreateUserId = 1, UpdateUserId = 1
                },
            };
            sysDictTypes.ForEach(s => context.Set <SysDictType>().Add(s));
            context.SaveChanges();
            #endregion
        }