Program.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // See https://aka.ms/new-console-template for more information
  2. using Domain;
  3. using Infrastructure;
  4. using System.ComponentModel;
  5. using System.Text.Json;
  6. using System.Text.Json.Serialization;
  7. Console.WriteLine("Hello, World!");
  8. Player perso = new Player();
  9. var fileName = $"C:/newCharacter.json";
  10. while (true)
  11. {
  12. string? methodToExec = Console.ReadLine();
  13. if (methodToExec != null)
  14. {
  15. switch (methodToExec.ToLower())
  16. {
  17. case "roll":
  18. Console.WriteLine(RollInitialStat());
  19. break;
  20. case "createperso":
  21. string jsonPerso = "";
  22. object createPerso = await CreatePerso(perso, fileName, jsonPerso);
  23. Console.Write(createPerso);
  24. break;
  25. }
  26. }
  27. }
  28. static int RollInitialStat()
  29. {
  30. var rollValue = DiceService.RollDices(1, 20);
  31. rollValue += 30;
  32. return rollValue;
  33. }
  34. static async Task<string> CreatePerso(Player perso, string fileName, string jsonPerso)
  35. {
  36. perso = InitRandomStat();
  37. jsonPerso = JsonSerializer.Serialize<Player>(perso);
  38. //if (File.Exists(fileName))
  39. //{
  40. // if (IsFileLocked(fileName))
  41. // {
  42. // Thread.Sleep(1000);
  43. // }
  44. // File.Delete(fileName);
  45. //}
  46. //if (IsFileLocked(fileName))
  47. //{
  48. // Thread.Sleep(1000);
  49. //}
  50. //if (!File.Exists(fileName))
  51. // File.Create(fileName);
  52. //await File.WriteAllTextAsync(fileName, jsonPerso);
  53. return jsonPerso;
  54. }
  55. static Player InitRandomStat()
  56. {
  57. return new Player
  58. {
  59. AG = RollInitialStat(),
  60. CC = RollInitialStat(),
  61. CT = RollInitialStat(),
  62. E = RollInitialStat(),
  63. F = RollInitialStat(),
  64. FM = RollInitialStat(),
  65. INT = RollInitialStat(),
  66. MF = RollInitialStat(),
  67. PER = RollInitialStat(),
  68. SOC = RollInitialStat()
  69. };
  70. }
  71. static bool IsFileLocked(string filePath)
  72. {
  73. try
  74. {
  75. using (File.Open(filePath, FileMode.Open))
  76. {
  77. return true;
  78. }
  79. }
  80. catch (IOException e)
  81. {
  82. Console.WriteLine("Exception occured while deleting the file, Exception is {e}", e);
  83. }
  84. return false;
  85. }