From d828a3a2adc81641a0d0776d4d5b4cd75b172c10 Mon Sep 17 00:00:00 2001 From: NikitaOnianov Date: Sat, 16 Nov 2024 11:29:24 +0300 Subject: [PATCH] add basic files --- console_ui/Program.cs | 2 + console_ui/console_ui.csproj | 20 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/console_ui.AssemblyInfo.cs | 23 + .../console_ui.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + .../Debug/net8.0/console_ui.GlobalUsings.g.cs | 8 + .../obj/Debug/net8.0/console_ui.assets.cache | Bin 0 -> 14600 bytes .../console_ui.csproj.AssemblyReference.cache | Bin 0 -> 14208 bytes .../obj/console_ui.csproj.nuget.dgspec.json | 294 +++ .../obj/console_ui.csproj.nuget.g.props | 18 + .../obj/console_ui.csproj.nuget.g.targets | 7 + console_ui/obj/project.assets.json | 1139 +++++++++ console_ui/obj/project.nuget.cache | 32 + data/Exceptions/GroupNotFoundException.cs | 11 + data/Exceptions/RepositoryException.cs | 10 + data/Exceptions/UserNotFoundException.cs | 10 + data/LocalData/Entity/Group.cs | 10 + data/LocalData/Entity/Presence.cs | 21 + data/LocalData/Entity/User.cs | 18 + data/LocalData/LocalStaticData.cs | 30 + data/RemoteData/DAO/Excel.cs | 25 + data/RemoteData/DAO/Group.cs | 15 + data/RemoteData/DAO/Presence.cs | 25 + data/RemoteData/DAO/User.cs | 31 + data/RemoteData/DAO/UserAttendance.cs | 31 + data/RemoteData/RemoteDatabaseContext.cs | 43 + data/Repository/GroupRepositoryImpl.cs | 65 + data/Repository/IGroupRepository.cs | 23 + data/Repository/IPresenceRepository.cs | 37 + data/Repository/IUserRepository.cs | 21 + data/Repository/PresenceRepositoryImpl.cs | 72 + data/Repository/SQLGroupRepositoryImpl.cs | 68 + data/Repository/SQLPresenceRepositoryImpl.cs | 190 ++ data/Repository/SQLUserRepositoryImpl.cs | 94 + data/Repository/UserRepositoryImpl.cs | 58 + data/bin/Debug/net8.0/data.deps.json | 818 ++++++ data/bin/Debug/net8.0/data.dll | Bin 0 -> 34816 bytes data/bin/Debug/net8.0/data.pdb | Bin 0 -> 20880 bytes data/bin/Debug/net8.0/data.runtimeconfig.json | 13 + data/data.csproj | 18 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + data/obj/Debug/net8.0/data.AssemblyInfo.cs | 23 + .../net8.0/data.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + data/obj/Debug/net8.0/data.GlobalUsings.g.cs | 8 + data/obj/Debug/net8.0/data.assets.cache | Bin 0 -> 37003 bytes .../data.csproj.AssemblyReference.cache | Bin 0 -> 9367 bytes .../net8.0/data.csproj.BuildWithSkipAnalyzers | 0 .../data.csproj.CoreCompileInputs.cache | 1 + .../net8.0/data.csproj.FileListAbsolute.txt | 42 + data/obj/Debug/net8.0/data.dll | Bin 0 -> 34816 bytes .../Debug/net8.0/data.genruntimeconfig.cache | 1 + data/obj/Debug/net8.0/data.pdb | Bin 0 -> 20880 bytes data/obj/Debug/net8.0/ref/data.dll | Bin 0 -> 14848 bytes data/obj/Debug/net8.0/refint/data.dll | Bin 0 -> 14848 bytes data/obj/data.csproj.nuget.dgspec.json | 84 + data/obj/data.csproj.nuget.g.props | 22 + data/obj/data.csproj.nuget.g.targets | 7 + data/obj/project.assets.json | 2191 +++++++++++++++++ data/obj/project.nuget.cache | 47 + presence.sln | 46 + .../GroupController.cs/GroupController.cs | 19 + presence_api/Program.cs | 25 + presence_api/Properties/launchSettings.json | 41 + .../ServiceExtensions/ServiceExtensions.cs | 10 + presence_api/appsettings.Development.json | 8 + presence_api/appsettings.json | 9 + .../net8.0/Microsoft.AspNetCore.OpenApi.dll | Bin 0 -> 65808 bytes ...osoft.EntityFrameworkCore.Abstractions.dll | Bin 0 -> 34864 bytes ...crosoft.EntityFrameworkCore.Relational.dll | Bin 0 -> 1992264 bytes .../net8.0/Microsoft.EntityFrameworkCore.dll | Bin 0 -> 2533920 bytes .../Microsoft.Extensions.Caching.Memory.dll | Bin 0 -> 45832 bytes ...sions.DependencyInjection.Abstractions.dll | Bin 0 -> 63768 bytes ...crosoft.Extensions.DependencyInjection.dll | Bin 0 -> 92952 bytes ...rosoft.Extensions.Logging.Abstractions.dll | Bin 0 -> 65320 bytes .../net8.0/Microsoft.Extensions.Logging.dll | Bin 0 -> 50976 bytes .../net8.0/Microsoft.Extensions.Options.dll | Bin 0 -> 64776 bytes .../bin/Debug/net8.0/Microsoft.OpenApi.dll | Bin 0 -> 233408 bytes .../Npgsql.EntityFrameworkCore.PostgreSQL.dll | Bin 0 -> 622592 bytes presence_api/bin/Debug/net8.0/Npgsql.dll | Bin 0 -> 1406976 bytes .../net8.0/Swashbuckle.AspNetCore.Swagger.dll | Bin 0 -> 17408 bytes .../Swashbuckle.AspNetCore.SwaggerGen.dll | Bin 0 -> 118784 bytes .../Swashbuckle.AspNetCore.SwaggerUI.dll | Bin 0 -> 2270720 bytes .../Debug/net8.0/appsettings.Development.json | 8 + .../bin/Debug/net8.0/appsettings.json | 9 + presence_api/bin/Debug/net8.0/data.dll | Bin 0 -> 29696 bytes presence_api/bin/Debug/net8.0/data.pdb | Bin 0 -> 16872 bytes presence_api/bin/Debug/net8.0/domain.dll | Bin 0 -> 5632 bytes presence_api/bin/Debug/net8.0/domain.pdb | Bin 0 -> 12176 bytes presence_api/bin/Debug/net8.0/presence_api | Bin 0 -> 72520 bytes .../bin/Debug/net8.0/presence_api.deps.json | 414 ++++ .../bin/Debug/net8.0/presence_api.dll | Bin 0 -> 8192 bytes .../bin/Debug/net8.0/presence_api.pdb | Bin 0 -> 21836 bytes .../net8.0/presence_api.runtimeconfig.json | 20 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + presence_api/obj/Debug/net8.0/apphost | Bin 0 -> 72520 bytes presence_api/obj/Debug/net8.0/apphost.exe | Bin 0 -> 138752 bytes .../Debug/net8.0/presence.6C935717.Up2Date | 0 .../Debug/net8.0/presence_api.AssemblyInfo.cs | 23 + .../presence_api.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 19 + .../net8.0/presence_api.GlobalUsings.g.cs | 17 + ..._api.MvcApplicationPartsAssemblyInfo.cache | 0 ...nce_api.MvcApplicationPartsAssemblyInfo.cs | 17 + .../Debug/net8.0/presence_api.assets.cache | Bin 0 -> 18447 bytes ...resence_api.csproj.AssemblyReference.cache | Bin 0 -> 11184 bytes ...resence_api.csproj.CoreCompileInputs.cache | 1 + .../presence_api.csproj.FileListAbsolute.txt | 48 + .../obj/Debug/net8.0/presence_api.dll | Bin 0 -> 8192 bytes .../presence_api.genruntimeconfig.cache | 1 + .../obj/Debug/net8.0/presence_api.pdb | Bin 0 -> 21836 bytes .../obj/Debug/net8.0/ref/presence_api.dll | Bin 0 -> 6656 bytes .../obj/Debug/net8.0/refint/presence_api.dll | Bin 0 -> 6656 bytes .../Debug/net8.0/staticwebassets.build.json | 11 + .../msbuild.build.presence_api.props | 3 + ...ild.buildMultiTargeting.presence_api.props | 3 + ...msbuild.buildTransitive.presence_api.props | 3 + .../obj/presence_api.csproj.nuget.dgspec.json | 231 ++ .../obj/presence_api.csproj.nuget.g.props | 23 + .../obj/presence_api.csproj.nuget.g.targets | 8 + presence_api/obj/project.assets.json | 1590 ++++++++++++ presence_api/obj/project.nuget.cache | 39 + presence_api/presence_api.csproj | 18 + presence_api/presence_api.csproj.user | 6 + presence_api/presence_api.http | 6 + 126 files changed, 8443 insertions(+) create mode 100644 console_ui/Program.cs create mode 100644 console_ui/console_ui.csproj create mode 100644 console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache create mode 100644 console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs create mode 100644 console_ui/obj/Debug/net8.0/console_ui.assets.cache create mode 100644 console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache create mode 100644 console_ui/obj/console_ui.csproj.nuget.dgspec.json create mode 100644 console_ui/obj/console_ui.csproj.nuget.g.props create mode 100644 console_ui/obj/console_ui.csproj.nuget.g.targets create mode 100644 console_ui/obj/project.assets.json create mode 100644 console_ui/obj/project.nuget.cache create mode 100644 data/Exceptions/GroupNotFoundException.cs create mode 100644 data/Exceptions/RepositoryException.cs create mode 100644 data/Exceptions/UserNotFoundException.cs create mode 100644 data/LocalData/Entity/Group.cs create mode 100644 data/LocalData/Entity/Presence.cs create mode 100644 data/LocalData/Entity/User.cs create mode 100644 data/LocalData/LocalStaticData.cs create mode 100644 data/RemoteData/DAO/Excel.cs create mode 100644 data/RemoteData/DAO/Group.cs create mode 100644 data/RemoteData/DAO/Presence.cs create mode 100644 data/RemoteData/DAO/User.cs create mode 100644 data/RemoteData/DAO/UserAttendance.cs create mode 100644 data/RemoteData/RemoteDatabaseContext.cs create mode 100644 data/Repository/GroupRepositoryImpl.cs create mode 100644 data/Repository/IGroupRepository.cs create mode 100644 data/Repository/IPresenceRepository.cs create mode 100644 data/Repository/IUserRepository.cs create mode 100644 data/Repository/PresenceRepositoryImpl.cs create mode 100644 data/Repository/SQLGroupRepositoryImpl.cs create mode 100644 data/Repository/SQLPresenceRepositoryImpl.cs create mode 100644 data/Repository/SQLUserRepositoryImpl.cs create mode 100644 data/Repository/UserRepositoryImpl.cs create mode 100644 data/bin/Debug/net8.0/data.deps.json create mode 100644 data/bin/Debug/net8.0/data.dll create mode 100644 data/bin/Debug/net8.0/data.pdb create mode 100644 data/bin/Debug/net8.0/data.runtimeconfig.json create mode 100644 data/data.csproj create mode 100644 data/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 data/obj/Debug/net8.0/data.AssemblyInfo.cs create mode 100644 data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache create mode 100644 data/obj/Debug/net8.0/data.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 data/obj/Debug/net8.0/data.GlobalUsings.g.cs create mode 100644 data/obj/Debug/net8.0/data.assets.cache create mode 100644 data/obj/Debug/net8.0/data.csproj.AssemblyReference.cache create mode 100644 data/obj/Debug/net8.0/data.csproj.BuildWithSkipAnalyzers create mode 100644 data/obj/Debug/net8.0/data.csproj.CoreCompileInputs.cache create mode 100644 data/obj/Debug/net8.0/data.csproj.FileListAbsolute.txt create mode 100644 data/obj/Debug/net8.0/data.dll create mode 100644 data/obj/Debug/net8.0/data.genruntimeconfig.cache create mode 100644 data/obj/Debug/net8.0/data.pdb create mode 100644 data/obj/Debug/net8.0/ref/data.dll create mode 100644 data/obj/Debug/net8.0/refint/data.dll create mode 100644 data/obj/data.csproj.nuget.dgspec.json create mode 100644 data/obj/data.csproj.nuget.g.props create mode 100644 data/obj/data.csproj.nuget.g.targets create mode 100644 data/obj/project.assets.json create mode 100644 data/obj/project.nuget.cache create mode 100644 presence.sln create mode 100644 presence_api/Contollers/GroupController.cs/GroupController.cs create mode 100644 presence_api/Program.cs create mode 100644 presence_api/Properties/launchSettings.json create mode 100644 presence_api/ServiceExtensions/ServiceExtensions.cs create mode 100644 presence_api/appsettings.Development.json create mode 100644 presence_api/appsettings.json create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.AspNetCore.OpenApi.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.EntityFrameworkCore.Relational.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.EntityFrameworkCore.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.Caching.Memory.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.DependencyInjection.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.Logging.Abstractions.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.Logging.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.Extensions.Options.dll create mode 100644 presence_api/bin/Debug/net8.0/Microsoft.OpenApi.dll create mode 100644 presence_api/bin/Debug/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll create mode 100644 presence_api/bin/Debug/net8.0/Npgsql.dll create mode 100644 presence_api/bin/Debug/net8.0/Swashbuckle.AspNetCore.Swagger.dll create mode 100644 presence_api/bin/Debug/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll create mode 100644 presence_api/bin/Debug/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll create mode 100644 presence_api/bin/Debug/net8.0/appsettings.Development.json create mode 100644 presence_api/bin/Debug/net8.0/appsettings.json create mode 100644 presence_api/bin/Debug/net8.0/data.dll create mode 100644 presence_api/bin/Debug/net8.0/data.pdb create mode 100644 presence_api/bin/Debug/net8.0/domain.dll create mode 100644 presence_api/bin/Debug/net8.0/domain.pdb create mode 100644 presence_api/bin/Debug/net8.0/presence_api create mode 100644 presence_api/bin/Debug/net8.0/presence_api.deps.json create mode 100644 presence_api/bin/Debug/net8.0/presence_api.dll create mode 100644 presence_api/bin/Debug/net8.0/presence_api.pdb create mode 100644 presence_api/bin/Debug/net8.0/presence_api.runtimeconfig.json create mode 100644 presence_api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 presence_api/obj/Debug/net8.0/apphost create mode 100644 presence_api/obj/Debug/net8.0/apphost.exe create mode 100644 presence_api/obj/Debug/net8.0/presence.6C935717.Up2Date create mode 100644 presence_api/obj/Debug/net8.0/presence_api.AssemblyInfo.cs create mode 100644 presence_api/obj/Debug/net8.0/presence_api.AssemblyInfoInputs.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 presence_api/obj/Debug/net8.0/presence_api.GlobalUsings.g.cs create mode 100644 presence_api/obj/Debug/net8.0/presence_api.MvcApplicationPartsAssemblyInfo.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.MvcApplicationPartsAssemblyInfo.cs create mode 100644 presence_api/obj/Debug/net8.0/presence_api.assets.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.csproj.AssemblyReference.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.csproj.CoreCompileInputs.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.csproj.FileListAbsolute.txt create mode 100644 presence_api/obj/Debug/net8.0/presence_api.dll create mode 100644 presence_api/obj/Debug/net8.0/presence_api.genruntimeconfig.cache create mode 100644 presence_api/obj/Debug/net8.0/presence_api.pdb create mode 100644 presence_api/obj/Debug/net8.0/ref/presence_api.dll create mode 100644 presence_api/obj/Debug/net8.0/refint/presence_api.dll create mode 100644 presence_api/obj/Debug/net8.0/staticwebassets.build.json create mode 100644 presence_api/obj/Debug/net8.0/staticwebassets/msbuild.build.presence_api.props create mode 100644 presence_api/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.presence_api.props create mode 100644 presence_api/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.presence_api.props create mode 100644 presence_api/obj/presence_api.csproj.nuget.dgspec.json create mode 100644 presence_api/obj/presence_api.csproj.nuget.g.props create mode 100644 presence_api/obj/presence_api.csproj.nuget.g.targets create mode 100644 presence_api/obj/project.assets.json create mode 100644 presence_api/obj/project.nuget.cache create mode 100644 presence_api/presence_api.csproj create mode 100644 presence_api/presence_api.csproj.user create mode 100644 presence_api/presence_api.http diff --git a/console_ui/Program.cs b/console_ui/Program.cs new file mode 100644 index 0000000..3751555 --- /dev/null +++ b/console_ui/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/console_ui/console_ui.csproj b/console_ui/console_ui.csproj new file mode 100644 index 0000000..883c822 --- /dev/null +++ b/console_ui/console_ui.csproj @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + Exe + net8.0 + enable + enable + + + diff --git a/console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/console_ui/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs new file mode 100644 index 0000000..ac8a828 --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("console_ui")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("console_ui")] +[assembly: System.Reflection.AssemblyTitleAttribute("console_ui")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache new file mode 100644 index 0000000..62e776c --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +ba882f03fdfa9546ef7659464bc47e4a0ca2d53498595f377280140f0c41eed4 diff --git a/console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig b/console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..5741cfb --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = console_ui +build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Новый репоз\new_presence\console_ui\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs b/console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/console_ui/obj/Debug/net8.0/console_ui.assets.cache b/console_ui/obj/Debug/net8.0/console_ui.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..e2b34ee895303f9cf576cb7c9177ffb3fb3cb2cc GIT binary patch literal 14600 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 GJN0MQJ?W_c literal 0 HcmV?d00001 diff --git a/console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache b/console_ui/obj/Debug/net8.0/console_ui.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..c15f8aec5e8c1d74e71eb2d094c890c4efe79dc6 GIT binary patch literal 14208 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 literal 0 HcmV?d00001 diff --git a/console_ui/obj/console_ui.csproj.nuget.dgspec.json b/console_ui/obj/console_ui.csproj.nuget.dgspec.json new file mode 100644 index 0000000..32fd0e8 --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.dgspec.json @@ -0,0 +1,294 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj": {} + }, + "projects": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj", + "projectName": "console_ui", + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj", + "packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\", + "outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj" + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj" + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": { + "target": "Package", + "version": "[8.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json" + } + } + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj", + "projectName": "data", + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj", + "packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\", + "outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.10, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.10, )" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[8.0.10, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json" + } + } + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj", + "projectName": "domain", + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj", + "packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\", + "outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "ClosedXML": { + "target": "Package", + "version": "[0.104.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json" + } + } + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj", + "projectName": "ui", + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj", + "packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\", + "outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/console_ui/obj/console_ui.csproj.nuget.g.props b/console_ui/obj/console_ui.csproj.nuget.g.props new file mode 100644 index 0000000..f148277 --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.g.props @@ -0,0 +1,18 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\VivoBook 15X\.nuget\packages\ + PackageReference + 6.11.1 + + + + + + + + \ No newline at end of file diff --git a/console_ui/obj/console_ui.csproj.nuget.g.targets b/console_ui/obj/console_ui.csproj.nuget.g.targets new file mode 100644 index 0000000..baac958 --- /dev/null +++ b/console_ui/obj/console_ui.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/console_ui/obj/project.assets.json b/console_ui/obj/project.assets.json new file mode 100644 index 0000000..0cd08b4 --- /dev/null +++ b/console_ui/obj/project.assets.json @@ -0,0 +1,1139 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "ClosedXML/0.104.1": { + "type": "package", + "dependencies": { + "ClosedXML.Parser": "[1.2.0, 2.0.0)", + "DocumentFormat.OpenXml": "[3.0.1, 4.0.0)", + "ExcelNumberFormat": "1.1.0", + "RBush": "3.2.0", + "SixLabors.Fonts": "1.0.0", + "System.IO.Packaging": "8.0.0" + }, + "compile": { + "lib/netstandard2.1/ClosedXML.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.1/ClosedXML.dll": { + "related": ".pdb;.xml" + } + } + }, + "ClosedXML.Parser/1.2.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/ClosedXML.Parser.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/ClosedXML.Parser.dll": { + "related": ".xml" + } + } + }, + "DocumentFormat.OpenXml/3.0.1": { + "type": "package", + "dependencies": { + "DocumentFormat.OpenXml.Framework": "3.0.1" + }, + "compile": { + "lib/net8.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + } + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "type": "package", + "dependencies": { + "System.IO.Packaging": "8.0.0" + }, + "compile": { + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll": { + "related": ".xml" + } + } + }, + "ExcelNumberFormat/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Npgsql/8.0.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "compile": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, + "RBush/3.2.0": { + "type": "package", + "compile": { + "lib/net6.0/RBush.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/RBush.dll": { + "related": ".xml" + } + } + }, + "SixLabors.Fonts/1.0.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + } + }, + "System.IO.Packaging/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Packaging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Packaging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "data/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10" + }, + "compile": { + "bin/placeholder/data.dll": {} + }, + "runtime": { + "bin/placeholder/data.dll": {} + } + }, + "domain/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "ClosedXML": "0.104.1", + "data": "1.0.0" + }, + "compile": { + "bin/placeholder/domain.dll": {} + }, + "runtime": { + "bin/placeholder/domain.dll": {} + } + }, + "ui/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "domain": "1.0.0" + }, + "compile": { + "bin/placeholder/ui.dll": {} + }, + "runtime": { + "bin/placeholder/ui.dll": {} + } + } + } + }, + "libraries": { + "ClosedXML/0.104.1": { + "sha512": "RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==", + "type": "package", + "path": "closedxml/0.104.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "closedxml.0.104.1.nupkg.sha512", + "closedxml.nuspec", + "lib/netstandard2.0/ClosedXML.dll", + "lib/netstandard2.0/ClosedXML.pdb", + "lib/netstandard2.0/ClosedXML.xml", + "lib/netstandard2.1/ClosedXML.dll", + "lib/netstandard2.1/ClosedXML.pdb", + "lib/netstandard2.1/ClosedXML.xml", + "nuget-logo.png" + ] + }, + "ClosedXML.Parser/1.2.0": { + "sha512": "w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==", + "type": "package", + "path": "closedxml.parser/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "closedxml.parser.1.2.0.nupkg.sha512", + "closedxml.parser.nuspec", + "lib/netstandard2.0/ClosedXML.Parser.dll", + "lib/netstandard2.0/ClosedXML.Parser.xml", + "lib/netstandard2.1/ClosedXML.Parser.dll", + "lib/netstandard2.1/ClosedXML.Parser.xml" + ] + }, + "DocumentFormat.OpenXml/3.0.1": { + "sha512": "DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==", + "type": "package", + "path": "documentformat.openxml/3.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "documentformat.openxml.3.0.1.nupkg.sha512", + "documentformat.openxml.nuspec", + "icon.png", + "lib/net35/DocumentFormat.OpenXml.dll", + "lib/net35/DocumentFormat.OpenXml.xml", + "lib/net40/DocumentFormat.OpenXml.dll", + "lib/net40/DocumentFormat.OpenXml.xml", + "lib/net46/DocumentFormat.OpenXml.dll", + "lib/net46/DocumentFormat.OpenXml.xml", + "lib/net8.0/DocumentFormat.OpenXml.dll", + "lib/net8.0/DocumentFormat.OpenXml.xml", + "lib/netstandard2.0/DocumentFormat.OpenXml.dll", + "lib/netstandard2.0/DocumentFormat.OpenXml.xml" + ] + }, + "DocumentFormat.OpenXml.Framework/3.0.1": { + "sha512": "ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==", + "type": "package", + "path": "documentformat.openxml.framework/3.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "documentformat.openxml.framework.3.0.1.nupkg.sha512", + "documentformat.openxml.framework.nuspec", + "icon.png", + "lib/net35/DocumentFormat.OpenXml.Framework.dll", + "lib/net35/DocumentFormat.OpenXml.Framework.xml", + "lib/net40/DocumentFormat.OpenXml.Framework.dll", + "lib/net40/DocumentFormat.OpenXml.Framework.xml", + "lib/net46/DocumentFormat.OpenXml.Framework.dll", + "lib/net46/DocumentFormat.OpenXml.Framework.xml", + "lib/net6.0/DocumentFormat.OpenXml.Framework.dll", + "lib/net6.0/DocumentFormat.OpenXml.Framework.xml", + "lib/net8.0/DocumentFormat.OpenXml.Framework.dll", + "lib/net8.0/DocumentFormat.OpenXml.Framework.xml", + "lib/netstandard2.0/DocumentFormat.OpenXml.Framework.dll", + "lib/netstandard2.0/DocumentFormat.OpenXml.Framework.xml" + ] + }, + "ExcelNumberFormat/1.1.0": { + "sha512": "R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==", + "type": "package", + "path": "excelnumberformat/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "excelnumberformat.1.1.0.nupkg.sha512", + "excelnumberformat.nuspec", + "icon.png", + "lib/net20/ExcelNumberFormat.dll", + "lib/net20/ExcelNumberFormat.xml", + "lib/netstandard1.0/ExcelNumberFormat.dll", + "lib/netstandard1.0/ExcelNumberFormat.xml", + "lib/netstandard2.0/ExcelNumberFormat.dll", + "lib/netstandard2.0/ExcelNumberFormat.xml" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "sha512": "PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "sha512": "FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "sha512": "51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "sha512": "OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Npgsql/8.0.5": { + "sha512": "zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "type": "package", + "path": "npgsql/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net6.0/Npgsql.dll", + "lib/net6.0/Npgsql.xml", + "lib/net7.0/Npgsql.dll", + "lib/net7.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.xml", + "lib/netstandard2.1/Npgsql.dll", + "lib/netstandard2.1/Npgsql.xml", + "npgsql.8.0.5.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "sha512": "gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, + "RBush/3.2.0": { + "sha512": "ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==", + "type": "package", + "path": "rbush/3.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0/RBush.dll", + "lib/net6.0/RBush.xml", + "lib/netcoreapp3.1/RBush.dll", + "lib/netcoreapp3.1/RBush.xml", + "lib/netstandard1.2/RBush.dll", + "lib/netstandard1.2/RBush.xml", + "rbush.3.2.0.nupkg.sha512", + "rbush.nuspec", + "readme.md" + ] + }, + "SixLabors.Fonts/1.0.0": { + "sha512": "LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==", + "type": "package", + "path": "sixlabors.fonts/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netcoreapp3.1/SixLabors.Fonts.dll", + "lib/netcoreapp3.1/SixLabors.Fonts.xml", + "lib/netstandard2.0/SixLabors.Fonts.dll", + "lib/netstandard2.0/SixLabors.Fonts.xml", + "lib/netstandard2.1/SixLabors.Fonts.dll", + "lib/netstandard2.1/SixLabors.Fonts.xml", + "sixlabors.fonts.1.0.0.nupkg.sha512", + "sixlabors.fonts.128.png", + "sixlabors.fonts.nuspec" + ] + }, + "System.IO.Packaging/8.0.0": { + "sha512": "8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==", + "type": "package", + "path": "system.io.packaging/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Packaging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Packaging.targets", + "lib/net462/System.IO.Packaging.dll", + "lib/net462/System.IO.Packaging.xml", + "lib/net6.0/System.IO.Packaging.dll", + "lib/net6.0/System.IO.Packaging.xml", + "lib/net7.0/System.IO.Packaging.dll", + "lib/net7.0/System.IO.Packaging.xml", + "lib/net8.0/System.IO.Packaging.dll", + "lib/net8.0/System.IO.Packaging.xml", + "lib/netstandard2.0/System.IO.Packaging.dll", + "lib/netstandard2.0/System.IO.Packaging.xml", + "system.io.packaging.8.0.0.nupkg.sha512", + "system.io.packaging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "data/1.0.0": { + "type": "project", + "path": "../data/data.csproj", + "msbuildProject": "../data/data.csproj" + }, + "domain/1.0.0": { + "type": "project", + "path": "../domain/domain.csproj", + "msbuildProject": "../domain/domain.csproj" + }, + "ui/1.0.0": { + "type": "project", + "path": "../ui/ui.csproj", + "msbuildProject": "../ui/ui.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Microsoft.Extensions.DependencyInjection >= 8.0.1", + "data >= 1.0.0", + "domain >= 1.0.0", + "ui >= 1.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj", + "projectName": "console_ui", + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj", + "packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\", + "outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj" + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj" + }, + "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": { + "projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": { + "target": "Package", + "version": "[8.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/console_ui/obj/project.nuget.cache b/console_ui/obj/project.nuget.cache new file mode 100644 index 0000000..361c5bf --- /dev/null +++ b/console_ui/obj/project.nuget.cache @@ -0,0 +1,32 @@ +{ + "version": 2, + "dgSpecHash": "j6r9nD42EAM=", + "success": true, + "projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj", + "expectedPackageFiles": [ + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\closedxml\\0.104.1\\closedxml.0.104.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\documentformat.openxml\\3.0.1\\documentformat.openxml.3.0.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\documentformat.openxml.framework\\3.0.1\\documentformat.openxml.framework.3.0.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\excelnumberformat\\1.1.0\\excelnumberformat.1.1.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\rbush\\3.2.0\\rbush.3.2.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\sixlabors.fonts\\1.0.0\\sixlabors.fonts.1.0.0.nupkg.sha512", + "C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.io.packaging\\8.0.0\\system.io.packaging.8.0.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/data/Exceptions/GroupNotFoundException.cs b/data/Exceptions/GroupNotFoundException.cs new file mode 100644 index 0000000..0fb79a3 --- /dev/null +++ b/data/Exceptions/GroupNotFoundException.cs @@ -0,0 +1,11 @@ +namespace data.Exception +{ + // Конструктор исключения GroupNotFoundException. + // ID группы, которая не была найдена. + public class GroupNotFoundException : RepositoryException + { + public GroupNotFoundException(int groupId) + // Передаем сообщение об ошибке в базовый класс + : base($"Группа с ID {groupId} не найдена.") { } + } +} \ No newline at end of file diff --git a/data/Exceptions/RepositoryException.cs b/data/Exceptions/RepositoryException.cs new file mode 100644 index 0000000..cd657bc --- /dev/null +++ b/data/Exceptions/RepositoryException.cs @@ -0,0 +1,10 @@ +// Базовый класс для исключений, связанных с репозиторием. +namespace data.Exception +{ + // Конструктор класса RepositoryException. + public class RepositoryException : IOException + { + // Передаем сообщение об ошибке в базовый класс IOException + public RepositoryException(string message) : base(message) { } + } +} \ No newline at end of file diff --git a/data/Exceptions/UserNotFoundException.cs b/data/Exceptions/UserNotFoundException.cs new file mode 100644 index 0000000..c28d6ba --- /dev/null +++ b/data/Exceptions/UserNotFoundException.cs @@ -0,0 +1,10 @@ +// Конструктор, создающий исключение с сообщением об отсутствии пользователя. +namespace data.Exception +{ + public class UserNotFoundException : RepositoryException + { + // Передача сообщения в базовый класс исключения RepositoryException. + public UserNotFoundException(Guid userGuid) + : base($"Пользователь с GUID {userGuid} не найден.") { } + } +} diff --git a/data/LocalData/Entity/Group.cs b/data/LocalData/Entity/Group.cs new file mode 100644 index 0000000..00ca200 --- /dev/null +++ b/data/LocalData/Entity/Group.cs @@ -0,0 +1,10 @@ +// Пространство имен, содержащее модели домена. +namespace domain.Models +{ + // Представляет локальную сущность группы в доменной модели. + public class GroupLocalEntity + { + public required int Id { get; set; } // ID группы. + public required string Name { get; set; } // Название группы. + } +} diff --git a/data/LocalData/Entity/Presence.cs b/data/LocalData/Entity/Presence.cs new file mode 100644 index 0000000..3f48262 --- /dev/null +++ b/data/LocalData/Entity/Presence.cs @@ -0,0 +1,21 @@ +namespace domain.Models +{ + // Локальная сущность для учета посещаемости. + public class PresenceLocalEntity + { + // Уникальный идентификатор пользователя. + public Guid UserGuid { get; set; } + + // Идентификатор группы, к которой относится пользователь. + public int GroupId { get; set; } + + // Номер урока. + public int LessonNumber { get; set; } + + // Дата посещения. + public DateTime Date { get; set; } + + // Флаг, указывающий, присутствовал ли пользователь. + public bool IsAttedance { get; set; } + } +} \ No newline at end of file diff --git a/data/LocalData/Entity/User.cs b/data/LocalData/Entity/User.cs new file mode 100644 index 0000000..4eee2a3 --- /dev/null +++ b/data/LocalData/Entity/User.cs @@ -0,0 +1,18 @@ +namespace domain.Models +{ + // Представляет локальную сущность пользователя. + public class UserLocalEntity : IEquatable + { + // Уникальный идентификатор пользователя. + public Guid Guid { get; set; } + + // Полное имя пользователя. + public required string FIO { get; set; } + + // Идентификатор группы, к которой принадлежит пользователь. + public required int GroupID { get; set; } + + // Реализация сравнения для проверки равенства пользователей по их Guid + public bool Equals(UserLocalEntity? other) => other?.Guid == Guid; + } +} diff --git a/data/LocalData/LocalStaticData.cs b/data/LocalData/LocalStaticData.cs new file mode 100644 index 0000000..60577a1 --- /dev/null +++ b/data/LocalData/LocalStaticData.cs @@ -0,0 +1,30 @@ +using domain.Models; + +namespace data.LocalData +{ + // Класс, содержащий статические данные для локального использования. + public static class LocalStaticData + { + // Список групп + public static List groups => new List + { + new GroupLocalEntity{ Id = 1, Name = "ИП1-21" }, + new GroupLocalEntity{ Id = 2, Name = "ИП1-22" }, + new GroupLocalEntity{ Id = 3, Name = "ИП1-23" }, + }; + + // Список пользователей + public static List users => new List + { + new UserLocalEntity{Guid=Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "RandomFio", GroupID = 1 }, + new UserLocalEntity{Guid=Guid.Parse("8388d931-5bef-41be-a152-78f1aca980ed"), FIO = "RandomFio1", GroupID = 2 }, + new UserLocalEntity{Guid=Guid.Parse("ed174548-49ed-4503-a902-c970cbf27173"), FIO = "RandomFio2", GroupID = 3 }, + new UserLocalEntity{Guid=Guid.Parse("614c0a23-5bd5-43ae-b48e-d5750afbc282"), FIO = "RandomFio3", GroupID = 1 }, + new UserLocalEntity{Guid=Guid.Parse("efcc1473-c116-4244-b3f7-f2341a5c3003"), FIO = "RandomFio4", GroupID = 2 }, + new UserLocalEntity{Guid=Guid.Parse("60640fb3-ace2-4cad-81d5-a0a58bc2dbbd"), FIO = "RandomFio5", GroupID = 3 }, + }; + + // Список посещаемости (изначально пустой) + public static List presences => new List { }; + } +} diff --git a/data/RemoteData/DAO/Excel.cs b/data/RemoteData/DAO/Excel.cs new file mode 100644 index 0000000..d976ce2 --- /dev/null +++ b/data/RemoteData/DAO/Excel.cs @@ -0,0 +1,25 @@ +namespace data.RemoteData.DAO +{ + public class Excel // + { + // . + public Guid UserGuid { get; set; } + // . + public string FullName { get; set; } + + // . + public string UserName { get; set; } + + // . + public DateOnly Date { get; set; } + + // (true - , false - ). + public bool IsAttedance { get; set; } + + // . + public int LessonNumber { get; set; } + + // . + public string GroupName { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/data/RemoteData/DAO/Group.cs b/data/RemoteData/DAO/Group.cs new file mode 100644 index 0000000..ae1c099 --- /dev/null +++ b/data/RemoteData/DAO/Group.cs @@ -0,0 +1,15 @@ +namespace data.RemoteData.DAO +{ + //Представляет DAO для группы + public class GroupDao + { + // Идентификатор группы. + public int Id { get; set; } + + // Название группы. + public string Name { get; set; } = string.Empty; // Установка значения по умолчанию для предотвращения null + + // Коллекция пользователей, связанных с этой группой. + public virtual IEnumerable Users { get; set; } = new List(); // Установка пустой коллекции по умолчанию + } +} diff --git a/data/RemoteData/DAO/Presence.cs b/data/RemoteData/DAO/Presence.cs new file mode 100644 index 0000000..98f2136 --- /dev/null +++ b/data/RemoteData/DAO/Presence.cs @@ -0,0 +1,25 @@ +namespace data.RemoteData.DAO +{ + // Представляет DAO для учета посещаемости. + public class PresenceDao + { + // ID записи посещаемости. + public int Id { get; set; } + + // ID пользователя. + public Guid UserGuid { get; set; } + + // Флаг, указывающий, был ли пользователь на уроке (по умолчанию - присутствует). + public bool IsAttedance { get; set; } = true; + + // Дата урока. + public DateOnly Date { get; set; } + + // Номер урока. + public int LessonNumber { get; set; } + + // Связанный объект пользователя, если необходимо. + public virtual UserDao? UserDao { get; set; } = null; + } +} + diff --git a/data/RemoteData/DAO/User.cs b/data/RemoteData/DAO/User.cs new file mode 100644 index 0000000..2a0b759 --- /dev/null +++ b/data/RemoteData/DAO/User.cs @@ -0,0 +1,31 @@ +namespace data.RemoteData.DAO +{ + // Представляет DAO для пользователя. + public class UserDao + { + // ID пользователя. + public Guid Guid { get; set; } + + // Полное имя пользователя. + public string FIO { get; set; } = string.Empty; + + // Идентификатор группы, к которой принадлежит пользователь. + public int GroupID { get; set; } + + // Связанная группа пользователя + private GroupDao? _group; + public virtual GroupDao Group + { + get => _group ?? throw new InvalidOperationException("Group is not initialized."); + set => _group = value ?? throw new ArgumentNullException(nameof(Group), "Group cannot be null."); + } + + // Список посещаемости пользователя + private IEnumerable _presences = new List(); + public virtual IEnumerable Presences + { + get => _presences; + set => _presences = value ?? throw new ArgumentNullException(nameof(Presences), "Presences cannot be null."); + } + } +} \ No newline at end of file diff --git a/data/RemoteData/DAO/UserAttendance.cs b/data/RemoteData/DAO/UserAttendance.cs new file mode 100644 index 0000000..28c6b68 --- /dev/null +++ b/data/RemoteData/DAO/UserAttendance.cs @@ -0,0 +1,31 @@ +// Сводка посещаемости группы. +public class GroupPresenceSummary +{ + // Общее количество пользователей в группе. + public int UserCount { get; set; } + + // Общее количество уроков. + public int LessonCount { get; set; } + + // Общий процент посещаемости группы. + public double TotalAttendancePercentage { get; set; } + + // Список индивидуальных посещаемостей пользователей. + public List UserAttendances { get; set; } = new List(); +} + +// Посещаемость конкретного пользователя +public class UserAttendance +{ + // Уникальный идентификатор пользователя + public Guid UserGuid { get; set; } + + // Количество посещенных уроков + public double Attended { get; set; } + + // Количество пропущенных уроков + public double Missed { get; set; } + + // Процент посещаемости (посещенные/общее число уроков) + public double AttendanceRate { get; set; } +} diff --git a/data/RemoteData/RemoteDatabaseContext.cs b/data/RemoteData/RemoteDatabaseContext.cs new file mode 100644 index 0000000..929bc75 --- /dev/null +++ b/data/RemoteData/RemoteDatabaseContext.cs @@ -0,0 +1,43 @@ +using data.RemoteData.DAO; +using Microsoft.EntityFrameworkCore; + +namespace data.RemoteData +{ + public class RemoteDatabaseContext : DbContext + { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseNpgsql("Host=45.67.56.214;Port=5421;Username=user11;Database=user11;Password=JSZHJyg1"); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + // Настройка ключа и автоматической генерации для GroupDao + modelBuilder.Entity().HasKey(group => group.Id); + modelBuilder.Entity().Property(group => group.Id).ValueGeneratedOnAdd(); + + // Настройка ключа и автоматической генерации для UserDao + modelBuilder.Entity().HasKey(user => user.Guid); + modelBuilder.Entity().Property(user => user.Guid).ValueGeneratedOnAdd(); + + // Настройка составного ключа для PresenceDao + modelBuilder.Entity().HasKey(presense => new + { + presense.Id + + }); + + + // Настройка связи UserDao с PresenceDao + modelBuilder.Entity() + .Property(presence => presence.Id) + .ValueGeneratedOnAdd(); + modelBuilder.Entity().HasOne(presence => presence.UserDao).WithMany(user => user.Presences).HasForeignKey(presence => presence.UserGuid); + + } + + public DbSet Groups { get; set; } + public DbSet Users { get; set; } + public DbSet PresenceDaos { get; set; } + } +} diff --git a/data/Repository/GroupRepositoryImpl.cs b/data/Repository/GroupRepositoryImpl.cs new file mode 100644 index 0000000..ab5db7b --- /dev/null +++ b/data/Repository/GroupRepositoryImpl.cs @@ -0,0 +1,65 @@ +using data.Exception; +using data.LocalData; +using data.RemoteData.DAO; +using data.Repository; +using domain.Models; +using System.Collections.Generic; +using System.Linq; + +// Реализация репозитория для работы с группами. +public class GroupRepositoryImpl : IGroupRepository +{ + // Локальный список групп, загружаемый из статических данных. + private List _groups = LocalStaticData.groups; + + // Метод для получения группы по идентификатору. + public GroupLocalEntity? GetGroupById(int groupId) + { + // Возвращает группу с указанным идентификатором или null, если такая группа не найдена. + return _groups.FirstOrDefault(g => g.Id == groupId); + } + + // Метод для получения всех групп. + public List GetAllGroup() => _groups; + + // Метод для добавления новой группы. + public bool AddGroup(GroupLocalEntity group) + { + // Проверяет, существует ли уже группа с таким идентификатором. + if (_groups.Any(g => g.Id == group.Id)) + return false; // Возвращает false, если группа уже существует. + + // Устанавливает новый идентификатор для группы. + group.Id = _groups.Any() ? _groups.Max(g => g.Id) + 1 : 1; + + // Добавляет группу в список. + _groups.Add(group); + return true; // Возвращает true, если группа успешно добавлена. + } + + // Метод для обновления существующей группы. + public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) + { + // Ищет существующую группу по ID. + var existingGroup = GetGroupById(groupID); + if (existingGroup == null) + return false; // Возвращает false, если группа не найдена. + + // Обновляет название группы. + existingGroup.Name = updatedGroup.Name; + return true; // Возвращает true, если обновление успешно. + } + + // Метод для удаления группы по ID. + public bool RemoveGroupById(int groupID) + { + // Ищет существующую группу по ID. + var existingGroup = GetGroupById(groupID); + if (existingGroup == null) + return false; // Возвращает false, если группа не найдена. + + // Удаляет найденную группу из списка. + _groups.Remove(existingGroup); + return true; // Возвращает true, если удаление успешно. + } +} diff --git a/data/Repository/IGroupRepository.cs b/data/Repository/IGroupRepository.cs new file mode 100644 index 0000000..884a7eb --- /dev/null +++ b/data/Repository/IGroupRepository.cs @@ -0,0 +1,23 @@ +using domain.Models; + +namespace data.Repository +{ + // Интерфейс для репозитория работы с группами. + public interface IGroupRepository + { + // Метод для получения группы по идентификатору. + GroupLocalEntity GetGroupById(int groupID); + + // Метод для получения всех групп. + List GetAllGroup(); + + // Метод для добавления новой группы. + bool AddGroup(GroupLocalEntity newGroup); + + // Метод для обновления группы по идентификатору. + bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup); + + // Метод для удаления группы по идентификатору. + bool RemoveGroupById(int groupID); + } +} diff --git a/data/Repository/IPresenceRepository.cs b/data/Repository/IPresenceRepository.cs new file mode 100644 index 0000000..e5fb1cd --- /dev/null +++ b/data/Repository/IPresenceRepository.cs @@ -0,0 +1,37 @@ +using data.RemoteData.DAO; +using domain.Models; +using System.Collections.Generic; + +namespace data.Repository +{ + // Интерфейс для репозитория работы с посещаемостью. + public interface IPresenceRepository + { + // Метод для добавления записи о посещении. + void AddPresence(PresenceLocalEntity presence); + + // Метод для получения общей посещаемости группы. + public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId); + + // Метод для получения посещаемости по группе. + List GetPresenceByGroup(int groupId); + + // Метод для получения посещаемости группы в виде DAO объектов. + List GetAttendanceByGroup(int groupId); + + // Метод для получения посещаемости по группе и дате. + List GetPresenceByGroupAndDate(int groupId, DateTime date); + + // Метод для получения последней даты посещаемости для группы. + DateOnly? GetLastDateByGroupId(int groupId); + + // Метод для сохранения посещаемости для группы. + void SavePresence(List presences); + + // Метод для обновления посещаемости для пользователя в указанном интервале уроков. + bool UpdateAttention(Guid UserGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance); + + // Метод для пометки пользователя как отсутствующего в указанные уроки. + void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber); + } +} diff --git a/data/Repository/IUserRepository.cs b/data/Repository/IUserRepository.cs new file mode 100644 index 0000000..4e1273d --- /dev/null +++ b/data/Repository/IUserRepository.cs @@ -0,0 +1,21 @@ +using data.RemoteData.DAO; +using domain.Models; + +namespace data.Repository +{ + // Интерфейс для репозитория работы с пользователями. + public interface IUserRepository + { + // Свойство для получения всех пользователей. + IEnumerable GetAllUsers { get; } + + // Метод для удаления пользователя по GUID. + bool RemoveUserByGuid(Guid userGuid); + + // Метод для обновления данных пользователя. + UserLocalEntity? UpdateUser(UserLocalEntity user); + + // Метод для получения списка пользователей в виде объектов UserDao (только их имена). + List GetUserNames(); + } +} diff --git a/data/Repository/PresenceRepositoryImpl.cs b/data/Repository/PresenceRepositoryImpl.cs new file mode 100644 index 0000000..5596580 --- /dev/null +++ b/data/Repository/PresenceRepositoryImpl.cs @@ -0,0 +1,72 @@ +using data.RemoteData.DAO; +using domain.Models; + +namespace data.Repository +{ + public class PresenceRepositoryImpl + { + // Коллекция для хранения данных о посещаемости. + private readonly List _presences = new List(); + + // Метод для сохранения списка посещаемости. + public void SavePresence(List presences) + { + foreach (var presence in presences) + { + // Проверяем, существует ли уже запись о посещении для этого пользователя, урока и даты. + var existing = _presences.FirstOrDefault(p => + p.Date == presence.Date && + p.UserGuid == presence.UserGuid && + p.LessonNumber == presence.LessonNumber); + + if (existing == null) + { + // Если записи нет, добавляем новую. + _presences.Add(presence); + } + else + { + // Если запись уже существует, обновляем информацию о посещении. + existing.IsAttedance = presence.IsAttedance; + } + } + } + + // Метод для добавления нового присутствия. + public void AddPresence(PresenceLocalEntity presence) + { + // Если передан null, выбрасываем исключение. + if (presence == null) throw new ArgumentNullException(nameof(presence)); + + // Добавляем новое присутствие в коллекцию. + _presences.Add(presence); + } + + // Метод для получения списка посещаемости по группе. + public List GetPresenceByGroup(int groupId) + { + return _presences.Where(p => p.GroupId == groupId).ToList(); + } + + // Метод для получения посещаемости по группе и дате. + public List GetPresenceByGroupAndDate(int groupId, DateTime date) + { + return _presences.Where(p => p.GroupId == groupId && p.Date.Date == date.Date).ToList(); + } + + // Метод для пометки пользователя как отсутствующего на определённом интервале уроков. + public void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber) + { + foreach (var lesson in Enumerable.Range(firstLessonNumber, lastLessonNumber - firstLessonNumber + 1)) + { + // Находим присутствие для данного пользователя и урока. + var presence = _presences.FirstOrDefault(p => p.UserGuid == userGuid && p.LessonNumber == lesson); + if (presence != null) + { + // Если присутствие найдено, помечаем пользователя как отсутствующего. + presence.IsAttedance = false; + } + } + } + } +} diff --git a/data/Repository/SQLGroupRepositoryImpl.cs b/data/Repository/SQLGroupRepositoryImpl.cs new file mode 100644 index 0000000..26fba0a --- /dev/null +++ b/data/Repository/SQLGroupRepositoryImpl.cs @@ -0,0 +1,68 @@ +using data.Exception; +using data.LocalData; +using data.RemoteData; +using data.RemoteData.DAO; +using data.Repository; +using domain.Models; +using System.Collections.Generic; + +public class SQLGroupRepositoryImpl : IGroupRepository +{ + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + + public GroupLocalEntity? GetGroupById(int groupId) + { + var groupDao = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupId); + return groupDao != null ? new GroupLocalEntity { Id = groupDao.Id, Name = groupDao.Name } : null; + } + + + public List GetAllGroup() + { + return _remoteDatabaseContext.Groups + .Select(g => new GroupLocalEntity { Id = g.Id, Name = g.Name }) + .ToList(); + } + + + public bool AddGroup(GroupLocalEntity group) + { + if (_remoteDatabaseContext.Groups.Any(g => g.Id == group.Id)) + return false; + + var groupDao = new GroupDao { Id = group.Id, Name = group.Name }; + _remoteDatabaseContext.Groups.Add(groupDao); + _remoteDatabaseContext.SaveChanges(); + return true; + } + + + public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) + { + var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID); + if (existingGroup == null) + return false; + + existingGroup.Name = updatedGroup.Name; + _remoteDatabaseContext.SaveChanges(); + return true; + } + + + public bool RemoveGroupById(int groupID) + { + var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID); + if (existingGroup == null) + return false; + + _remoteDatabaseContext.Groups.Remove(existingGroup); + _remoteDatabaseContext.SaveChanges(); + return true; + } +} diff --git a/data/Repository/SQLPresenceRepositoryImpl.cs b/data/Repository/SQLPresenceRepositoryImpl.cs new file mode 100644 index 0000000..32953b0 --- /dev/null +++ b/data/Repository/SQLPresenceRepositoryImpl.cs @@ -0,0 +1,190 @@ +using data.RemoteData; +using data.RemoteData.DAO; +using domain.Models; +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; + +namespace data.Repository +{ + public class SQLPresenceRepositoryImpl : IPresenceRepository + { + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + public void SavePresence(List presences) + { + foreach (var presence in presences) + { + var existing = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p => + p.Date == DateOnly.FromDateTime(presence.Date) && + p.UserGuid == presence.UserGuid && + p.LessonNumber == presence.LessonNumber); + + if (existing == null) + { + _remoteDatabaseContext.PresenceDaos.Add(new PresenceDao + { + Date = DateOnly.FromDateTime(presence.Date), + IsAttedance = presence.IsAttedance, + LessonNumber = presence.LessonNumber, + UserGuid = presence.UserGuid + }); + } + else + { + existing.IsAttedance = presence.IsAttedance; + } + } + _remoteDatabaseContext.SaveChanges(); // Фиксация изменений + } + + public void AddPresence(PresenceLocalEntity presence) + { + if (presence == null) throw new ArgumentNullException(nameof(presence)); + + var newPresence = new PresenceDao + { + Date = DateOnly.FromDateTime(presence.Date), + UserGuid = presence.UserGuid, + LessonNumber = presence.LessonNumber, + IsAttedance = presence.IsAttedance + }; + _remoteDatabaseContext.PresenceDaos.Add(newPresence); + _remoteDatabaseContext.SaveChanges(); // Сохраняем изменения + } + + public List GetPresenceByGroup(int groupId) + { + return _remoteDatabaseContext.PresenceDaos + .Include(p => p.UserDao) + .Where(p => p.UserDao != null && p.UserDao.GroupID == groupId) + .Select(p => new PresenceLocalEntity + { + Date = p.Date.ToDateTime(TimeOnly.MinValue), + UserGuid = p.UserGuid, + LessonNumber = p.LessonNumber, + IsAttedance = p.IsAttedance + }) + .ToList(); + } + + public List GetPresenceByGroupAndDate(int groupId, DateTime date) + { + return _remoteDatabaseContext.PresenceDaos + .Include(p => p.UserDao) + .Where(p => p.UserDao != null && p.UserDao.GroupID == groupId && p.Date == DateOnly.FromDateTime(date)) + .Select(p => new PresenceLocalEntity + { + Date = p.Date.ToDateTime(TimeOnly.MinValue), + UserGuid = p.UserGuid, + LessonNumber = p.LessonNumber, + IsAttedance = p.IsAttedance + }) + .ToList(); + } + + public void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber) + { + var presences = _remoteDatabaseContext.PresenceDaos + .Where(p => p.UserGuid == userGuid && p.LessonNumber >= firstLessonNumber && p.LessonNumber <= lastLessonNumber) + .ToList(); + + foreach (var presence in presences) + { + presence.IsAttedance = false; + } + _remoteDatabaseContext.SaveChanges(); // Фиксация изменений + } + + public DateOnly? GetLastDateByGroupId(int groupId) + { + var lastDate = _remoteDatabaseContext.PresenceDaos + .Where(p => p.UserDao != null && p.UserDao.GroupID == groupId) + .OrderByDescending(p => p.Date) + .Select(p => p.Date) + .FirstOrDefault(); + + return lastDate == default ? (DateOnly?)null : lastDate; + } + + public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId) + { + var presences = _remoteDatabaseContext.PresenceDaos + .Where(p => p.UserDao != null && p.UserDao.GroupID == groupId) + .ToList(); + + var distinctLessons = presences + .Select(p => new { p.Date, p.LessonNumber }) + .Distinct() + .Count(); + + var userGuids = presences.Select(p => p.UserGuid).Distinct().ToList(); + + double totalAttendance = presences.Count(p => p.IsAttedance); + double totalPossibleAttendance = userGuids.Count * distinctLessons; + + var userAttendances = userGuids.Select(userGuid => + { + var userPresences = presences.Where(p => p.UserGuid == userGuid).ToList(); + double attended = userPresences.Count(p => p.IsAttedance); + double missed = userPresences.Count(p => !p.IsAttedance); + + return new UserAttendance + { + UserGuid = userGuid, + Attended = attended, + Missed = missed, + AttendanceRate = attended + missed > 0 + ? (attended / (attended + missed)) * 100 + : 0 + }; + }).ToList(); + + return new GroupPresenceSummary + { + UserCount = userGuids.Count, + LessonCount = distinctLessons, + TotalAttendancePercentage = totalPossibleAttendance > 0 + ? (totalAttendance / totalPossibleAttendance) * 100 + : 0, + UserAttendances = userAttendances + }; + } + + public bool UpdateAttention(Guid userGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance) + { + var presences = _remoteDatabaseContext.PresenceDaos + .Where(p => p.UserGuid == userGuid && + p.UserDao != null && + p.UserDao.GroupID == groupId && + p.LessonNumber >= firstLesson && + p.LessonNumber <= lastLesson && + p.Date == date) + .ToList(); + + if (presences.Any()) + { + foreach (var presence in presences) + { + presence.IsAttedance = isAttendance; + } + _remoteDatabaseContext.SaveChanges(); + return true; + } + return false; + } + + public List GetAttendanceByGroup(int groupId) + { + return _remoteDatabaseContext.PresenceDaos + .Include(p => p.UserDao) + .Where(p => p.UserDao != null && p.UserDao.GroupID == groupId) + .ToList(); + } + } +} diff --git a/data/Repository/SQLUserRepositoryImpl.cs b/data/Repository/SQLUserRepositoryImpl.cs new file mode 100644 index 0000000..1357076 --- /dev/null +++ b/data/Repository/SQLUserRepositoryImpl.cs @@ -0,0 +1,94 @@ +using data.Exception; +using data.RemoteData; +using data.RemoteData.DAO; +using domain.Models; +using System.Collections.Generic; +using System.Linq; + +namespace data.Repository +{ + public class SQLUserRepositoryImpl : IUserRepository + { + // Контекст базы данных для удаленного доступа + private readonly RemoteDatabaseContext _remoteDatabaseContext; + + // Конструктор, принимающий контекст базы данных + public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) + { + _remoteDatabaseContext = remoteDatabaseContext; + } + + // Получить список всех пользователей как локальные сущности. + public IEnumerable GetAllUsers => _remoteDatabaseContext.Users + .Select(u => new UserLocalEntity + { + Guid = u.Guid, // Уникальный идентификатор пользователя. + FIO = u.FIO, // Полное имя пользователя. + GroupID = u.GroupID // Идентификатор группы пользователя. + }) + .ToList(); // Преобразуем в список для удобства работы. + + // Удалить пользователя по его GUID. + // Уникальный идентификатор пользователя. + // True, если пользователь успешно удален. + // Исключение, если пользователь не найден. + public bool RemoveUserByGuid(Guid userGuid) + { + // Находим пользователя по его GUID + var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == userGuid); + if (user == null) + throw new UserNotFoundException(userGuid); // Если пользователь не найден, выбрасываем исключение. + + // Удаляем пользователя из базы данных. + _remoteDatabaseContext.Users.Remove(user); + + // Сохраняем изменения в базе данных. + _remoteDatabaseContext.SaveChanges(); + + // Возвращаем true, если удаление успешно. + return true; + } + + // Обновить данные пользователя. + // Объект с обновленными данными пользователя. + // Обновленный объект UserLocalEntity. + public UserLocalEntity? UpdateUser(UserLocalEntity user) + { + // Находим существующего пользователя по GUID + var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == user.Guid); + if (existingUser == null) + throw new UserNotFoundException(user.Guid); // Если пользователь не найден, выбрасываем исключение + + // Обновляем данные пользователя. + existingUser.FIO = user.FIO; // Обновляем имя. + existingUser.GroupID = user.GroupID; // Обновляем группу. + + // Сохраняем изменения в базе данных + _remoteDatabaseContext.SaveChanges(); + + // Возвращаем обновленные данные пользователя + return new UserLocalEntity + { + Guid = existingUser.Guid, + FIO = existingUser.FIO, + GroupID = existingUser.GroupID + }; + } + + // Получить всех пользователей как DAO-объекты + public IEnumerable GetAllUsersDao => _remoteDatabaseContext.Users.ToList(); + + // Получить список пользователей с их именами и GUID. + // Список объектов UserDao с GUID и именами пользователей. + public List GetUserNames() + { + return _remoteDatabaseContext.Users + .Select(u => new UserDao + { + Guid = u.Guid, // Уникальный идентификатор пользователя. + FIO = u.FIO // Полное имя пользователя. + }) + .ToList(); // Преобразуем в список. + } + } +} diff --git a/data/Repository/UserRepositoryImpl.cs b/data/Repository/UserRepositoryImpl.cs new file mode 100644 index 0000000..74ea0a2 --- /dev/null +++ b/data/Repository/UserRepositoryImpl.cs @@ -0,0 +1,58 @@ +using data.Exception; +using data.LocalData; +using data.RemoteData.DAO; +using domain.Models; +using System.Collections.Generic; +using System.Linq; + +namespace data.Repository +{ + public class UserRepositoryImpl : IUserRepository + { + private readonly List _users = LocalStaticData.users; // Локальный список пользователей + + // Получить всех пользователей + public IEnumerable GetAllUsers => _users; + + // Удалить пользователя по GUID + // Уникальный идентификатор пользователя + // True, если пользователь удален + // Исключение, если пользователь не найден + public bool RemoveUserByGuid(Guid userGuid) + { + var user = _users.FirstOrDefault(u => u.Guid == userGuid); + if (user == null) + throw new UserNotFoundException(userGuid); // Если пользователь не найден, выбрасываем исключение + + _users.Remove(user); // Удаляем пользователя + return true; // Возвращаем true, если удаление успешно + } + + // Обновить данные пользователя + // Объект с новыми данными + // Обновленный пользователь + // Исключение, если пользователь не найден + public UserLocalEntity UpdateUser(UserLocalEntity user) + { + var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid); + if (existingUser == null) + throw new UserNotFoundException(user.Guid); // Если пользователь не найден, выбрасываем исключение + + existingUser.FIO = user.FIO; // Обновляем имя пользователя + existingUser.GroupID = user.GroupID; // Обновляем группу пользователя + + return existingUser; // Возвращаем обновленного пользователя + } + + // Получить список пользователей с их GUID и именами + // Список объектов UserDao + public List GetUserNames() + { + return _users.Select(u => new UserDao + { + Guid = u.Guid, // Уникальный идентификатор пользователя + FIO = u.FIO // Полное имя пользователя + }).ToList(); + } + } +} diff --git a/data/bin/Debug/net8.0/data.deps.json b/data/bin/Debug/net8.0/data.deps.json new file mode 100644 index 0000000..fe754d7 --- /dev/null +++ b/data/bin/Debug/net8.0/data.deps.json @@ -0,0 +1,818 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "data/1.0.0": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Design": "8.0.10", + "Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10" + }, + "runtime": { + "data.dll": {} + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": {}, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "4.5.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "4.5.0", + "Microsoft.CodeAnalysis.Common": "4.5.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "4.5.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "4.5.0", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "6.0.3", + "System.Threading.Channels": "6.0.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.10", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "8.0.10.0", + "fileVersion": "8.0.1024.46708" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "8.0.10.0", + "fileVersion": "8.0.1024.46708" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": {}, + "Microsoft.EntityFrameworkCore.Design/8.0.10": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "8.0.10.0", + "fileVersion": "8.0.1024.46708" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "8.0.10.0", + "fileVersion": "8.0.1024.46708" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "8.0.0.2", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.224.6711" + } + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Mono.TextTemplating/2.2.1": { + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.1.1" + } + } + }, + "Npgsql/8.0.5": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Npgsql.dll": { + "assemblyVersion": "8.0.5.0", + "fileVersion": "8.0.5.0" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.10", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.10", + "Microsoft.EntityFrameworkCore.Relational": "8.0.10", + "Npgsql": "8.0.5" + }, + "runtime": { + "lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "assemblyVersion": "8.0.10.0", + "fileVersion": "8.0.10.0" + } + } + }, + "System.CodeDom/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Collections.Immutable/6.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Composition/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + } + }, + "System.Composition.AttributedModel/6.0.0": { + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Convention/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Hosting/6.0.0": { + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Runtime/6.0.0": { + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.TypedParts/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.IO.Pipelines/6.0.3": { + "runtime": { + "lib/net6.0/System.IO.Pipelines.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.522.21309" + } + } + }, + "System.Reflection.Metadata/6.0.1": { + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, + "System.Text.Encoding.CodePages/6.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Threading.Channels/6.0.0": {} + } + }, + "libraries": { + "data/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "path": "microsoft.bcl.asyncinterfaces/6.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hashPath": "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "path": "microsoft.codeanalysis.common/4.5.0", + "hashPath": "microsoft.codeanalysis.common.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "hashPath": "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==", + "path": "microsoft.entityframeworkcore/8.0.10", + "hashPath": "microsoft.entityframeworkcore.8.0.10.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==", + "path": "microsoft.entityframeworkcore.abstractions/8.0.10", + "hashPath": "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==", + "path": "microsoft.entityframeworkcore.analyzers/8.0.10", + "hashPath": "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uGNjfKvAsql2KHRqxlK5wHo8mMC60G/FecrFKEjJgeIxtUAbSXGOgKGw/gD9flO5Fzzt1C7uxfIcr6ZsMmFkeg==", + "path": "microsoft.entityframeworkcore.design/8.0.10", + "hashPath": "microsoft.entityframeworkcore.design.8.0.10.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==", + "path": "microsoft.entityframeworkcore.relational/8.0.10", + "hashPath": "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "hashPath": "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "path": "microsoft.extensions.caching.memory/8.0.1", + "hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "hashPath": "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "path": "microsoft.extensions.logging/8.0.1", + "hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "path": "microsoft.extensions.options/8.0.2", + "hashPath": "microsoft.extensions.options.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "path": "microsoft.extensions.primitives/8.0.0", + "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512" + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "path": "mono.texttemplating/2.2.1", + "hashPath": "mono.texttemplating.2.2.1.nupkg.sha512" + }, + "Npgsql/8.0.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==", + "path": "npgsql/8.0.5", + "hashPath": "npgsql.8.0.5.nupkg.sha512" + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==", + "path": "npgsql.entityframeworkcore.postgresql/8.0.10", + "hashPath": "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512" + }, + "System.CodeDom/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "path": "system.codedom/4.4.0", + "hashPath": "system.codedom.4.4.0.nupkg.sha512" + }, + "System.Collections.Immutable/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "path": "system.collections.immutable/6.0.0", + "hashPath": "system.collections.immutable.6.0.0.nupkg.sha512" + }, + "System.Composition/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "path": "system.composition/6.0.0", + "hashPath": "system.composition.6.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "path": "system.composition.attributedmodel/6.0.0", + "hashPath": "system.composition.attributedmodel.6.0.0.nupkg.sha512" + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "path": "system.composition.convention/6.0.0", + "hashPath": "system.composition.convention.6.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "path": "system.composition.hosting/6.0.0", + "hashPath": "system.composition.hosting.6.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "path": "system.composition.runtime/6.0.0", + "hashPath": "system.composition.runtime.6.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "path": "system.composition.typedparts/6.0.0", + "hashPath": "system.composition.typedparts.6.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/6.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", + "path": "system.io.pipelines/6.0.3", + "hashPath": "system.io.pipelines.6.0.3.nupkg.sha512" + }, + "System.Reflection.Metadata/6.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "path": "system.reflection.metadata/6.0.1", + "hashPath": "system.reflection.metadata.6.0.1.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "path": "system.text.encoding.codepages/6.0.0", + "hashPath": "system.text.encoding.codepages.6.0.0.nupkg.sha512" + }, + "System.Threading.Channels/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "path": "system.threading.channels/6.0.0", + "hashPath": "system.threading.channels.6.0.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/data/bin/Debug/net8.0/data.dll b/data/bin/Debug/net8.0/data.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a641aed69f97f902ba31eca9a161e4a4d8a171b GIT binary patch literal 34816 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