diff --git a/Tagashi File Hub.sln b/Tagashi File Hub.sln index 226467a..2f1ab1d 100644 --- a/Tagashi File Hub.sln +++ b/Tagashi File Hub.sln @@ -7,11 +7,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tagashi File Hub", "src\Tag EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TagashiFileHub.Core", "src\TagashiFileHub.Core\TagashiFileHub.Core.csproj", "{39536C05-9C87-44CA-A753-6A317F252666}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagashiFIleHub.Service", "src\TagashiFIleHub.Service\TagashiFIleHub.Service.csproj", "{368C0084-EBB4-4A9A-9E01-84C48CF184D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TagashiFIleHub.Service", "src\TagashiFIleHub.Service\TagashiFIleHub.Service.csproj", "{368C0084-EBB4-4A9A-9E01-84C48CF184D9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagashiFileHub.Communication.Abstractions", "src\TagashiFileHub.Communication.Abstractions\TagashiFileHub.Communication.Abstractions.csproj", "{587B3D46-1114-4A84-8F33-4EEA501AE613}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TagashiFileHub.Communication.Abstractions", "src\TagashiFileHub.Communication.Abstractions\TagashiFileHub.Communication.Abstractions.csproj", "{587B3D46-1114-4A84-8F33-4EEA501AE613}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagashiFileHub.Communication.IPC", "src\TagashiFileHub.Communication.IPC\TagashiFileHub.Communication.IPC.csproj", "{64A274BB-678E-42C5-BD69-6BF7F04AD026}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TagashiFileHub.Communication.IPC", "src\TagashiFileHub.Communication.IPC\TagashiFileHub.Communication.IPC.csproj", "{64A274BB-678E-42C5-BD69-6BF7F04AD026}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagashiFileHub.Core.Abstractions", "src\TagashiFileHub.Core.Abstractions\TagashiFileHub.Core.Abstractions.csproj", "{ADF7B751-178A-4ED7-8DEC-CF3FE723A708}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -39,6 +41,10 @@ Global {64A274BB-678E-42C5-BD69-6BF7F04AD026}.Debug|Any CPU.Build.0 = Debug|Any CPU {64A274BB-678E-42C5-BD69-6BF7F04AD026}.Release|Any CPU.ActiveCfg = Release|Any CPU {64A274BB-678E-42C5-BD69-6BF7F04AD026}.Release|Any CPU.Build.0 = Release|Any CPU + {ADF7B751-178A-4ED7-8DEC-CF3FE723A708}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADF7B751-178A-4ED7-8DEC-CF3FE723A708}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADF7B751-178A-4ED7-8DEC-CF3FE723A708}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADF7B751-178A-4ED7-8DEC-CF3FE723A708}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/TagashiFIleHub.Service/TagashiFIleHub.Service.csproj b/src/TagashiFIleHub.Service/TagashiFIleHub.Service.csproj index dbfb89a..98a9c0b 100644 --- a/src/TagashiFIleHub.Service/TagashiFIleHub.Service.csproj +++ b/src/TagashiFIleHub.Service/TagashiFIleHub.Service.csproj @@ -15,5 +15,6 @@ + diff --git a/src/TagashiFileHub.Core.Abstractions/Files/IFile.cs b/src/TagashiFileHub.Core.Abstractions/Files/IFile.cs new file mode 100644 index 0000000..013091e --- /dev/null +++ b/src/TagashiFileHub.Core.Abstractions/Files/IFile.cs @@ -0,0 +1,9 @@ +namespace TagashiFileHub.Core.Abstractions.Files; + +public interface IFile : IUnique +{ + public FileInfo TrueFile(); + public IAsyncEnumerable GetTagsAsync(); + public ITag? AddTag(ITag tag); + public ITag? AddTag(string tagName); +} \ No newline at end of file diff --git a/src/TagashiFileHub.Core.Abstractions/Files/ITag.cs b/src/TagashiFileHub.Core.Abstractions/Files/ITag.cs new file mode 100644 index 0000000..f12560f --- /dev/null +++ b/src/TagashiFileHub.Core.Abstractions/Files/ITag.cs @@ -0,0 +1,6 @@ +namespace TagashiFileHub.Core.Abstractions.Files; + +public interface ITag : IUnique +{ + string Name { get; set; } +} \ No newline at end of file diff --git a/src/TagashiFileHub.Core.Abstractions/IUnique.cs b/src/TagashiFileHub.Core.Abstractions/IUnique.cs new file mode 100644 index 0000000..7d1db89 --- /dev/null +++ b/src/TagashiFileHub.Core.Abstractions/IUnique.cs @@ -0,0 +1,6 @@ +namespace TagashiFileHub.Core.Abstractions; + +public interface IUnique +{ + T Id { get; set; } +} \ No newline at end of file diff --git a/src/TagashiFileHub.Core.Abstractions/TagashiFileHub.Core.Abstractions.csproj b/src/TagashiFileHub.Core.Abstractions/TagashiFileHub.Core.Abstractions.csproj new file mode 100644 index 0000000..cfadb03 --- /dev/null +++ b/src/TagashiFileHub.Core.Abstractions/TagashiFileHub.Core.Abstractions.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/src/TagashiFileHub.Core/Class1.cs b/src/TagashiFileHub.Core/Class1.cs deleted file mode 100644 index 0c11aa6..0000000 --- a/src/TagashiFileHub.Core/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TagashiFileHub.Core -{ - public class Class1 - { - - } -} \ No newline at end of file diff --git a/src/TagashiFileHub.Core/TagashiFileHub.Core.csproj b/src/TagashiFileHub.Core/TagashiFileHub.Core.csproj index cfadb03..1ba20eb 100644 --- a/src/TagashiFileHub.Core/TagashiFileHub.Core.csproj +++ b/src/TagashiFileHub.Core/TagashiFileHub.Core.csproj @@ -6,4 +6,9 @@ enable + + + + + diff --git a/src/TagashiFileHub.Core/UniqueObject.cs b/src/TagashiFileHub.Core/UniqueObject.cs new file mode 100644 index 0000000..2b1288c --- /dev/null +++ b/src/TagashiFileHub.Core/UniqueObject.cs @@ -0,0 +1,13 @@ +using TagashiFileHub.Core.Abstractions; + +namespace TagashiFileHub.Core; + +public class UniqueObject : IUnique +{ + public string Id { get; set; } + + protected string CreateNewId() + { + return new Guid().ToString(); + } +} \ No newline at end of file