public void Generate(string @namespace, string name, SolutionSettings settings)
        {
            var folder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "result");

            if (Directory.Exists(folder))
            {
                Console.WriteLine($"Dropping existing directory {folder}{GeneratorHelper.NewLine}");
                Directory.Delete(folder, true);
            }

            Console.WriteLine($"Generating project in {folder}{GeneratorHelper.NewLine}");

            var nameSln = string.Join('.', new[] { @namespace, name }.Where(x => x != null));

            var projects = GenerateProjects(nameSln, folder, "src", settings);

            var file = ProjectsFile(projects);

            File.WriteAllText($"{folder}{GeneratorHelper.Separator}{nameSln}.sln", file);

            GeneratorHelper.CopyFile("./Resourse/LICENSE", $"{folder}/LICENSE");
            GeneratorHelper.CopyFile("./Resourse/README.md", $"{folder}/README.md");
            GeneratorHelper.CopyFile("./Resourse/.gitignore", $"{folder}/.gitignore");
            File.WriteAllText($"{folder}/coverage.bat", File.ReadAllText("./Resourse/coverage.bat").Replace("$namespace$", @namespace));

            foreach (var item in Directory.EnumerateFiles("./Resourse/shared", "*", SearchOption.AllDirectories))
            {
                var dest = $"{folder}/{Path.GetRelativePath("./Resourse/", item)}";
                Directory.CreateDirectory(Path.GetDirectoryName(dest));
                GeneratorHelper.CopyFile(item, dest);
                Console.WriteLine($"Generating project in {folder}");
            }

            foreach (var item in Directory.EnumerateFiles("./Resourse/lint", "*", SearchOption.AllDirectories))
            {
                var dest = $"{folder}/{Path.GetRelativePath("./Resourse/", item)}";
                Directory.CreateDirectory(Path.GetDirectoryName(dest));
                GeneratorHelper.CopyFile(item, dest);
            }
        }