Compare commits

...

2 Commits

Author SHA1 Message Date
e6fed543da add ui 2024-11-19 17:24:26 +03:00
1bb72eb0a9 add console_ui 2024-11-18 14:25:55 +03:00
104 changed files with 3581 additions and 58 deletions

View File

@ -1,2 +1,28 @@
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
using data.RemoteData;
using data.Repository;
using domain.UseCase;
using ui;
using Microsoft.Extensions.DependencyInjection;
IServiceCollection services = new ServiceCollection();
services.AddDbContext<RemoteDatabaseContext>();
// Добавление репозиториев
services.AddSingleton<IGroupRepository, SQLGroupRepositoryImpl>();
services.AddSingleton<IUserRepository, SQLUserRepositoryImpl>();
services.AddSingleton<IPresenceRepository, SQLPresenceRepositoryImpl>();
// Добавление бизнес-логики (UseCase)
services.AddSingleton<UserUseCase>();
services.AddSingleton<GroupUseCase>();
services.AddSingleton<UseCaseGeneratePresence>();
// Добавление пользовательских интерфейсов
services.AddSingleton<GroupConsole>();
services.AddSingleton<PresenceConsole>();
services.AddSingleton<MainMenuUI>();
var serviceProvider = services.BuildServiceProvider();
MainMenuUI mainMenuUI = serviceProvider.GetService<MainMenuUI>();
mainMenuUI.DisplayMenu();

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,478 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"console_ui/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"data": "1.0.0",
"domain": "1.0.0",
"ui": "1.0.0"
},
"runtime": {
"console_ui.dll": {}
}
},
"ClosedXML/0.104.1": {
"dependencies": {
"ClosedXML.Parser": "1.2.0",
"DocumentFormat.OpenXml": "3.0.1",
"ExcelNumberFormat": "1.1.0",
"RBush": "3.2.0",
"SixLabors.Fonts": "1.0.0",
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/netstandard2.1/ClosedXML.dll": {
"assemblyVersion": "0.104.1.0",
"fileVersion": "0.104.1.0"
}
}
},
"ClosedXML.Parser/1.2.0": {
"runtime": {
"lib/netstandard2.1/ClosedXML.Parser.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"DocumentFormat.OpenXml/3.0.1": {
"dependencies": {
"DocumentFormat.OpenXml.Framework": "3.0.1"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"dependencies": {
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.Framework.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"ExcelNumberFormat/1.1.0": {
"runtime": {
"lib/netstandard2.0/ExcelNumberFormat.dll": {
"assemblyVersion": "1.1.0.0",
"fileVersion": "1.1.0.0"
}
}
},
"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.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.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"
}
}
},
"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"
}
}
},
"RBush/3.2.0": {
"runtime": {
"lib/net6.0/RBush.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.0.0"
}
}
},
"SixLabors.Fonts/1.0.0": {
"runtime": {
"lib/netcoreapp3.1/SixLabors.Fonts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"System.IO.Packaging/8.0.0": {
"runtime": {
"lib/net8.0/System.IO.Packaging.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"data/1.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10"
},
"runtime": {
"data.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"domain/1.0.0": {
"dependencies": {
"ClosedXML": "0.104.1",
"data": "1.0.0"
},
"runtime": {
"domain.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"ui/1.0.0": {
"dependencies": {
"domain": "1.0.0"
},
"runtime": {
"ui.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"console_ui/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ClosedXML/0.104.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==",
"path": "closedxml/0.104.1",
"hashPath": "closedxml.0.104.1.nupkg.sha512"
},
"ClosedXML.Parser/1.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==",
"path": "closedxml.parser/1.2.0",
"hashPath": "closedxml.parser.1.2.0.nupkg.sha512"
},
"DocumentFormat.OpenXml/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==",
"path": "documentformat.openxml/3.0.1",
"hashPath": "documentformat.openxml.3.0.1.nupkg.sha512"
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==",
"path": "documentformat.openxml.framework/3.0.1",
"hashPath": "documentformat.openxml.framework.3.0.1.nupkg.sha512"
},
"ExcelNumberFormat/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==",
"path": "excelnumberformat/1.1.0",
"hashPath": "excelnumberformat.1.1.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.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.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"
},
"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"
},
"RBush/3.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==",
"path": "rbush/3.2.0",
"hashPath": "rbush.3.2.0.nupkg.sha512"
},
"SixLabors.Fonts/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==",
"path": "sixlabors.fonts/1.0.0",
"hashPath": "sixlabors.fonts.1.0.0.nupkg.sha512"
},
"System.IO.Packaging/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==",
"path": "system.io.packaging/8.0.0",
"hashPath": "system.io.packaging.8.0.0.nupkg.sha512"
},
"data/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"domain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ui/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,13 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ 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.AssemblyInformationalVersionAttribute("1.0.0+1bb72eb0a97c4bf75297365376fe5d5b70ef8d7a")]
[assembly: System.Reflection.AssemblyProductAttribute("console_ui")]
[assembly: System.Reflection.AssemblyTitleAttribute("console_ui")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
ba882f03fdfa9546ef7659464bc47e4a0ca2d53498595f377280140f0c41eed4
572d74c7554884e6abe2469c805f2479acd9c67997fd96b54125e12b2984640b

View File

@ -8,6 +8,6 @@ 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.ProjectDir = C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -0,0 +1 @@
4aa8a5b46e68e09496d6c8b0328d1abed0a2759a38ae9ea15c97f8bdf1bda0f6

View File

@ -0,0 +1,44 @@
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\console_ui.exe
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\console_ui.deps.json
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\console_ui.runtimeconfig.json
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\console_ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\console_ui.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\ClosedXML.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\ClosedXML.Parser.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\DocumentFormat.OpenXml.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\DocumentFormat.OpenXml.Framework.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\ExcelNumberFormat.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Abstractions.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Relational.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Caching.Abstractions.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Caching.Memory.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Configuration.Abstractions.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Logging.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Logging.Abstractions.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Options.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Microsoft.Extensions.Primitives.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Npgsql.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\RBush.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\SixLabors.Fonts.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\System.IO.Packaging.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\domain.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\domain.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\data.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\bin\Debug\net8.0\ui.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.csproj.AssemblyReference.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.AssemblyInfoInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.AssemblyInfo.cs
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.csproj.CoreCompileInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.csproj.Up2Date
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\refint\console_ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\console_ui.genruntimeconfig.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\console_ui\obj\Debug\net8.0\ref\console_ui.dll

Binary file not shown.

View File

@ -0,0 +1 @@
c4d52f4fa1d43e7a24894cd0585d497bd2fecdede55abf16a83de16db7a7a8b2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj": {}
"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": {
"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",
"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",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\console_ui\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -28,14 +28,14 @@
"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\\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\\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"
"C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.csproj"
}
}
}
@ -80,14 +80,14 @@
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"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",
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -156,14 +156,14 @@
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": {
"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",
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -180,8 +180,8 @@
"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\\data\\data.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj"
}
}
}
@ -226,14 +226,14 @@
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": {
"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",
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.csproj",
"projectName": "ui",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -250,8 +250,8 @@
"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"
"C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\domain\\domain.csproj"
}
}
}

