Esempio n. 1
0
            private static ErrorDatabase GetClosestMatchingErrorDatabase(int rawFirmwareVersion, ErrorLogId errorLogId, string databaseRoot, out Tuple <int, IDictionary <int, int> > matchingMap)
            {
                matchingMap = null;
                ErrorDatabase errorDatabase = null;
                var           userFriendlyFirmwareVersion           = GetFirmwareVersionForResource(rawFirmwareVersion);
                int           closestFirmwareVersion                = -1;
                string        databaseTypeForClosestFirmwareVersion = null;

                foreach (var databaseType in ErrorDatabaseFileTypes.Keys.Where(t => IsDatabaseTypeSupported(t)))
                {
                    var closestFirmwareVersionMatch = GetClosestMatchForErrorDatabase(userFriendlyFirmwareVersion, databaseType, databaseRoot);
                    if (closestFirmwareVersionMatch > closestFirmwareVersion)
                    {
                        closestFirmwareVersion = closestFirmwareVersionMatch;
                        databaseTypeForClosestFirmwareVersion = databaseType;
                    }
                    if (closestFirmwareVersion == userFriendlyFirmwareVersion)
                    {
                        break;
                    }
                }
                if (closestFirmwareVersion > 0)
                {
                    // load this database and find best match
                    var databasePath = MakeFullyQualifiedVersionedDatabaseSourceName(closestFirmwareVersion, databaseRoot, databaseTypeForClosestFirmwareVersion);
                    errorDatabase = new ErrorDatabase(databasePath);
                    var errorMapFirmwareVersion = GetFirmwareVersionForLookup(rawFirmwareVersion);
                    matchingMap = errorDatabase.GetClosestMatchingErrorMap(errorLogId, errorMapFirmwareVersion);
                }
                return(errorDatabase);
            }
Esempio n. 2
0
        public ActionResult Index(StudentDetialData stuDetialData, StudentData stuData)
        {
            bool access = true;

            try
            {
                if (!ModelState.IsValid)
                {
                    return(View());
                }
                stuDetialData.StudentDatas = stuData;
                dal.AddEntity(stuDetialData);
            }
            catch (Exception e)
            {
                ErrorDatabase error = new ErrorDatabase()
                {
                    DateTime     = DateTime.Now,
                    ErrorMessage = e.Message
                };
                errorDal.AddEntity(error);
                access = false;
            }
            StringBuilder builder = new StringBuilder();

            if (access == true)
            {
                builder.Append("<script>alert('保存成功 准备跳转');");
                builder.Append("window.location= '../../Home/Index';</script>");
                return(Content(builder.ToString()));
            }
            ModelState.AddModelError("validate", "请检查您的身份证是否错误或以添加");
            return(View());
        }
        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"));
        }
