mekasu0124

Untitled

Mar 13th, 2024
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.35 KB | None | 0 0
  1. using MakeMyProject.Models;
  2. using MakeMyProject.Services;
  3. using System.Diagnostics;
  4.  
  5. namespace MakeMyProject;
  6.  
  7. public class Program
  8. {
  9.     private static JsonEngine _jsEngine = new();
  10.     private static Helpers _hp = new();
  11.  
  12.     public static void Main(string[] args)
  13.     {
  14.         CheckSetup();
  15.     }
  16.  
  17.     public static void CheckSetup()
  18.     {
  19.         SetupModel setup = _jsEngine.GetSetupValues();
  20.  
  21.         _jsEngine.CreateSetupFolder();
  22.  
  23.         Console.WriteLine("\u001b[2J\u001b[3J");
  24.  
  25.         if (setup.FirstLaunch)
  26.         {
  27.             ShowWelcomeScreen();
  28.             _jsEngine.UpdateFirstLaunch();
  29.             Console.WriteLine("\u001b[2J\u001b[3J");
  30.         };
  31.  
  32.         ShowMainMenu();
  33.     }
  34.  
  35.     public static void ShowWelcomeScreen()
  36.     {
  37.         Console.WriteLine("\u001b[2J\u001b[3J");
  38.  
  39.         // _hp.PrintAppEmblem();
  40.  
  41.         _hp.PrintWelcomeText();
  42.  
  43.         string user_choice = ColorCon.GetStringFromConsole(
  44.             prompt: "Do You Agree To These Terms?\n\nA - Accept\nD - Decline\n\nYour Choice: ",
  45.             color: ConsoleColor.DarkGray,
  46.             validator: x => !string.IsNullOrEmpty(x) &&
  47.                             !string.IsNullOrWhiteSpace(x) &&
  48.                             x.ToLower().Equals("a") || x.ToLower().Equals("d"),
  49.             errorMessage: "Input Must Be A to Accept or D to Decline",
  50.             errorColor: ConsoleColor.Red);
  51.  
  52.         switch (user_choice.ToLower())
  53.         {
  54.             case "a":
  55.                 _jsEngine.UpdateSetup();
  56.                 ShowMainMenu();
  57.                 break;
  58.  
  59.             case "d":
  60.                 Console.WriteLine("\u001b[2J\u001b[3J");
  61.  
  62.                 string new_user_choice = ColorCon.GetStringFromConsole(
  63.                     prompt: "Are You Sure You Wish To Decline The Terms Of Service? Yes or No\n\nYour Choice: ",
  64.                     color: ConsoleColor.Yellow,
  65.                     validator: x => !string.IsNullOrEmpty(x)&&
  66.                                     !string.IsNullOrWhiteSpace(x) &&
  67.                                     x.ToLower().Equals("y") || x.ToLower().Equals("n"),
  68.                     errorMessage: "Input Must Be Y for Yes or N for No",
  69.                     errorColor: ConsoleColor.Red);
  70.  
  71.                 if (new_user_choice.ToLower() == "y")
  72.                 {
  73.                     Console.WriteLine("\u001b[2J\u001b[3J");
  74.  
  75.                     ColorCon.WriteLine("You Chose To Decline The Terms Of Service.", ConsoleColor.Cyan);
  76.                     ColorCon.WriteLine("Exiting Application In 3 Seconds. . .", ConsoleColor.Cyan);
  77.                     Thread.Sleep(3000);
  78.                     Environment.Exit(0);
  79.                 }
  80.                 else if (new_user_choice.ToLower() == "n")
  81.                 {
  82.                     ShowWelcomeScreen();
  83.                 }
  84.                 break;
  85.  
  86.             default:
  87.                 ColorCon.WriteLine("Unable To Determine User Input. Relaunching Program", ConsoleColor.Yellow);
  88.  
  89.                 Process restart = new();
  90.                 restart.StartInfo.FileName = "MakeMyProject.exe";
  91.                 restart.Start();
  92.  
  93.                 Environment.Exit(0);
  94.                 break;
  95.         }
  96.     }
  97.  
  98.     public static void ShowMainMenu()
  99.     {
  100.         string menuText = """
  101.                          What Would You Like To Do?
  102.  
  103.                          1 - Create New Python Project
  104.                          2 - Create New C# Project
  105.                          3 - Create New JavaScript Project
  106.                          """;
  107.  
  108.         string userChoice = ColorCon.GetStringFromConsole(
  109.                                         prompt: "\n\nYour Choice: ",
  110.                                         color: ConsoleColor.DarkGray,
  111.                                         validator: x => _hp.ValidateMenuChoice(x),
  112.                                         errorMessage: "Input Must Be A Whole Number Shown On The Menu",
  113.                                         errorColor: ConsoleColor.Red);
  114.  
  115.         switch (Convert.ToInt32(userChoice))
  116.         {
  117.             case 1:
  118.                 break;
  119.  
  120.             case 2:
  121.                 break;
  122.  
  123.             case 3:
  124.                 break;
  125.  
  126.             case 4:
  127.                 break;
  128.  
  129.             default:
  130.                 ColorCon.WriteLine("Unable To Determine User Input", ConsoleColor.Red);
  131.                 break;
  132.         }
  133.     }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment