コード例 #1
0
 void LoadAppSettings()
 {
     LoginRememberMinutes      = ParseInt(prefix + "LoginRememberMinutes", 24 * 60);
     Administrators            = ParseList(prefix + "Administrators", new List <string>());
     PowerUsers                = ParseList(prefix + "PowerUsers", new List <string>());
     AllowUsersToResetPassword = ParseBool(prefix + "AllowUsersToResetPassword", false);
     AllowUsersToSignUp        = ParseBool(prefix + "AllowUsersToSignUp", false);
     AllowUsersToLogin         = ParseBool(prefix + "AllowUsersToLogin", false);
     RequiredFields            = ParseEnum <UserFieldName>(prefix + "RequiredFields", 0);
     OptionalFields            = ParseEnum <UserFieldName>(prefix + "OptionalFields", 0);
 }
コード例 #2
0
        /// <summary>
        /// Test user registration info.
        /// </summary>
        /// <param name="value">Validation parameters.</param>
        /// <returns>Results array for each parameter.</returns>
        public static ValidationField[] ValidateMemberRegistration(
            string firstName,
            string lastName,
            string email,
            string userName,
            string password,
            string birthday,
            string gender,
            bool?terms,
            bool?news,
            UserFieldName requiredFields = 0
            )
        {
            var results = new List <ValidationField>();
            var values  = new List <ValidationField>()
            {
                new ValidationField(UserFieldName.FirstName, firstName ?? ""),
                new ValidationField(UserFieldName.LastName, lastName ?? ""),
                new ValidationField(UserFieldName.Email, email ?? ""),
                new ValidationField(UserFieldName.UserName, userName ?? ""),
                new ValidationField(UserFieldName.Password, password ?? ""),
                new ValidationField(UserFieldName.Birthday, birthday ?? ""),
                new ValidationField(UserFieldName.Gender, gender ?? ""),
                new ValidationField(UserFieldName.Terms, terms),
                new ValidationField(UserFieldName.News, news),
            };
            var allValues = (UserFieldName[])Enum.GetValues(typeof(UserFieldName));

            if (requiredFields == 0)
            {
                requiredFields = (UserFieldName)allValues.Select(x => (int)x).Sum();
            }
            foreach (var item in allValues)
            {
                var description = ClassLibrary.ClassTools.EnumTools.GetDescription(item);
                if (requiredFields.HasFlag(item))
                {
                    var  field  = values.FirstOrDefault(x => x.Name == item);
                    bool isEmpy = field.Value is string
                                  ?string.IsNullOrEmpty((string)field.Value)
                                      : field.Value == null;

                    if (isEmpy)
                    {
                        results.Add(new ValidationField(item, field.Value, "<b>" + description + "</b> is required."));
                    }
                    else if (field.Value is string)
                    {
                        var value = (string)field.Value;
                        if (DisallowedNames.Contains(value))
                        {
                            results.Add(new ValidationField(item, value, "This <b>" + description + "</b> is not allowed."));
                        }
                        if ((item == UserFieldName.FirstName || item == UserFieldName.LastName) && Regex.Match(value, "[a-zA-Z]{1,20}").Value != value)
                        {
                            results.Add(new ValidationField(item, value, "<b>" + description + "</b> must be between 1-20 characters<br/> and contain only letters."));
                        }
                        if (item == UserFieldName.UserName)
                        {
                            if (Regex.Match(value, "[a-zA-Z0-9_]{3,20}").Value != value)
                            {
                                results.Add(new ValidationField(item, value, "<b>" + description + "</b> must be between 3-20 characters<br />and contain only letters or numbers."));
                            }
                            else if (User.GetUser(value) != null)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is already taken."));
                            }
                        }
                        if (item == UserFieldName.Email)
                        {
                            if (!EmailRegex.Match(email).Success)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is not valid."));
                            }
                            else if (User.GetUserByEmail(email) != null)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is already taken."));
                            }
                        }
                        if (item == UserFieldName.Password)
                        {
                            if (value.Length < 6)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " must be at least 6 characters."));
                            }
                            if (password == firstName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as First Name."));
                            }
                            if (password == lastName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as Last Name."));
                            }
                            if (password == userName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as User Name."));
                            }
                            if (password == email)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as Email."));
                            }
                            if (!string.IsNullOrEmpty(firstName) && value.Contains(firstName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain First Name."));
                            }
                            if (!string.IsNullOrEmpty(lastName) && value.Contains(lastName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain Last Name."));
                            }
                            if (!string.IsNullOrEmpty(userName) && value.Contains(userName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain User Name."));
                            }
                        }
                        if (item == UserFieldName.Birthday)
                        {
                            DateTime bd;
                            if (!DateTime.TryParse(birthday, out bd))
                            {
                                results.Add(new ValidationField(item, value, description + " is not valid."));
                            }
                        }
                        if (item == UserFieldName.Gender)
                        {
                            if (gender != "M" && gender != "F")
                            {
                                results.Add(new ValidationField(item, value, description + " is not valid."));
                            }
                        }
                    }
                    else
                    {
                        var bValue = (bool?)field.Value;
                        if (item == UserFieldName.Terms)
                        {
                            if (!bValue.Value)
                            {
                                results.Add(new ValidationField(item, bValue, "You must accept <b>" + description + "</b>."));
                            }
                        }
                    }
                }
            }
            return(results.ToArray());
        }
