diff --git a/Lesson_4/Task_3/Classes/Administrator.cs b/Lesson_4/Task_3/Classes/Administrator.cs new file mode 100644 index 0000000..7ca83d4 --- /dev/null +++ b/Lesson_4/Task_3/Classes/Administrator.cs @@ -0,0 +1,28 @@ +using LiskovSubstitution.Interfaces; + +namespace LiskovSubstitution.Classes +{ + public class Administrator : User, IAdministrator + { + + public void WriteToFile(string filename) + { + Console.WriteLine("Written to the file."); + } + + public void DeleteFile(string filename) + { + Console.WriteLine("Deleted the file."); + } + + public void CopyFile(string filename) + { + Console.WriteLine("Copied the file."); + } + + public void SaveToFile(string filename) + { + Console.WriteLine("Saved to the file."); + } + } +} diff --git a/Lesson_4/Task_3/Classes/Owner.cs b/Lesson_4/Task_3/Classes/Owner.cs new file mode 100644 index 0000000..b575be5 --- /dev/null +++ b/Lesson_4/Task_3/Classes/Owner.cs @@ -0,0 +1,18 @@ +using LiskovSubstitution.Interfaces; + +namespace LiskovSubstitution.Classes +{ + public class Owner : Administrator, IOwner + { + + public Guid CheckRole(Guid role) + { + return role; + } + + public Guid CheckUser(Guid user) + { + return user; + } + } +} diff --git a/Lesson_4/Task_3/Classes/User.cs b/Lesson_4/Task_3/Classes/User.cs new file mode 100644 index 0000000..5333dcd --- /dev/null +++ b/Lesson_4/Task_3/Classes/User.cs @@ -0,0 +1,28 @@ +using LiskovSubstitution.Interfaces; + +namespace LiskovSubstitution.Classes +{ + public class User : IUser + { + + public string ReadFromFile(string filename) + { + return filename; + } + + public void DownloadFile(string filename) + { + Console.WriteLine("Downloaded the file."); + } + + public void GetDataFromFile(string filename) + { + Console.WriteLine("Got data from the file."); + } + + public void CheckFile(string filename) + { + Console.WriteLine("Checked the file."); + } + } +} diff --git a/Lesson_4/Task_3/IWorkingWithFile.cs b/Lesson_4/Task_3/IWorkingWithFile.cs deleted file mode 100644 index 4a5a132..0000000 --- a/Lesson_4/Task_3/IWorkingWithFile.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace LiskovSubstitution -{ - public interface IWorkingWithFile - { - public string ReadFromFile(string filename); - public void WriteToFile(string filename); - public void DeleteFile(string filename); - public void DownloadFile(string filename); - public void CopyFile(string filename); - public void GetDataFromFile(string filename); - public void CheckFile(string filename); - public void SaveToFile(string filename); - public Guid CheckRole(Guid role); - public Guid CheckUser(Guid user); - } -} diff --git a/Lesson_4/Task_3/Interfaces/IAdministrator.cs b/Lesson_4/Task_3/Interfaces/IAdministrator.cs new file mode 100644 index 0000000..247f09a --- /dev/null +++ b/Lesson_4/Task_3/Interfaces/IAdministrator.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LiskovSubstitution.Interfaces +{ + public interface IAdministrator : IUser + { + public void WriteToFile(string filename); + public void DeleteFile(string filename); + public void CopyFile(string filename); + public void SaveToFile(string filename); + } +} diff --git a/Lesson_4/Task_3/Interfaces/IOwner.cs b/Lesson_4/Task_3/Interfaces/IOwner.cs new file mode 100644 index 0000000..9549512 --- /dev/null +++ b/Lesson_4/Task_3/Interfaces/IOwner.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LiskovSubstitution.Interfaces +{ + public interface IOwner : IAdministrator + { + public Guid CheckRole(Guid role); + public Guid CheckUser(Guid user); + } +} diff --git a/Lesson_4/Task_3/Interfaces/IUser.cs b/Lesson_4/Task_3/Interfaces/IUser.cs new file mode 100644 index 0000000..03170bc --- /dev/null +++ b/Lesson_4/Task_3/Interfaces/IUser.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LiskovSubstitution.Interfaces +{ + public interface IUser + { + public string ReadFromFile(string filename); + public void DownloadFile(string filename); + public void GetDataFromFile(string filename); + public void CheckFile(string filename); + } +} diff --git a/Lesson_4/Task_3/Program.cs b/Lesson_4/Task_3/Program.cs index 5e5ebe3..0d60231 100644 --- a/Lesson_4/Task_3/Program.cs +++ b/Lesson_4/Task_3/Program.cs @@ -1,5 +1,6 @@ -using LiskovSubstitution; +using LiskovSubstitution.Classes; -(new User()).SaveToFile("test"); +// CS1061 +// (new User()).SaveToFile("test"); (new Administrator()).SaveToFile("test"); diff --git a/Lesson_4/Task_3/Task_3.csproj b/Lesson_4/Task_3/Task_3.csproj index f02677b..74abf5c 100644 --- a/Lesson_4/Task_3/Task_3.csproj +++ b/Lesson_4/Task_3/Task_3.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net6.0 enable enable diff --git a/Lesson_4/Task_3/WorkingWithFile.cs b/Lesson_4/Task_3/WorkingWithFile.cs deleted file mode 100644 index 9345e11..0000000 --- a/Lesson_4/Task_3/WorkingWithFile.cs +++ /dev/null @@ -1,97 +0,0 @@ -namespace LiskovSubstitution -{ - public class User : IWorkingWithFile - { - public virtual Guid Role { get; } = new Guid("a65d9c1d-b8a9-4f4f-be9b-ab03856f33f4"); - - public string ReadFromFile(string filename) - { - return filename; - } - - public void WriteToFile(string filename) - { - Console.WriteLine("Access denied."); - } - - public void DeleteFile(string filename) - { - Console.WriteLine("Access denied."); - } - - public void DownloadFile(string filename) - { - Console.WriteLine("Downloaded the file."); - } - - public void CopyFile(string filename) - { - Console.WriteLine("Access denied."); - } - - public void GetDataFromFile(string filename) - { - Console.WriteLine("Got data from the file."); - } - - public void CheckFile(string filename) - { - Console.WriteLine("Checked the file."); - } - - public void SaveToFile(string filename) - { - Console.WriteLine("Access denied."); - } - - public Guid CheckRole(Guid role) - { - return new Guid("00000000-0000-0000-0000-000000000000"); - } - - public Guid CheckUser(Guid user) - { - return new Guid("00000000-0000-0000-0000-000000000000"); - } - } - - public class Administrator : User - { - public override Guid Role { get; } = new Guid("c1cfcc4a-e49e-4585-9ccb-265c35321b11"); - - public new void WriteToFile(string filename) - { - Console.WriteLine("Written to the file."); - } - - public new void DeleteFile(string filename) - { - Console.WriteLine("Deleted the file."); - } - - public new void CopyFile(string filename) - { - Console.WriteLine("Copied the file."); - } - - public new void SaveToFile(string filename) - { - Console.WriteLine("Saved to the file."); - } - } - - public class Owner : User - { - public override Guid Role { get; } = new Guid("a157c9cf-c996-46d7-9905-4cd1319a451d"); - - public new Guid CheckRole(Guid role) - { - return role; - } - - public new Guid CheckUser(Guid user) - { - return user; - } - } -}