From 944c693dc8809bd09f0fe534c4bc1304257655fc Mon Sep 17 00:00:00 2001 From: Stanislav Mykhailenko Date: Thu, 13 Apr 2023 18:16:26 +0300 Subject: [PATCH] Update Lesson 4 Task 2 --- Lesson_4/Task_2/Classes/FireMagic.cs | 16 -------------- Lesson_4/Task_2/Classes/Magic.cs | 20 +++++++++++++++-- Lesson_4/Task_2/Classes/MagicType.cs | 22 +++++++++++++++++++ Lesson_4/Task_2/Classes/WaterMagic.cs | 16 -------------- Lesson_4/Task_2/Interfaces/IMagic.cs | 2 +- .../{IMagicClass.cs => IMagicType.cs} | 6 ++--- Lesson_4/Task_2/Program.cs | 13 +++++++++-- 7 files changed, 55 insertions(+), 40 deletions(-) delete mode 100644 Lesson_4/Task_2/Classes/FireMagic.cs create mode 100644 Lesson_4/Task_2/Classes/MagicType.cs delete mode 100644 Lesson_4/Task_2/Classes/WaterMagic.cs rename Lesson_4/Task_2/Interfaces/{IMagicClass.cs => IMagicType.cs} (63%) diff --git a/Lesson_4/Task_2/Classes/FireMagic.cs b/Lesson_4/Task_2/Classes/FireMagic.cs deleted file mode 100644 index 8842b59..0000000 --- a/Lesson_4/Task_2/Classes/FireMagic.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using Open_Closed.Interfaces; - -namespace Open_Closed.Classes -{ - public class FireMagic : IMagicClass - { - public int MagicValue { get { return 150; } } - public string MagicType { get { return "fire"; } } - } -} diff --git a/Lesson_4/Task_2/Classes/Magic.cs b/Lesson_4/Task_2/Classes/Magic.cs index 0024c62..06c3731 100644 --- a/Lesson_4/Task_2/Classes/Magic.cs +++ b/Lesson_4/Task_2/Classes/Magic.cs @@ -10,9 +10,25 @@ namespace Open_Closed.Classes { public class Magic : IMagic { - public void CountYourMagic(IMagicClass MagicClass) + private List MagicTypes; + + public Magic(List magicTypes) { - Console.WriteLine($"Your magic is {MagicClass.MagicType}."); + MagicTypes = magicTypes; + } + + public void CountYourMagic(int magic) + { + foreach(var magicType in MagicTypes) + { + if(magic == magicType.Value) + { + Console.WriteLine($"Wow, your magic is {magicType.Name}!"); + return; + } + } + + Console.WriteLine("I understand you..."); } } } diff --git a/Lesson_4/Task_2/Classes/MagicType.cs b/Lesson_4/Task_2/Classes/MagicType.cs new file mode 100644 index 0000000..de9a5df --- /dev/null +++ b/Lesson_4/Task_2/Classes/MagicType.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Open_Closed.Interfaces; + +namespace Open_Closed.Classes +{ + public class MagicType : IMagicType + { + public string Name { get; set; } + public int Value { get; set; } + + public MagicType(string name, int value) + { + Name = name; + Value = value; + } + } +} diff --git a/Lesson_4/Task_2/Classes/WaterMagic.cs b/Lesson_4/Task_2/Classes/WaterMagic.cs deleted file mode 100644 index aef7e32..0000000 --- a/Lesson_4/Task_2/Classes/WaterMagic.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using Open_Closed.Interfaces; - -namespace Open_Closed.Classes -{ - public class WaterMagic : IMagicClass - { - public int MagicValue { get { return 50000000; } } - public string MagicType { get { return "water"; } } - } -} diff --git a/Lesson_4/Task_2/Interfaces/IMagic.cs b/Lesson_4/Task_2/Interfaces/IMagic.cs index 417e11d..cc63226 100644 --- a/Lesson_4/Task_2/Interfaces/IMagic.cs +++ b/Lesson_4/Task_2/Interfaces/IMagic.cs @@ -8,6 +8,6 @@ namespace Open_Closed.Interfaces { public interface IMagic { - void CountYourMagic(IMagicClass MagicClass); + void CountYourMagic(int magic); } } diff --git a/Lesson_4/Task_2/Interfaces/IMagicClass.cs b/Lesson_4/Task_2/Interfaces/IMagicType.cs similarity index 63% rename from Lesson_4/Task_2/Interfaces/IMagicClass.cs rename to Lesson_4/Task_2/Interfaces/IMagicType.cs index 7a44e78..64c9348 100644 --- a/Lesson_4/Task_2/Interfaces/IMagicClass.cs +++ b/Lesson_4/Task_2/Interfaces/IMagicType.cs @@ -6,9 +6,9 @@ using System.Threading.Tasks; namespace Open_Closed.Interfaces { - public interface IMagicClass + public interface IMagicType { - int MagicValue { get; } - string MagicType { get; } + string Name { get; } + int Value { get; } } } diff --git a/Lesson_4/Task_2/Program.cs b/Lesson_4/Task_2/Program.cs index 3177504..e3fa27b 100644 --- a/Lesson_4/Task_2/Program.cs +++ b/Lesson_4/Task_2/Program.cs @@ -1,4 +1,13 @@ using Open_Closed.Classes; -(new Magic()).CountYourMagic(new FireMagic()); -(new Magic()).CountYourMagic(new WaterMagic()); +List magicTypes = new List() +{ + new MagicType("Fire Magic", 150), + new MagicType("Water Magic", 50000000) +}; + +Magic magic = new Magic(magicTypes); + +magic.CountYourMagic(150); +magic.CountYourMagic(50000000); +magic.CountYourMagic(12345);