View File

@ -1063,11 +1063,11 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj",
"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",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\console_ui\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
@ -1084,14 +1084,14 @@
"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\\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\\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"
"C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.csproj"
}
}
}

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "j6r9nD42EAM=",
"dgSpecHash": "YVTC3fJYmJ8=",
"success": true,
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj",
"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",

View File

@ -0,0 +1,126 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using data.RemoteData;
#nullable disable
namespace data.Migrations
{
[DbContext(typeof(RemoteDatabaseContext))]
[Migration("20241118111253_InitialCrete")]
partial class InitialCrete
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("data.RemoteData.DAO.GroupDao", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Groups");
});
modelBuilder.Entity("data.RemoteData.DAO.PresenceDao", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateOnly>("Date")
.HasColumnType("date");
b.Property<bool>("IsAttedance")
.HasColumnType("boolean");
b.Property<int>("LessonNumber")
.HasColumnType("integer");
b.Property<Guid>("UserGuid")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserGuid");
b.ToTable("PresenceDaos");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.Property<Guid>("Guid")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("FIO")
.IsRequired()
.HasColumnType("text");
b.Property<int>("GroupID")
.HasColumnType("integer");
b.HasKey("Guid");
b.HasIndex("GroupID");
b.ToTable("Users");
});
modelBuilder.Entity("data.RemoteData.DAO.PresenceDao", b =>
{
b.HasOne("data.RemoteData.DAO.UserDao", "UserDao")
.WithMany("Presences")
.HasForeignKey("UserGuid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("UserDao");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.HasOne("data.RemoteData.DAO.GroupDao", "Group")
.WithMany("Users")
.HasForeignKey("GroupID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
});
modelBuilder.Entity("data.RemoteData.DAO.GroupDao", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.Navigation("Presences");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,93 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace data.Migrations
{
/// <inheritdoc />
public partial class InitialCrete : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Groups",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Groups", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Users",
columns: table => new
{
Guid = table.Column<Guid>(type: "uuid", nullable: false),
FIO = table.Column<string>(type: "text", nullable: false),
GroupID = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Users", x => x.Guid);
table.ForeignKey(
name: "FK_Users_Groups_GroupID",
column: x => x.GroupID,
principalTable: "Groups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "PresenceDaos",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
UserGuid = table.Column<Guid>(type: "uuid", nullable: false),
IsAttedance = table.Column<bool>(type: "boolean", nullable: false),
Date = table.Column<DateOnly>(type: "date", nullable: false),
LessonNumber = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_PresenceDaos", x => x.Id);
table.ForeignKey(
name: "FK_PresenceDaos_Users_UserGuid",
column: x => x.UserGuid,
principalTable: "Users",
principalColumn: "Guid",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_PresenceDaos_UserGuid",
table: "PresenceDaos",
column: "UserGuid");
migrationBuilder.CreateIndex(
name: "IX_Users_GroupID",
table: "Users",
column: "GroupID");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "PresenceDaos");
migrationBuilder.DropTable(
name: "Users");
migrationBuilder.DropTable(
name: "Groups");
}
}
}

View File

@ -0,0 +1,123 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using data.RemoteData;
#nullable disable
namespace data.Migrations
{
[DbContext(typeof(RemoteDatabaseContext))]
partial class RemoteDatabaseContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("data.RemoteData.DAO.GroupDao", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Groups");
});
modelBuilder.Entity("data.RemoteData.DAO.PresenceDao", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateOnly>("Date")
.HasColumnType("date");
b.Property<bool>("IsAttedance")
.HasColumnType("boolean");
b.Property<int>("LessonNumber")
.HasColumnType("integer");
b.Property<Guid>("UserGuid")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserGuid");
b.ToTable("PresenceDaos");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.Property<Guid>("Guid")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("FIO")
.IsRequired()
.HasColumnType("text");
b.Property<int>("GroupID")
.HasColumnType("integer");
b.HasKey("Guid");
b.HasIndex("GroupID");
b.ToTable("Users");
});
modelBuilder.Entity("data.RemoteData.DAO.PresenceDao", b =>
{
b.HasOne("data.RemoteData.DAO.UserDao", "UserDao")
.WithMany("Presences")
.HasForeignKey("UserGuid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("UserDao");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.HasOne("data.RemoteData.DAO.GroupDao", "Group")
.WithMany("Users")
.HasForeignKey("GroupID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
});
modelBuilder.Entity("data.RemoteData.DAO.GroupDao", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("data.RemoteData.DAO.UserDao", b =>
{
b.Navigation("Presences");
});
#pragma warning restore 612, 618
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("data")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1bb72eb0a97c4bf75297365376fe5d5b70ef8d7a")]
[assembly: System.Reflection.AssemblyProductAttribute("data")]
[assembly: System.Reflection.AssemblyTitleAttribute("data")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
6741393a5fe1cc20988265f6fd0e8bdd33ee4b9cc7b9e110a41e548fdd825a94
ea361c844f4d0a4533d7d7ae76ae7434a3d964dedcd09b17cbc5b1a90e4f3906

View File

@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = data
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Новый репоз\new_presence\data\
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1 +1 @@
4373816ab2adca26ada772cfa898e94678cd01f9279b64536132365dfacb7c33
750a9b39a6706730c197e2f72549272f65223ec63229f4f87913339b936a3b77

View File

@ -40,3 +40,17 @@ C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\refint\data.dll
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.pdb
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.genruntimeconfig.cache
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\ref\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\bin\Debug\net8.0\data.deps.json
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\bin\Debug\net8.0\data.runtimeconfig.json
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\bin\Debug\net8.0\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\bin\Debug\net8.0\data.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.AssemblyInfo.cs
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\refint\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\data.genruntimeconfig.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\data\obj\Debug\net8.0\ref\data.dll

Binary file not shown.

View File

@ -1 +1 @@
ad0a4479b59a7ef873597a5be47af04d30bf61b8a15ec5b82893655c935f039d
ae807328d2944ba4c14fbe51c75e7d0dbecd6330b260ddcf1fac517b7e9e01dd

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="GetEFProjectMetadata">
<MSBuild Condition=" '$(TargetFramework)' == '' "
Projects="$(MSBuildProjectFile)"
Targets="GetEFProjectMetadata"
Properties="TargetFramework=$(TargetFrameworks.Split(';')[0]);EFProjectMetadataFile=$(EFProjectMetadataFile)" />
<ItemGroup Condition=" '$(TargetFramework)' != '' ">
<EFProjectMetadata Include="AssemblyName: $(AssemblyName)" />
<EFProjectMetadata Include="Language: $(Language)" />
<EFProjectMetadata Include="OutputPath: $(OutputPath)" />
<EFProjectMetadata Include="Platform: $(Platform)" />
<EFProjectMetadata Include="PlatformTarget: $(PlatformTarget)" />
<EFProjectMetadata Include="ProjectAssetsFile: $(ProjectAssetsFile)" />
<EFProjectMetadata Include="ProjectDir: $(ProjectDir)" />
<EFProjectMetadata Include="RootNamespace: $(RootNamespace)" />
<EFProjectMetadata Include="RuntimeFrameworkVersion: $(RuntimeFrameworkVersion)" />
<EFProjectMetadata Include="TargetFileName: $(TargetFileName)" />
<EFProjectMetadata Include="TargetFrameworkMoniker: $(TargetFrameworkMoniker)" />
<EFProjectMetadata Include="Nullable: $(Nullable)" />
<EFProjectMetadata Include="TargetFramework: $(TargetFramework)" />
<EFProjectMetadata Include="TargetPlatformIdentifier: $(TargetPlatformIdentifier)" />
</ItemGroup>
<WriteLinesToFile Condition=" '$(TargetFramework)' != '' "
File="$(EFProjectMetadataFile)"
Lines="@(EFProjectMetadata)" />
</Target>
</Project>

View File

@ -1,17 +1,17 @@
{
"format": 1,
"restore": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {}
"C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj": {}
},
"projects": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"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",
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",

View File

@ -2115,11 +2115,11 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"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\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",

View File

@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "AGyA8QTK9h8=",
"dgSpecHash": "eaPXuIfBaJI=",
"success": true,
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\data\\data.csproj",
"expectedPackageFiles": [
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",

128
ui/GroupConsole.cs Normal file
View File

@ -0,0 +1,128 @@
using domain.UseCase;
using System.Text;
namespace ui
{
// Класс пользовательского интерфейса для работы с группами через консоль
public class GroupConsole
{
private readonly GroupUseCase _groupUseCase;
// Конструктор, принимающий экземпляр GroupUseCase
public GroupConsole(GroupUseCase groupUseCase)
{
_groupUseCase = groupUseCase;
}
// Метод для поиска группы по ID
public void FindGroupById(int groupId)
{
try
{
// Находим группу и выводим её данные
var group = _groupUseCase.FindGroupById(groupId);
Console.WriteLine($"ID группы: {group.Id} Название группы: {group.Name}");
}
catch (Exception ex)
{
// Выводим сообщение об ошибке
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
// Метод для отображения всех групп
public void DisplayAllGroups()
{
Console.WriteLine("\n=== Список всех групп ===");
StringBuilder groupOutput = new StringBuilder();
// Формируем список всех групп
foreach (var group in _groupUseCase.GetAllGroups())
{
groupOutput.AppendLine($"{group.Id}\t{group.Name}");
}
// Выводим список в консоль
Console.WriteLine(groupOutput);
Console.WriteLine("===========================\n");
}
// Метод для добавления новой группы
public void AddGroup(string groupName)
{
try
{
// Проверяем валидность имени группы
ValidateGroupName(groupName);
// Добавляем группу через UseCase
_groupUseCase.AddGroup(groupName);
Console.WriteLine($"\nГруппа {groupName} добавлена.\n");
}
catch (Exception ex)
{
// Выводим сообщение об ошибке
Console.WriteLine($"Ошибка: {ex.Message}\n");
}
}
// Метод для удаления группы по ID
public void RemoveGroup(string groupIdStr)
{
try
{
// Преобразуем строку в число и проверяем ID
int groupId = int.Parse(groupIdStr);
ValidateGroupId(groupId);
// Удаляем группу через UseCase
_groupUseCase.RemoveGroupById(groupId);
Console.WriteLine($"Группа с ID: {groupId} удалена");
}
catch (Exception ex)
{
// Выводим сообщение об ошибке
Console.WriteLine($"Ошибка: {ex.Message}\n");
}
}
// Метод для изменения имени группы
public void UpdateGroupName(int groupId, string newGroupName)
{
try
{
// Проверяем валидность имени новой группы
ValidateGroupName(newGroupName);
// Обновляем имя группы через UseCase
_groupUseCase.UpdateGroup(groupId, newGroupName);
Console.WriteLine($"\nНазвание группы с ID {groupId} изменено на {newGroupName}.\n");
}
catch (Exception ex)
{
// Выводим сообщение об ошибке
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
// Метод для проверки валидности имени группы
private void ValidateGroupName(string groupName)
{
// Проверяем, что имя группы не пустое и не состоит только из пробелов
if (string.IsNullOrWhiteSpace(groupName))
{
throw new ArgumentException("Имя группы не может быть пустым.");
}
}
// Метод для проверки валидности ID группы
private void ValidateGroupId(int groupId)
{
// Проверяем, что ID группы больше 0
if (groupId < 1)
{
throw new ArgumentException("Введите корректный ID группы.");
}
}
}
}

213
ui/MainMenu.cs Normal file
View File

@ -0,0 +1,213 @@
using data.Repository;
using domain.UseCase;
namespace ui
{
// Основное меню консольного пользовательского интерфейса.
public class MainMenuUI
{
private readonly UserConsole _userConsole; // Консольный интерфейс для работы с пользователями.
private readonly GroupConsole _groupConsole; // Консольный интерфейс для работы с группами.
private readonly PresenceConsole _presenceConsole; // Консольный интерфейс для работы с посещаемостью.
// Конструктор для инициализации зависимостей.
public MainMenuUI(UserUseCase userUseCase, GroupUseCase groupUseCase, UseCaseGeneratePresence presenceUseCase, IPresenceRepository presenceRepository)
{
// Инициализация всех интерфейсов с соответствующими UseCase и репозиториями.
_userConsole = new UserConsole(userUseCase);
_groupConsole = new GroupConsole(groupUseCase);
_presenceConsole = new PresenceConsole(presenceUseCase, presenceRepository);
}
// Основной метод для отображения меню и обработки ввода пользователя.
public void DisplayMenu()
{
while (true)
{
// Отображение доступных команд в консоль.
Console.WriteLine("\n=== Главное меню ===");
Console.WriteLine("1. Все пользователи");
Console.WriteLine("2. Найти пользователя");
Console.WriteLine("3. Обновить данные пользователя");
Console.WriteLine("4. Удалить пользователя");
Console.WriteLine("5. Список всех групп");
Console.WriteLine("6. Найти группу");
Console.WriteLine("7. Создать группу");
Console.WriteLine("8. Изменить название группы");
Console.WriteLine("9. Удалить группу");
Console.WriteLine("10. Сгенерировать посещаемость на день");
Console.WriteLine("11. Сгенерировать посещаемость на неделю");
Console.WriteLine("12. Показать посещаемость группы");
Console.WriteLine("13. Посещаемость группы за день");
Console.WriteLine("14. Отметить отсутствующего пользователя");
Console.WriteLine("15. Экспорт посещаемости в Excel");
Console.WriteLine("0. Выход");
Console.Write("Выберите команду: ");
// Считывание команды пользователя.
string command = Console.ReadLine();
Console.WriteLine();
// Обработка команд через switch-case.
switch (command)
{
case "1":
_userConsole.AllUsers(); // Показать всех пользователей.
break;
case "2":
ExecuteGuidCommand("Введите Guid пользователя для поиска: ", _userConsole.FindUserByGuid);
break;
case "3":
ExecuteGuidCommand("Введите Guid пользователя для обновления: ", _userConsole.UpdateUserByGuid);
break;
case "4":
ExecuteGuidCommand("Введите Guid пользователя для удаления: ", _userConsole.RemoveUserByGuid);
break;
case "5":
_groupConsole.DisplayAllGroups(); // Показать все группы.
break;
case "6":
ExecuteIntCommand("Введите ID группы для поиска: ", _groupConsole.FindGroupById);
break;
case "7":
Console.Write("Введите название новой группы: ");
_groupConsole.AddGroup(Console.ReadLine()); // Создать новую группу.
break;
case "8":
ExecuteIntCommand("Введите ID группы для изменения: ", id =>
{
Console.Write("Введите новое название группы: ");
_groupConsole.UpdateGroupName(id, Console.ReadLine());
});
break;
case "9":
ExecuteIntCommand("Введите ID группы для удаления: ", id => _groupConsole.RemoveGroup(id.ToString()));
break;
case "10":
GenerateAttendance("день"); // Генерация посещаемости на день.
break;
case "11":
GenerateAttendance("неделю"); // Генерация посещаемости на неделю.
break;
case "12":
Console.Write("Введите дату (гггг-мм-дд): ");
DateTime date = DateTime.Parse(Console.ReadLine());
ExecuteIntCommand("Введите ID группы: ", id => _presenceConsole.DisplayPresence(date, id));
break;
case "13":
ExecuteIntCommand("Введите ID группы: ", _presenceConsole.DisplayAllPresenceByGroup);
break;
case "14":
Console.Write("Введите Guid пользователя: ");
Guid userGuid = Guid.Parse(Console.ReadLine());
GenerateAbsence(userGuid); // Отметить пользователя как отсутствующего.
break;
case "15":
_presenceConsole.ExportAttendanceToExcel(); // Экспорт посещаемости в Excel.
break;
case "0":
return; // Завершение программы.
default:
Console.WriteLine("Команда не распознана."); // Сообщение об ошибке.
break;
}
}
}
// Метод для обработки команд с параметром Guid.
private void ExecuteGuidCommand(string prompt, Action<Guid> action)
{
Console.Write(prompt);
if (Guid.TryParse(Console.ReadLine(), out Guid guid))
{
action(guid);
}
else
{
Console.WriteLine("Неверный формат Guid.");
}
}
// Метод для обработки команд с параметром int.
private void ExecuteIntCommand(string prompt, Action<int> action)
{
Console.Write(prompt);
if (int.TryParse(Console.ReadLine(), out int value))
{
action(value);
}
else
{
Console.WriteLine("Неверный формат числа.");
}
}
// Генерация посещаемости на день или неделю.
private void GenerateAttendance(string period)
{
try
{
Console.Write("Введите номер первого занятия: ");
int firstLesson = int.Parse(Console.ReadLine());
Console.Write("Введите номер последнего занятия: ");
int lastLesson = int.Parse(Console.ReadLine());
ExecuteIntCommand("Введите ID группы: ", id =>
{
if (period == "день")
{
_presenceConsole.GeneratePresenceForDay(DateTime.Now, id, firstLesson, lastLesson);
Console.WriteLine("Посещаемость на день сгенерирована.");
}
else
{
_presenceConsole.GeneratePresenceForWeek(DateTime.Now, id, firstLesson, lastLesson);
Console.WriteLine("Посещаемость на неделю сгенерирована.");
}
});
}
catch
{
Console.WriteLine("Ошибка ввода данных.");
}
}
// Отметка пользователя как отсутствующего.
private void GenerateAbsence(Guid userGuid)
{
try
{
Console.Write("Введите номер первого занятия: ");
int firstLesson = int.Parse(Console.ReadLine());
Console.Write("Введите номер последнего занятия: ");
int lastLesson = int.Parse(Console.ReadLine());
ExecuteIntCommand("Введите ID группы: ", id =>
{
_presenceConsole.MarkUserAsAbsent(DateTime.Now, id, userGuid, firstLesson, lastLesson);
Console.WriteLine("Пользователь отмечен как отсутствующий.");
});
}
catch
{
Console.WriteLine("Ошибка ввода данных.");
}
}
}
}

196
ui/PresenceConsole.cs Normal file
View File

@ -0,0 +1,196 @@
using data.Repository;
using domain.Models;
using domain.UseCase;
using System.Collections.Generic;
namespace ui
{
public class PresenceConsole
{
private readonly UseCaseGeneratePresence _presenceUseCase;
private readonly IPresenceRepository _presenceRepository;
public PresenceConsole(UseCaseGeneratePresence presenceUseCase, IPresenceRepository presenceRepository)
{
_presenceUseCase = presenceUseCase;
_presenceRepository = presenceRepository;
}
public void GeneratePresenceForDay(DateTime date, int groupId, int firstLesson, int lastLesson)
{
try
{
_presenceUseCase.GeneratePresenceForDay(firstLesson, lastLesson, groupId, date);
Console.WriteLine("Посещаемость на день успешно сгенерирована.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при генерации посещаемости: {ex.Message}");
}
}
public void GeneratePresenceForWeek(DateTime date, int groupId, int firstLesson, int lastLesson)
{
try
{
_presenceUseCase.GeneratePresenceForWeek(firstLesson, lastLesson, groupId, date);
Console.WriteLine("Посещаемость на неделю успешно сгенерирована.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при генерации посещаемости: {ex.Message}");
}
}
// Метод для отображения посещаемости на конкретную дату и группу
public void DisplayPresence(DateTime date, int groupId)
{
try
{
List<PresenceLocalEntity> presences = _presenceUseCase.GetPresenceByGroupAndDate(groupId, date);
if (presences == null || presences.Count == 0)
{
Console.WriteLine("Нет данных о посещаемости на выбранную дату.");
return;
}
Console.WriteLine($"\n Посещаемость на {date:dd.MM.yyyy} ");
Console.WriteLine("-----------------------------------------------------");
// Сохраняем номер занятия для сравнения
int previousLessonNumber = -1;
foreach (var presence in presences)
{
// Проверяем, изменился ли номер занятия
if (previousLessonNumber != presence.LessonNumber)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine($" Занятие: {presence.LessonNumber} ");
Console.WriteLine("-----------------------------------------------------");
previousLessonNumber = presence.LessonNumber;
}
// Форматируем статус присутствия
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine($"Пользователь (ID: {presence.UserGuid}) - Статус: {status}");
}
Console.WriteLine("-----------------------------------------------------");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при отображении посещаемости: {ex.Message}");
}
}
public void MarkUserAsAbsent(DateTime date, int groupId, Guid userGuid, int firstLesson, int lastLesson)
{
_presenceUseCase.MarkUserAsAbsent(userGuid, groupId, firstLesson, lastLesson, date);
}
public void DisplayAllPresenceByGroup(int groupId)
{
try
{
var presences = _presenceUseCase.GetAllPresenceByGroup(groupId);
if (presences == null || !presences.Any())
{
Console.WriteLine($"Нет данных о посещаемости для группы с ID: {groupId}.");
return;
}
// Группируем записи посещаемости по дате
var groupedPresences = presences.GroupBy(p => p.Date);
foreach (var group in groupedPresences)
{
Console.WriteLine($" Дата: {group.Key:dd.MM.yyyy}");
Console.WriteLine();
// Сохраняем номер занятия для сравнения
int previousLessonNumber = -1;
foreach (var presence in group)
{
// Проверяем, изменился ли номер занятия
if (previousLessonNumber != presence.LessonNumber)
{
Console.WriteLine("---------------------------------------------------");
Console.WriteLine($" Занятие: {presence.LessonNumber}");
Console.WriteLine("---------------------------------------------------");
previousLessonNumber = presence.LessonNumber;
}
// Форматируем статус присутствия
string status = presence.IsAttedance ? "Присутствует" : "Отсутствует";
Console.WriteLine($"Пользователь (ID: {presence.UserGuid}) - Статус: {status}");
}
Console.WriteLine("---------------------------------------------------");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при отображении посещаемости: {ex.Message}");
}
}
public void DisplayGeneralPresenceForGroup(int groupId)
{
var summary = _presenceRepository.GetGeneralPresenceForGroup(groupId);
Console.WriteLine($"Человек в группе: {summary.UserCount}, " +
$"Количество проведённых занятий: {summary.LessonCount}, " +
$"Общий процент посещаемости группы: {summary.TotalAttendancePercentage}%");
foreach (var user in summary.UserAttendances)
{
if (user.AttendanceRate < 40)
{
Console.ForegroundColor = ConsoleColor.Red;
}
Console.WriteLine($"GUID Пользователя: {user.UserGuid}, " +
$"Посетил: {user.Attended}, " +
$"Пропустил: {user.Missed}, " +
$"Процент посещаемости: {user.AttendanceRate}%");
Console.ResetColor();
}
}
public void ExportAttendanceToExcel()
{
try
{
_presenceUseCase.ExportAttendanceToExcel();
Console.WriteLine("Данные посещаемости успешно экспортированы в Excel.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при экспорте посещаемости: {ex.Message}");
}
}
public void UpdateUserAttendance(Guid userGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance)
{
try
{
bool result = _presenceRepository.UpdateAttention(userGuid, groupId, firstLesson, lastLesson, date, isAttendance);
if (result)
{
Console.WriteLine($"Статус посещаемости для пользователя {userGuid} обновлён.");
}
else
{
Console.WriteLine($"Данные о посещаемости для пользователя ID: {userGuid} не найдены.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при обновлении посещаемости: {ex.Message}");
}
}
}
}

119
ui/UserConsole.cs Normal file
View File

@ -0,0 +1,119 @@
using domain.Models;
using domain.UseCase;
namespace ui
{
// Класс пользовательского интерфейса для работы с пользователями через консоль.
public class UserConsole
{
private readonly UserUseCase _userUseCase;
// Конструктор, принимающий экземпляр пользовательского UseCase.
public UserConsole(UserUseCase userUseCase)
{
_userUseCase = userUseCase;
}
// Метод для отображения всех пользователей.
public void AllUsers()
{
// Получаем список всех пользователей.
var users = _userUseCase.GetAllUsers();
// Если пользователей нет, выводим сообщение и завершаем выполнение метода.
if (!users.Any())
{
Console.WriteLine("Нет пользователей.");
return;
}
// Формируем и выводим список пользователей.
Console.WriteLine("\n=== Список пользователей ===");
foreach (var user in users)
{
Console.WriteLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}");
}
Console.WriteLine("=============================\n");
}
// Метод для поиска пользователя по Guid.
public void FindUserByGuid(Guid userGuid)
{
try
{
// Ищем пользователя по указанному Guid.
var user = _userUseCase.FindUserByGuid(userGuid);
// Если пользователь найден, выводим его данные.
Console.WriteLine($"\nПользователь найден: {user.Guid}, {user.FIO}, {user.Group.Name}\n");
}
catch (Exception ex)
{
// Если возникла ошибка, выводим сообщение об ошибке.
Console.WriteLine($"Ошибка: {ex.Message}\n");
}
}
// Метод для удаления пользователя по Guid.
public void RemoveUserByGuid(Guid userGuid)
{
// Удаляем пользователя и выводим результат операции.
Console.WriteLine(_userUseCase.RemoveUserByGuid(userGuid)
? "Пользователь удален."
: "Пользователь не найден.");
}
// Метод для обновления данных пользователя по Guid.
public void UpdateUserByGuid(Guid userGuid)
{
try
{
// Ищем пользователя по указанному Guid.
var user = _userUseCase.FindUserByGuid(userGuid);
// Выводим текущие данные пользователя.
Console.WriteLine($"\nТекущие данные: {user.FIO}, {user.Group.Name}");
// Запрашиваем новое ФИО у пользователя.
Console.Write("Введите новое ФИО: ");
string newFIO = Console.ReadLine();
// Проверяем, что новое ФИО не пустое.
if (string.IsNullOrWhiteSpace(newFIO))
{
Console.WriteLine("ФИО не может быть пустым.");
return;
}
// Обновляем данные пользователя.
user.FIO = newFIO;
_userUseCase.UpdateUser(user);
Console.WriteLine("Пользователь обновлен.\n");
}
catch (Exception ex)
{
// Если возникла ошибка, выводим сообщение об ошибке.
Console.WriteLine($"Ошибка: {ex.Message}\n");
}
}
// Метод для проверки существования группы по ID.
private GroupLocalEntity ValidateGroupExistence(int groupId)
{
// Ищем группу с указанным ID среди всех пользователей.
var group = _userUseCase.GetAllUsers()
.Select(u => u.Group)
.FirstOrDefault(g => g.Id == groupId);
// Если группа не найдена, выбрасываем исключение.
if (group == null)
{
throw new Exception("Группа не найдена.");
}
// Возвращаем найденную группу как локальную сущность.
return new GroupLocalEntity { Id = group.Id, Name = group.Name };
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,459 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"ui/1.0.0": {
"dependencies": {
"domain": "1.0.0"
},
"runtime": {
"ui.dll": {}
}
},
"ClosedXML/0.104.1": {
"dependencies": {
"ClosedXML.Parser": "1.2.0",
"DocumentFormat.OpenXml": "3.0.1",
"ExcelNumberFormat": "1.1.0",
"RBush": "3.2.0",
"SixLabors.Fonts": "1.0.0",
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/netstandard2.1/ClosedXML.dll": {
"assemblyVersion": "0.104.1.0",
"fileVersion": "0.104.1.0"
}
}
},
"ClosedXML.Parser/1.2.0": {
"runtime": {
"lib/netstandard2.1/ClosedXML.Parser.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"DocumentFormat.OpenXml/3.0.1": {
"dependencies": {
"DocumentFormat.OpenXml.Framework": "3.0.1"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"dependencies": {
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.Framework.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"ExcelNumberFormat/1.1.0": {
"runtime": {
"lib/netstandard2.0/ExcelNumberFormat.dll": {
"assemblyVersion": "1.1.0.0",
"fileVersion": "1.1.0.0"
}
}
},
"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.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.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"
}
}
},
"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"
}
}
},
"RBush/3.2.0": {
"runtime": {
"lib/net6.0/RBush.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.0.0"
}
}
},
"SixLabors.Fonts/1.0.0": {
"runtime": {
"lib/netcoreapp3.1/SixLabors.Fonts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"System.IO.Packaging/8.0.0": {
"runtime": {
"lib/net8.0/System.IO.Packaging.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"data/1.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10"
},
"runtime": {
"data.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"domain/1.0.0": {
"dependencies": {
"ClosedXML": "0.104.1",
"data": "1.0.0"
},
"runtime": {
"domain.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"ui/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ClosedXML/0.104.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==",
"path": "closedxml/0.104.1",
"hashPath": "closedxml.0.104.1.nupkg.sha512"
},
"ClosedXML.Parser/1.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==",
"path": "closedxml.parser/1.2.0",
"hashPath": "closedxml.parser.1.2.0.nupkg.sha512"
},
"DocumentFormat.OpenXml/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==",
"path": "documentformat.openxml/3.0.1",
"hashPath": "documentformat.openxml.3.0.1.nupkg.sha512"
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==",
"path": "documentformat.openxml.framework/3.0.1",
"hashPath": "documentformat.openxml.framework.3.0.1.nupkg.sha512"
},
"ExcelNumberFormat/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==",
"path": "excelnumberformat/1.1.0",
"hashPath": "excelnumberformat.1.1.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.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.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"
},
"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"
},
"RBush/3.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==",
"path": "rbush/3.2.0",
"hashPath": "rbush.3.2.0.nupkg.sha512"
},
"SixLabors.Fonts/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==",
"path": "sixlabors.fonts/1.0.0",
"hashPath": "sixlabors.fonts.1.0.0.nupkg.sha512"
},
"System.IO.Packaging/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==",
"path": "system.io.packaging/8.0.0",
"hashPath": "system.io.packaging.8.0.0.nupkg.sha512"
},
"data/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"domain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

BIN
ui/bin/Debug/net8.0/ui.dll Normal file

Binary file not shown.

BIN
ui/bin/Debug/net8.0/ui.pdb Normal file

Binary file not shown.

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ui")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1bb72eb0a97c4bf75297365376fe5d5b70ef8d7a")]
[assembly: System.Reflection.AssemblyProductAttribute("ui")]
[assembly: System.Reflection.AssemblyTitleAttribute("ui")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Создано классом WriteCodeFragment MSBuild.

View File

@ -0,0 +1 @@
ec1ad6e87671c3a3185b222475ddda68d0cffaff22928aa6e7e99db995da021d

View File

@ -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 = ui
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -0,0 +1,8 @@
// <auto-generated/>
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;

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
1c08c001135aeee6a16dffa6960022b772eaa873514062ee1ccb8a828babb3c9

View File

@ -0,0 +1,17 @@
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\ui.deps.json
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\ui.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\data.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\domain.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\domain.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\bin\Debug\net8.0\data.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.csproj.AssemblyReference.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.AssemblyInfoInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.AssemblyInfo.cs
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.csproj.CoreCompileInputs.cache
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.csproj.Up2Date
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\refint\ui.dll
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ui.pdb
C:\Users\VivoBook 15X\Desktop\Программные модули\Новый репоз\new_presence\ui\obj\Debug\net8.0\ref\ui.dll

View File

BIN
ui/obj/Debug/net8.0/ui.dll Normal file

Binary file not shown.

BIN
ui/obj/Debug/net8.0/ui.pdb Normal file

Binary file not shown.

1106
ui/obj/project.assets.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
{
"version": 2,
"dgSpecHash": "dRZC17xN5y0=",
"success": true,
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\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": []
}

Some files were not shown because too many files have changed in this diff Show More