Add Lesson 4 Task 3
This commit is contained in:
parent
3f6406ab69
commit
bbce5fb19c
4 changed files with 134 additions and 0 deletions
22
Lesson_4/Task_3/IWorkingWithFile.cs
Normal file
22
Lesson_4/Task_3/IWorkingWithFile.cs
Normal file
|
@ -0,0 +1,22 @@
|
|||
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);
|
||||
}
|
||||
}
|
5
Lesson_4/Task_3/Program.cs
Normal file
5
Lesson_4/Task_3/Program.cs
Normal file
|
@ -0,0 +1,5 @@
|
|||
using LiskovSubstitution;
|
||||
|
||||
(new User()).SaveToFile("test");
|
||||
|
||||
(new Administrator()).SaveToFile("test");
|
10
Lesson_4/Task_3/Task_3.csproj
Normal file
10
Lesson_4/Task_3/Task_3.csproj
Normal file
|
@ -0,0 +1,10 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
97
Lesson_4/Task_3/WorkingWithFile.cs
Normal file
97
Lesson_4/Task_3/WorkingWithFile.cs
Normal file
|
@ -0,0 +1,97 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue