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); }
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")); }
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); }
/// <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); }