Example #1
0
        public void Validate()
        {
            //set defaults for null values
            Lang         = Lang ?? "cs";
            Authenticate = Authenticate ?? "none";
            CodeFilename = CodeFilename ?? (Lang == "cs"? "poco.cs": "poco.vb");
            NameCase     = NameCase ?? "none";


            if (Password != null && Password.StartsWith("@"))
            {
                var fname = Password.Substring(1);
                var text  = File.ReadAllText(fname);
                Password = GetToken(text);
            }
            if (Authenticate != null && !Regex.IsMatch(Authenticate?.ToLower(), "none|basic|token|oauth2", RegexOptions.IgnoreCase))
            {
                Errors.Add($"Authenticate '{ Authenticate}' isn't valid. It is set to 'none'.");//warning
                Authenticate = "none";
            }

            //validating Lang
            switch (Lang)
            {
            case "vb":
                CodeFilename = Path.ChangeExtension(CodeFilename, ".vb");
                break;

            case "cs":
                CodeFilename = Path.ChangeExtension(CodeFilename, ".cs");
                break;

            default:
                Errors.Add($"Invalid Language Option '{ Lang}'. It's set to 'cs'.");
                CodeFilename = Path.ChangeExtension(CodeFilename, ".cs");
                Lang         = "cs";
                break;
                //return -1;
            }
            //validate NameCase
            if (string.IsNullOrEmpty(NameCase))
            {
                Errors.Add($"NameCase '{ NameCase}' is empty. It is set to 'pas'.");//warning
                NameCase = "pas";
            }
            if (!Regex.IsMatch(NameCase.ToLower(), "cam|camel|none|pas", RegexOptions.IgnoreCase))
            {
                Errors.Add($"NameCase '{ NameCase}' isn't valid. It is set to 'pas'.");//warning
                NameCase = "pas";
            }

            //validate Attributes
            foreach (var attribute in Attributes.ToList())
            {
                if (attribute.Trim().StartsWith("["))
                {
                    continue;
                }
                if (!Regex.IsMatch(attribute.Trim().ToLower(), "key|req|tab|table|json|db|proto|dm|display|origin", RegexOptions.IgnoreCase))
                {
                    Errors.Add($"Attribute '{attribute}' isn't valid. It will be  droped.");//warning
                }
            }
        }