コード例 #3
0
ファイル: User.cs プロジェクト: cagrawal21/x360ce
        /// <summary>
        /// Test user registration info.
        /// </summary>
        /// <param name="value">Validation parameters.</param>
        /// <returns>Results array for each parameter.</returns>
        public static ValidationField[] ValidateMemberRegistration(
            string firstName,
            string lastName,
            string email,
            string userName,
            string password,
            string birthday,
            string gender,
            bool? terms,
            bool? news,
            UserFieldName requiredFields = 0
            )
        {
            var results = new List<ValidationField>();
            var values = new List<ValidationField>()
            {
                new ValidationField(UserFieldName.FirstName, firstName ?? ""),
                new ValidationField(UserFieldName.LastName,lastName ?? ""),
                new ValidationField(UserFieldName.Email, email ?? ""),
                new ValidationField(UserFieldName.UserName, userName ?? ""),
                new ValidationField(UserFieldName.Password, password ?? ""),
                new ValidationField(UserFieldName.Birthday, birthday ?? ""),
                new ValidationField(UserFieldName.Gender, gender ?? ""),
                new ValidationField(UserFieldName.Terms, terms),
                new ValidationField(UserFieldName.News, news),
            };
            var allValues = (UserFieldName[])Enum.GetValues(typeof(UserFieldName));
            if (requiredFields == 0)
            {
                requiredFields = (UserFieldName)allValues.Select(x => (int)x).Sum();
            }
            foreach (var item in allValues)
            {
                var description = ClassLibrary.ClassTools.EnumTools.GetDescription(item);
                if (requiredFields.HasFlag(item))
                {
                    var field = values.FirstOrDefault(x => x.Name == item);
                    bool isEmpy = field.Value is string
                        ? string.IsNullOrEmpty((string)field.Value)
                        : field.Value == null;
                    if (isEmpy)
                    {
                        results.Add(new ValidationField(item, field.Value, "<b>" + description + "</b> is required."));
                    }
                    else if (field.Value is string)
                    {
                        var value = (string)field.Value;
                        if (DisallowedNames.Contains(value))
                        {
                            results.Add(new ValidationField(item, value, "This <b>" + description + "</b> is not allowed."));
                        }
                        if ((item == UserFieldName.FirstName || item == UserFieldName.LastName) && Regex.Match(value, "[a-zA-Z]{1,20}").Value != value)
                        {
                            results.Add(new ValidationField(item, value, "<b>" + description + "</b> must be between 1-20 characters<br/> and contain only letters."));
                        }
                        if (item == UserFieldName.UserName)
                        {
                            if (Regex.Match(value, "[a-zA-Z0-9_]{3,20}").Value != value)
                            {
                                results.Add(new ValidationField(item, value, "<b>" + description + "</b> must be between 3-20 characters<br />and contain only letters or numbers."));
                            }
                            else if (GetUser(value) != null)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is already taken."));
                            }
                        }
                        if (item == UserFieldName.Email)
                        {
                            if (!EmailRegex.Match(email).Success)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is not valid."));
                            }
                            else if (GetUserByEmail(email) != null)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " is already taken."));
                            }
                        }
                        if (item == UserFieldName.Password)
                        {
                            if (value.Length < 6)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " must be at least 6 characters."));
                            }
                            if (password == firstName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as First Name."));
                            }
                            if (password == lastName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as Last Name."));
                            }
                            if (password == userName)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as User Name."));
                            }
                            if (password == email)
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't be same as Email."));
                            }
                            if (!string.IsNullOrEmpty(firstName) && value.Contains(firstName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain First Name."));
                            }
                            if (!string.IsNullOrEmpty(lastName) && value.Contains(lastName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain Last Name."));
                            }
                            if (!string.IsNullOrEmpty(userName) && value.Contains(userName))
                            {
                                results.Add(new ValidationField(item, value, "" + description + " can't contain User Name."));
                            }
                        }
                        if (item == UserFieldName.Birthday)
                        {
                            DateTime bd;
                            if (!DateTime.TryParse(birthday, out bd))
                            {
                                results.Add(new ValidationField(item, value, description + " is not valid."));
                            }

                        }
                        if (item == UserFieldName.Gender)
                        {
                            if (gender != "M" && gender != "F")
                            {
                                results.Add(new ValidationField(item, value, description + " is not valid."));
                            }
                        }
                    }
                    else
                    {
                        var bValue = (bool?)field.Value;
                        if (item == UserFieldName.Terms)
                        {
                            if (!bValue.Value)
                            {
                                results.Add(new ValidationField(item, bValue, "You must accept <b>" + description + "</b>."));
                            }
                        }
                    }
                }
            }
            return results.ToArray();
        }
コード例 #4
0
ファイル: ValidationField.cs プロジェクト: cagrawal21/x360ce
 public ValidationField(UserFieldName name, object value, string message = null)
 {
     Name = name;
     Value = value;
     Message = message;
 }
コード例 #5
0
 public ValidationField(UserFieldName name, object value, string message = null)
 {
     Name    = name;
     Value   = value;
     Message = message;
 }