public bool UpData(IEnumerable <SchoolAdministrator> datas, ISchoolAdministratorDal dal)
        {
            if (datas == null || dal == null)
            {
                return(false);
            }

            bool updateIsFun = true;

            try
            {
                foreach (var data in datas)
                {
                    if (data == null)
                    {
                        continue;
                    }
                    var  entity = dal.GetEntity(data.AdministratorAccount); entity.CreateAdminitratorDetialDatas.IsFreeze = data.CreateAdminitratorDetialDatas.IsFreeze;
                    bool isUp   = dal.Update(entity);
                }
            }
            catch (Exception e)
            {
                updateIsFun = false;
            }
            return(updateIsFun);
        }
        public bool Validate(LogInModel model, ISchoolAdministratorDal schooldal = null, IGenerUserDal genUserdal = null)
        {
            bool IsLog                   = true;
            var  GetEntitypasswrod       = "";
            var  sha256Password          = "";
            ICreateSha256Passwrod sha256 = new AdministratorRegisterBll();

            sha256Password = sha256.CreateSha256Passsword(model.Password);
            if (schooldal == null)//如果schoolDal==null说明我们正在使用普通用户登录
            {
                var entity = genUserdal.GetEntity(model.Account);
                if (entity != null)
                {
                    GetEntitypasswrod = entity.Password;
                }
            }
            else
            {
                var entity = schooldal.GetEntity(model.Account);
                if (entity != null)
                {
                    GetEntitypasswrod = entity.AdministratorPassword;
                }
            }
            if (sha256Password != GetEntitypasswrod)
            {
                IsLog = false;
            }
            return(IsLog);
        }
        public ActionResult AdministartorsRegisterDetials(CreateAdminitratorDetialData cre)
        {
            var or = Session["admin"] is SchoolAdministrator;
            SchoolAdministrator schoolAdministrator = null;

            if (or == false)
            {
                ModelState.AddModelError("RegisterError", "出现了意外的错误");
                return(View("AdministartorsRegister"));
            }
            schoolAdministrator = Session["admin"] as SchoolAdministrator;
            bool resiterIS = true;

            try
            {
                re.RegisterBll(schoolAdministrator, cre, dal);
                //用户注册后发送一个带QueryString的URL给校长
                var rightUrl = Url.Action("SeendValidateCode");
                var LeftUrl  = Request.Url.GetLeftPart(UriPartial.Authority) + rightUrl;
                try
                {
                    var entity = dal.GetEntity(schoolAdministrator.AdministratorAccount);
                    LeftUrl = LeftUrl + "?account=" + entity.AdministratorAccount + "&email=" + entity.CreateAdminitratorDetialDatas.Email;
                    ICreateEmail createEmail = new CreateEnail();
                    bool         Ok          = createEmail.SeendEmail(LeftUrl, entity.CreateAdminitratorDetialDatas.Email, entity.CreateAdminitratorDetialDatas.Message, entity.AdministratorAccount, entity.CreateAdminitratorDetialDatas.AdministratorAuthority);
                    if (!Ok)
                    {
                        throw new ArgumentException("邮件发送失败");
                    }
                }
                catch (Exception e)
                {
                    ErrorDatabase error = new ErrorDatabase()
                    {
                        DateTime     = DateTime.Now,
                        ErrorMessage = e.StackTrace.ToString()
                    };
                    errorDal.AddEntity(error);
                    resiterIS = false;
                    ModelState.AddModelError("RegisterError", "验证功能暂时失败请您后续登陆网站发送验证");
                }
            }
            catch (Exception e)
            {
                ErrorDatabase error = new ErrorDatabase()
                {
                    DateTime     = DateTime.Now,
                    ErrorMessage = e.StackTrace.ToString()
                };
                errorDal.AddEntity(error);
                resiterIS = false;
                ModelState.AddModelError("RegisterError", "您输入的邮箱已被占用");
            }
            if (resiterIS)
            {
                return(Content("完成"));
            }
            return(View("AdministartorsRegister"));
        }
        /// <summary>
        /// 检查数据库中是否存在该账户且邮箱与其绑定
        /// </summary>
        /// <param name="account"></param>
        /// <param name="email"></param>
        /// <param name="dal"></param>
        /// <returns></returns>
        public SchoolAdministrator UnCheck(string account, string email, ISchoolAdministratorDal dal)
        {
            var entity = dal.GetEntity(account);

            if (entity == null)
            {
                return(null);
            }
            if (entity.CreateAdminitratorDetialDatas.Email == email)
            {
                return(entity);
            }
            return(null);
        }
        public bool ValidateAccount(SchoolAdministrator administrator, ISchoolAdministratorDal dal)
        {
            bool IsLog         = true;
            bool createdSha256 = true;

            try
            {
                var entity = dal.GetEntity(administrator.AdministratorAccount);
                ICreateSha256Passwrod sha256 = new AdministratorRegisterBll();
                try
                {
                    var sha256Password = sha256.CreateSha256Passsword(administrator.AdministratorPassword);
                    if (sha256Password != entity.AdministratorPassword)
                    {
                        IsLog = false;
                    }
                }
                catch (Exception e)
                {
                    throw  new ArgumentException("sha256创建失败");
                    createdSha256 = false;
                }
            }
            catch (Exception e)
            {
                if (createdSha256)
                {
                    throw new NullReferenceException("不存在该账户");
                }
                else
                {
                    throw new ArgumentException(e.Message);
                }
            }
            return(IsLog);
        }