Exemple #1
0
 public static IConsoleAppValidator GetTsvAndIntervalFiles(this IConsoleAppValidator validator, string tsvFilesDirectory, List <string> intermediateFiles, List <string> intervalFiles, List <string> geneTsvFiles, ref string miscFiles)
 {
     if (!Directory.Exists(tsvFilesDirectory))
     {
         return(validator);
     }
     foreach (var file in Directory.GetFiles(tsvFilesDirectory))
     {
         if (!file.EndsWith(".tsv.gz"))
         {
             continue;
         }
         if (file.EndsWith(".interval.tsv.gz"))
         {
             intervalFiles.Add(file);
             continue;
         }
         if (file.EndsWith(".misc.tsv.gz"))
         {
             miscFiles = file;
             continue;
         }
         if (file.EndsWith(".gene.tsv.gz"))
         {
             geneTsvFiles.Add(file);
             continue;
         }
         intermediateFiles.Add(file);
     }
     return(validator);
 }
 public static IConsoleAppValidator Enable(this IConsoleAppValidator validator, bool condition, Action method)
 {
     if (condition)
     {
         method();
     }
     return(validator);
 }
Exemple #3
0
 public static IConsoleAppValidator CheckEachFilenameExists(this IConsoleAppValidator validator,
                                                            IEnumerable <string> filePaths, string description, string commandLineOption, bool isRequired = true)
 {
     foreach (string filePath in filePaths)
     {
         validator.CheckInputFilenameExists(filePath, description, commandLineOption, isRequired);
     }
     return(validator);
 }
 private static ExitCodes Execute(IConsoleAppValidator validator)
 {
     return(validator
            .DisableOutput(true)
            .ShowBanner("authors")
            .ShowHelpMenu("description", "example")
            .ShowErrors()
            .Execute(() => ExitCodes.Success));
 }
 public static IConsoleAppValidator CheckNonZero(this IConsoleAppValidator validator, int num, string description)
 {
     if (num == 0)
     {
         validator.Data.AddError(
             $"At least one {description} should be provided.",
             ExitCodes.MissingCommandLineOption);
     }
     return(validator);
 }
Exemple #6
0
        public static IConsoleAppValidator CheckOutputFilenameSuffix(this IConsoleAppValidator validator,
                                                                     string filePath, string fileSuffix, string description)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            if (!filePath.EndsWith(fileSuffix))
            {
                validator.Data.AddError($"The {description} file ({filePath}) does not end with a {fileSuffix}.", ExitCodes.BadArguments);
            }

            return(validator);
        }
Exemple #7
0
        public static IConsoleAppValidator HasRequiredParameter <T>(this IConsoleAppValidator validator,
                                                                    T parameterValue, string description, string commandLineOption)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            if (EqualityComparer <T> .Default.Equals(parameterValue, default))
            {
                validator.Data.AddError($"The {description} was not specified. Please use the {commandLineOption} parameter.",
                                        ExitCodes.MissingCommandLineOption);
            }

            return(validator);
        }
Exemple #8
0
        public static IConsoleAppValidator CheckDirectoryExists(this IConsoleAppValidator validator, string dirPath,
                                                                string description, string commandLineOption)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            if (string.IsNullOrEmpty(dirPath))
            {
                validator.Data.AddError(
                    $"The {description} directory was not specified. Please use the {commandLineOption} parameter.",
                    ExitCodes.MissingCommandLineOption);
            }
            else if (!Directory.Exists(dirPath))
            {
                validator.Data.AddError($"The {description} directory ({dirPath}) does not exist.", ExitCodes.PathNotFound);
            }

            return(validator);
        }
Exemple #9
0
        public static IConsoleAppValidator CheckInputFilenameExists(this IConsoleAppValidator validator,
                                                                    string filePath, string description, string commandLineOption, bool isRequired = true, string ignoreValue = null)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            if (string.IsNullOrEmpty(filePath) && isRequired)
            {
                validator.Data.AddError(
                    $"The {description} file was not specified. Please use the {commandLineOption} parameter.",
                    ExitCodes.MissingCommandLineOption);
            }
            else if (isRequired && (ignoreValue == null || filePath != ignoreValue) && !File.Exists(filePath) && !CheckUrlExist(filePath))
            {
                validator.Data.AddError($"The {description} file ({filePath}) does not exist.", ExitCodes.FileNotFound);
            }

            return(validator);
        }
Exemple #10
0
        public static IConsoleAppValidator HasRequiredDate(this IConsoleAppValidator validator, string date,
                                                           string description, string commandLineOption)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            validator.HasRequiredParameter(date, description, commandLineOption);
            if (string.IsNullOrEmpty(date))
            {
                return(validator);
            }

            if (!DateTime.TryParse(date, out _))
            {
                validator.Data.AddError($"The {description} was not specified as a date (YYYY-MM-dd). Please use the {commandLineOption} parameter.", ExitCodes.BadArguments);
            }

            return(validator);
        }
        /// <summary>
        /// checks if an input directory exists
        /// </summary>
        public static IConsoleAppValidator CheckEachDirectoryContainsFiles(this IConsoleAppValidator validator,
                                                                           IEnumerable <string> directories, string description, string commandLineOption, string searchPattern)
        {
            if (validator.SkipValidation)
            {
                return(validator);
            }

            foreach (string directoryPath in directories)
            {
                var files = Directory.Exists(directoryPath) ? Directory.GetFiles(directoryPath, searchPattern) : null;
                if (files != null && files.Length != 0)
                {
                    continue;
                }

                validator.Data.AddError(
                    $"The {description} directory ({directoryPath}) does not contain the required files ({searchPattern}). Please use the {commandLineOption} parameter.",
                    ExitCodes.FileNotFound);
            }

            return(validator);
        }