C#C
C#3y ago
phattanuki

✅ Design pattern for a method feels incorrect

I have made a small CLI application that does a few things related to my job. The CLI downloads the latest software packages from a NuGet feed and organizes them into the applications target directory in a neat way.

The recent command that I've implemented was a clean-up one, where it would delete the different test versions of our tools, files an folders alike.
After spending some time a design bubbled-up in the main private method of the command.

Did I make a mistake here? Is this a design pattern that I should follow or should I refactor the code to something else? It feels like that this is "not clean", as one method is basically a pipeline of different methods, with exit conditions.

I welcome any advice on the topic.

        private static async Task RunCleanUp(EriManager configuration, string selectedTool) {
            List<Tool> loadedTools = LoadValidTools(configuration, selectedTool); //private helper method to load the valid tools from our local configuration, selectedTool can be "all" to load all valid tools
            if (loadedTools.Count == 0) return;

            LogManager.EnviromentMessage("Setting up environment for [bold]collecting folder structure[/]\n");

            List<(string Tool, DirectoryInfo Directories)>? directories = DirectoryManager.GenerateFolderListForRemoval(configuration, loadedTools); //private static class to generate folder that are matching to a tool type
            if (directories is null || directories.Count == 0) return;

            Tree ansiTree = GenerateTreeForDirectories(loadedTools, directories);
            //In the Table each column is one Tool, where each row is a folder to be deleted.

            if (ansiTree is null) return;
       
            AnsiConsole.WriteLine();
            AnsiConsole.Write(ansiTree);

            if (LogManager.ConfirmationMessage("Delete the requested folder(s)?")) await RemovalProcess(directories);
        }
Was this page helpful?