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;
}
}
}