-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
63 lines (51 loc) · 2.05 KB
/
Copy pathProgram.cs
File metadata and controls
63 lines (51 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using ArchitectGenerator.Core;
using ArchitectGenerator.Services;
//program.cs
try
{
Console.WriteLine("🏗️ Architect Generator");
var solutionName = ConsolePrompter.PromptSolutionName();
if (solutionName is null)
{
Console.WriteLine("❌ Geçersiz isim");
if (!Console.IsInputRedirected) Console.ReadKey();
return;
}
var path = ConsolePrompter.PromptPath();
var provider = ConsolePrompter.PromptDatabaseProvider();
var includeTests = ConsolePrompter.PromptYesNo("Test projeleri de oluşturulsun mu? (e/h) [e]: ", defaultYes: true);
var roles = ConsolePrompter.PromptRoles();
var publicRegister = ConsolePrompter.PromptYesNo(
"Public (herkese açık) kayıt endpoint'i olsun mu? Açılırsa kullanıcı en düşük rolü alır (e/h) [h]: ",
defaultYes: false);
var baseOptions = new BaseOptions
{
Roles = roles,
PublicRegister = publicRegister
};
var runner = new CommandRunner();
var fileWriter = new FileWriter();
var baseStructureWriter = new BaseStructureWriter(fileWriter);
var testScaffolder = includeTests ? new TestScaffolder(runner, fileWriter) : null;
var scaffolder = new SolutionScaffolder(runner, baseStructureWriter, testScaffolder);
await scaffolder.CreateAsync(solutionName, path, provider, baseOptions);
var solutionPath = Path.Combine(path, solutionName);
var moduleScaffolder = new ModuleScaffolder(runner, fileWriter, testScaffolder);
while (ConsolePrompter.PromptYesNo("Modül eklemek ister misin? (e/h): ", defaultYes: false))
{
var moduleName = ConsolePrompter.PromptModuleName();
if (moduleName is null) break;
await moduleScaffolder.AddAsync(solutionPath, solutionName, moduleName);
}
Console.WriteLine("Son build çalıştırılıyor...");
await runner.RunAsync("dotnet", "build -v minimal", solutionPath);
Console.WriteLine("Tamamlandı. Çıkmak için bir tuşa bas...");
if (!Console.IsInputRedirected) Console.ReadKey();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.ToString());
Console.ResetColor();
if (!Console.IsInputRedirected) Console.ReadKey();
}