Esempio n. 4
0
        private IDictionary <ErrorLogId, ErrorDatabase> GetErrorDatabases(int rawFirmwareVersion)
        {
            var errorDatabases = new Dictionary <ErrorLogId, ErrorDatabase>();

            foreach (var errorLogKind in ErrorLogEntries.Select(l => l.LogId).Distinct())
            {
                errorDatabases[errorLogKind] = ErrorDatabase.GetErrorDatabase(rawFirmwareVersion, errorLogKind);
            }
            return(errorDatabases);
        }
        public ActionResult SeendValidateCode(string account, string email)
        {
            //发送验证码给申请者并将验证码保存到数据库中
            //1.检查数据库中是否已存在该账户
            IUnCheckAccount unCheck = new AdministratorRegisterBll();
            var             entity  = unCheck.UnCheck(account, email, dal);

            if (entity == null)
            {
                return(Content("抱歉。关键字不正确!"));
            }

            bool Createdal = true;

            try
            {
                IRegisterValidateCodeDal codeDal = new RegisterAdministartorValidateCodeDal(ConfigurationManager.AppSettings["assembly"]);
                var count = codeDal.GetEntityForExpress(x => x.SchoolAdministrators.AdministratorAccount == account).Count();
                if (count > 0)
                {
                    return(Content("验证通道暂时关闭"));
                }
                var validateSeendBool = unCheck.CreateValidateSeendToEmail(entity, email, codeDal, dal);
                if (validateSeendBool == false)
                {
                    return(Content("邮件发送失败"));
                }
            }
            catch (Exception e)
            {
                ErrorDatabase error = new ErrorDatabase()
                {
                    DateTime     = DateTime.Now,
                    ErrorMessage = e.StackTrace.ToString()
                };
                errorDal.AddEntity(error);
                Createdal = false;
            }
            if (Createdal == false)
            {
                return(Content("程序出现了错误!抱歉"));
            }
            return(Content("验证码已发送"));
        }
        public bool CreateValidateSeendToEmail(SchoolAdministrator account, string email, IRegisterValidateCodeDal dal, ISchoolAdministratorDal scdal)
        {
            bool   CreateGuidIsTrue = true;
            string guid             = "";

            //创建验证码并发送使用全球唯一标识符
            try
            {
                guid = Guid.NewGuid().ToString();
                account.ValidateCodes = new RegisterAdministartorValidateCode()
                {
                    ValidateCode = guid
                };
                scdal.Update(account);
            }
            catch (Exception e)
            {
                IErrorDatabaseDal errorDal = new ErrorDatabaseDal(ConfigurationManager.AppSettings["assembly"]);
                ErrorDatabase     error    = new ErrorDatabase()
                {
                    DateTime     = DateTime.Now,
                    ErrorMessage = e.StackTrace.ToString()
                };
                errorDal.AddEntity(error);
                CreateGuidIsTrue = false;
            }

            if (CreateGuidIsTrue)
            {
                ICreateEmail cre     = new CreateEnail();
                var          seendOk = cre.SeendEmail(account.AdministratorAccount, email, guid);
                if (!seendOk)
                {
                    CreateGuidIsTrue = false;
                }
            }
            return(CreateGuidIsTrue);
        }
Esempio n. 7
0
            /// <summary>
            /// Gets the database best capable of providing meaningful error messages given a firmware version and error log identifier.
            /// </summary>
            /// <param name="rawFirmwareVersion">The raw firmware version for which an error log is to be parsed.</param>
            /// <param name="errorLogId">Which section of the error log is requested.</param>
            /// <param name="errorDatabaseFilesDirectory">Where to look for potential updated version of the error log.</param>
            /// <returns>An error database most likely to support error log parsing given the input parameters.</returns>
            internal static ErrorDatabase GetErrorDatabase(int rawFirmwareVersion, ErrorLogId errorLogId, string errorDatabaseFilesDirectory = null)
            {
                // First, check default map for exact match.
                ErrorDatabase matchingDatabase        = Default;
                var           errorMapFirmwareVersion = GetFirmwareVersionForLookup(rawFirmwareVersion);
                var           matchingMap             = Default.GetClosestMatchingErrorMap(errorLogId, errorMapFirmwareVersion);

                if (matchingMap.Item1 != errorMapFirmwareVersion)
                {
                    // Did not find exact match in default database. Next, check on disk in default location for a better match.
                    if (string.IsNullOrWhiteSpace(errorDatabaseFilesDirectory))
                    {
                        errorDatabaseFilesDirectory = Configuration.Instance.FirmwareUpdatesDirectory;
                    }
                    Tuple <int, IDictionary <int, int> > onDiskMatchingMap;
                    var onDiskDatabaseMatch = GetClosestMatchingErrorDatabase(rawFirmwareVersion, errorLogId, errorDatabaseFilesDirectory, out onDiskMatchingMap);
                    if (onDiskMatchingMap.Item1 > matchingMap.Item1)
                    {
                        matchingMap      = onDiskMatchingMap;
                        matchingDatabase = onDiskDatabaseMatch;
                    }

                    // Finally, check embedded resources for a better match.
                    if (matchingMap.Item1 != errorMapFirmwareVersion)
                    {
                        Tuple <int, IDictionary <int, int> > resourcesMatchingMap;
                        var resourcesDatabaseMatch = GetClosestMatchingErrorDatabase(rawFirmwareVersion, errorLogId, FirmwareRevisions.FirmwareUpdateResourcePrefix, out resourcesMatchingMap);
                        if (resourcesMatchingMap.Item1 > matchingMap.Item1)
                        {
                            matchingMap      = resourcesMatchingMap;
                            matchingDatabase = resourcesDatabaseMatch;
                        }
                    }
                }
                return(matchingDatabase);
            }