diff --git a/.gitignore b/.gitignore index 6329e43..a2435da 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/ConsoleApp1.sln b/ConsoleApp1.sln index 6084a80..9ede570 100644 --- a/ConsoleApp1.sln +++ b/ConsoleApp1.sln @@ -8,13 +8,19 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|ARM32 = Debug|ARM32 Release|Any CPU = Release|Any CPU + Release|ARM32 = Release|ARM32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0199A106-1CC7-4407-BE8C-1308445FA97D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0199A106-1CC7-4407-BE8C-1308445FA97D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0199A106-1CC7-4407-BE8C-1308445FA97D}.Debug|ARM32.ActiveCfg = Debug|ARM32 + {0199A106-1CC7-4407-BE8C-1308445FA97D}.Debug|ARM32.Build.0 = Debug|ARM32 {0199A106-1CC7-4407-BE8C-1308445FA97D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0199A106-1CC7-4407-BE8C-1308445FA97D}.Release|Any CPU.Build.0 = Release|Any CPU + {0199A106-1CC7-4407-BE8C-1308445FA97D}.Release|ARM32.ActiveCfg = Release|ARM32 + {0199A106-1CC7-4407-BE8C-1308445FA97D}.Release|ARM32.Build.0 = Release|ARM32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ConsoleApp1/ConsoleApp1.csproj b/ConsoleApp1/ConsoleApp1.csproj index 2150e37..47e4f9f 100644 --- a/ConsoleApp1/ConsoleApp1.csproj +++ b/ConsoleApp1/ConsoleApp1.csproj @@ -5,6 +5,7 @@ net8.0 enable enable + AnyCPU;ARM32 diff --git a/ConsoleApp1/ISystem.cs b/ConsoleApp1/ISystem.cs index 7f6aece..5b7dc0e 100644 --- a/ConsoleApp1/ISystem.cs +++ b/ConsoleApp1/ISystem.cs @@ -6,10 +6,14 @@ using System.Threading.Tasks; namespace ConsoleApp1 { - internal interface ISystem + public interface ISystem { + string Name { get; } + string Version { get; } + string SN { get; } + bool Start(); void Restart(); - void Quit(); + bool Quit(); } } diff --git a/ConsoleApp1/Program.cs b/ConsoleApp1/Program.cs index 3751555..619ff76 100644 --- a/ConsoleApp1/Program.cs +++ b/ConsoleApp1/Program.cs @@ -1,2 +1,33 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); +using ConsoleApp1; + +internal class Program +{ + private static void Main(string[] args) + { + ISystem system1 = new ConsoleApp1.System("YouLikeToBreakYourSystemDontYa? Linux", "v1.0.0", "SN123"); + + Program.SystemTest(system1); + } + + static void SystemTest(ISystem sys) + { + Program.Advertise(sys); + + if (sys.Start()) + { + Console.WriteLine("[TEST] System running!"); + } + + sys.Restart(); + + if (sys.Quit()) + { + Console.WriteLine("[TEST] System quit!"); + } + } + + static void Advertise(ISystem sys) + { + Console.WriteLine($"Behold! The '{sys.Name}' is coming!"); + } +} \ No newline at end of file diff --git a/ConsoleApp1/System.cs b/ConsoleApp1/System.cs index a8ff22a..c426159 100644 --- a/ConsoleApp1/System.cs +++ b/ConsoleApp1/System.cs @@ -11,6 +11,7 @@ namespace ConsoleApp1 private string name; private string version; private string sn; + private bool isOn = false; public System(string name, string version, string sn) { @@ -25,7 +26,41 @@ namespace ConsoleApp1 public override string ToString() { - return $"Name: {this.name}\nVersion: {this.version}"; + return $" - Name: {this.name}\n - Version: {this.version}"; + } + + public bool Start() + { + if (this.isOn) return false; + + Console.WriteLine($"System starting..."); + this.isOn = true; + + return true; + } + + public void Restart() + { + Console.WriteLine("System restarting in:"); + + for (int i = 3; i > 0; i--) + { + Console.WriteLine(i); + Thread.Sleep(1000); + } + + this.Quit(); + this.Start(); + } + + public bool Quit() + { + if (!this.isOn) return false; + + Console.WriteLine($"System quiting..."); + this.isOn = false; + + return true; } } }