private static List <IValidationMessage> IsCurrency(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            var ValidCurrency = true;

            var IsDigit            = Regex.IsMatch(aFieldInfo.FieldValue, @"^-?\d+$");
            var IsDigitWithDecimal = Regex.IsMatch(aFieldInfo.FieldValue, @"^-?\d+\.\d{2}$");

            if (IsDigit == false && IsDigitWithDecimal == false)
            {
                ValidCurrency = false;

                goto FinalResults;
            }


FinalResults:

            if (ValidCurrency == false)
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }
            return(Messages);
        }
        private static List <IValidationMessage> IsUserName(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            var ValidUsername = true;

            if (string.IsNullOrWhiteSpace(aFieldInfo.FieldValue))
            {
                ValidUsername = false;

                goto FinalResults;
            }

            if (aFieldInfo.FieldValue.Trim().Length < 9 || aFieldInfo.FieldValue.Trim().Length > 15)
            {
                ValidUsername = false;

                goto FinalResults;
            }

            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^*[a-z]"))
            {
                ValidUsername = false;

                goto FinalResults;
            }

            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^*[A-Z]"))
            {
                ValidUsername = false;

                goto FinalResults;
            }

            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^*[0-9]"))
            {
                ValidUsername = false;

                goto FinalResults;
            }

FinalResults:

            if (ValidUsername == false)
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }

            return(Messages);
        }
        private static List <IValidationMessage> IsNumbersOnly(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();


            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^[0-9]*$"))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }

            return(Messages);
        }
        private static List <IValidationMessage> IsEMailAddress(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();


            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }

            return(Messages);
        }
        private static List <IValidationMessage> IsRequired(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            if (String.IsNullOrWhiteSpace(aFieldInfo.FieldValue))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }
            ;

            return(Messages);
        }
        private static List <IValidationMessage> IsLengthMaximum(FieldInfoString aFieldInfo, int lengthMax, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            if (aFieldInfo.FieldValue?.Trim().Length > lengthMax)
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message
                                   .Replace("{FieldName}", aFieldInfo.FieldName)
                                   .Replace("{FieldLength}", lengthMax.ToString())
                    , FieldName = aFieldInfo.FieldName
                });
            }

            return(Messages);
        }
        private static List <IValidationMessage> IsDate(FieldInfoString aFieldInfo, string format, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            var enUS = new CultureInfo("en-US");

            DateTime TempDateTime;

            if (!DateTime.TryParseExact(aFieldInfo.FieldValue, format, enUS, DateTimeStyles.None, out TempDateTime))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }
            ;

            return(Messages);
        }
        private static List <IValidationMessage> IsPassword(FieldInfoString aFieldInfo, IRuleDetail aRuleDetail)
        {
            var Messages = new List <IValidationMessage>();

            if (string.IsNullOrWhiteSpace(aFieldInfo.FieldValue))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });

                goto FinalResults;
            }

            if (aFieldInfo.FieldValue.Trim().Length < 8)
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });

                goto FinalResults;
            }

            #region "Only alpha and numeric "
            if (!Regex.IsMatch(aFieldInfo.FieldValue, @"^[a-zA-Z0-9\s,]*$"))
            {
                Messages.Add(new ValidationMessage()
                {
                    ErrorMessage = aRuleDetail.Message.Replace("{FieldName}", aFieldInfo.FieldName),
                    FieldName    = aFieldInfo.FieldName
                });
            }
            #endregion

            FinalResults :  return(Messages);
        }