public static string GenderString(this char gender) { Debug.Assert(OGender.CheckGender(gender), string.Format("Not valid gender: {0}", gender)); var maleString = MultiLanguageStrings.GetString(Ressource.PersonUserControl, "sexM.Text"); switch (gender) { case OGender.Male: return(maleString); case OGender.Female: return(MultiLanguageStrings.GetString(Ressource.PersonUserControl, "sexF.Text")); default: return(maleString); } }
/// <summary> /// Save selected user /// </summary> /// <param name="pUser">User to save</param> /// <param name="saveSecret">Option to save user password, default false</param> /// <returns>A struct contains, if necessary, errors occurs</returns> public UserErrors SaveUser(User pUser, bool saveSecret = false) { UserErrors userErrors = new UserErrors(); if (pUser.UserName == null) { userErrors.FindError = true; userErrors.LoginError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Login_Empty.Text"); } var passwordValidator = new Regex(@"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{10,}$"); if (!passwordValidator.IsMatch(pUser.Password)) { userErrors.FindError = true; userErrors.PasswordError = true; userErrors.ResultMessage += "\n - Password must contain " + "\n• At least one upper case " + "\n• At least one lower case " + "\n• At least one digit " + "\n• At least one special character " + "\n• Minimum 8 in length"; } if (pUser.Password == null) { userErrors.FindError = true; userErrors.PasswordError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Password_Empty.Text"); } if (pUser.UserRole == null) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.UserRole.Id < 1) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.FirstName == null) { userErrors.FindError = true; userErrors.FirstNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_LastName_Empty.Text"); } if (pUser.LastName == null) { userErrors.FindError = true; userErrors.LastNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_FirstName_Empty.Text"); } if (pUser.Mail == null) { userErrors.FindError = true; userErrors.MailError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Mail_Empty.Text"); } if (String.IsNullOrEmpty(pUser.Secret.Question)) { userErrors.FindError = true; userErrors.SecretQuestionError = true; userErrors.ResultMessage += "\n - " + "Screst question is empty"; } if (String.IsNullOrEmpty(pUser.Secret.Answer)) { userErrors.FindError = true; userErrors.SecretQuestionAnswerError = true; userErrors.ResultMessage += "\n - " + "Screst question answer is empty"; } Debug.Assert(OGender.CheckGender(pUser.Sex), string.Format("Non valid gender character is given for user: {0}", pUser.Name)); if (userErrors.FindError) { return(userErrors); } if (pUser.Id == 0) { if (Find(pUser.UserName, pUser.Password) != null) { userErrors.FindError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Save_AlreadyExist.Text"); } else { _userManager.AddUser(pUser); if (_users != null) { _users.Add(pUser); } userErrors.ResultMessage = MultiLanguageStrings.GetString(Ressource.StringRes, "User_Save_OK.Text"); } } else { _userManager.UpdateUser(pUser, saveSecret); if (_users != null) { _users.Remove(_users.Where(u => u.UserName == pUser.UserName).FirstOrDefault()); _users.Add(pUser); } userErrors.ResultMessage = MultiLanguageStrings.GetString(Ressource.StringRes, "User_Update_OK.Text"); } return(userErrors); }
/// <summary> /// Save selected user /// </summary> /// <param name="pUser"></param> /// <returns>A struct contains, if necessary, errors occurs</returns> public UserErrors SaveUser(User pUser) { UserErrors userErrors = new UserErrors(); if (pUser.UserName == null) { userErrors.FindError = true; userErrors.LoginError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Login_Empty.Text"); } if (pUser.Password == null) { userErrors.FindError = true; userErrors.PasswordError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Password_Empty.Text"); } if (pUser.UserRole == null) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.UserRole.Id < 1) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.FirstName == null) { userErrors.FindError = true; userErrors.FirstNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_LastName_Empty.Text"); } if (pUser.LastName == null) { userErrors.FindError = true; userErrors.LastNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_FirstName_Empty.Text"); } if (pUser.Mail == null) { userErrors.FindError = true; userErrors.MailError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Mail_Empty.Text"); } Debug.Assert(OGender.CheckGender(pUser.Sex), string.Format("Non valif geder character is given for user: {0}", pUser.Name)); if (userErrors.FindError) { return(userErrors); } if (pUser.Id == 0) { if (Find(pUser.UserName, pUser.Password) != null) { userErrors.FindError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Save_AlreadyExist.Text"); } else { _userManager.AddUser(pUser); if (_users != null) { _users.Add(pUser); } userErrors.ResultMessage = MultiLanguageStrings.GetString(Ressource.StringRes, "User_Save_OK.Text"); } } else { _userManager.UpdateUser(pUser); userErrors.ResultMessage = MultiLanguageStrings.GetString(Ressource.StringRes, "User_Update_OK.Text"); } return(userErrors); }
/// <summary> /// Save selected user /// </summary> /// <param name="pUser"></param> /// <returns>A struct contains, if necessary, errors occurs</returns> public UserErrors SaveUser(User pUser) { var userErrors = new UserErrors(); if (pUser.UserName == null) { userErrors.FindError = true; userErrors.LoginError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Login_Empty.Text"); } if (pUser.Password == null) { userErrors.FindError = true; userErrors.PasswordError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Password_Empty.Text"); } if (pUser.UserRole == null) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.UserRole.Id < 1) { userErrors.FindError = true; userErrors.RoleError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Role_Empty.Text"); } if (pUser.FirstName == null) { userErrors.FindError = true; userErrors.FirstNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_LastName_Empty.Text"); } if (pUser.LastName == null) { userErrors.FindError = true; userErrors.LastNameError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_FirstName_Empty.Text"); } if (pUser.Mail == null) { userErrors.FindError = true; userErrors.MailError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Mail_Empty.Text"); } Debug.Assert(OGender.CheckGender(pUser.Sex), string.Format("Non valif geder character is given for user: {0}", pUser.Name)); if (pUser.Id == 0 && Find(pUser.UserName, pUser.Password) != null) { userErrors.FindError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Save_AlreadyExist.Text"); } if (!string.IsNullOrEmpty(pUser.Password) && (pUser.Password.Length < 4 || pUser.Password.Length > 30)) { userErrors.FindError = true; userErrors.PasswordError = true; userErrors.ResultMessage += "\n - " + MultiLanguageStrings.GetString(Ressource.StringRes, "User_Password_Short_Long.Text"); } return(userErrors.FindError ? userErrors : SaveUserInternal(pUser)); }