init
This commit is contained in:
commit
ecc361ddb8
30
console_ui/Program.cs
Normal file
30
console_ui/Program.cs
Normal file
@ -0,0 +1,30 @@
|
||||
using data.RemoteData;
|
||||
using data.Repository;
|
||||
using domain.UseCase;
|
||||
using ui;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using ui;
|
||||
|
||||
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();
|
BIN
console_ui/Reports/AttendanceReport.xlsx
Normal file
BIN
console_ui/Reports/AttendanceReport.xlsx
Normal file
Binary file not shown.
22
console_ui/console_ui.csproj
Normal file
22
console_ui/console_ui.csproj
Normal file
@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\domain\domain.csproj" />
|
||||
<ProjectReference Include="..\data\data.csproj" />
|
||||
<ProjectReference Include="..\ui\ui.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ClosedXML" Version="0.104.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
23
console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs
Normal file
23
console_ui/obj/Debug/net8.0/console_ui.AssemblyInfo.cs
Normal file
@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
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.
|
||||
|
@ -0,0 +1 @@
|
||||
ba882f03fdfa9546ef7659464bc47e4a0ca2d53498595f377280140f0c41eed4
|
@ -0,0 +1,15 @@
|
||||
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\Presence_Desktop\console_ui\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.EffectiveAnalysisLevelStyle = 8.0
|
||||
build_property.EnableCodeStyleSeverity =
|
8
console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs
Normal file
8
console_ui/obj/Debug/net8.0/console_ui.GlobalUsings.g.cs
Normal 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;
|
BIN
console_ui/obj/Debug/net8.0/console_ui.assets.cache
Normal file
BIN
console_ui/obj/Debug/net8.0/console_ui.assets.cache
Normal file
Binary file not shown.
Binary file not shown.
322
console_ui/obj/console_ui.csproj.nuget.dgspec.json
Normal file
322
console_ui/obj/console_ui.csproj.nuget.dgspec.json
Normal file
@ -0,0 +1,322 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\console_ui\\console_ui.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\console_ui\\console_ui.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\console_ui\\console_ui.csproj",
|
||||
"projectName": "console_ui",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\console_ui\\console_ui.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\console_ui\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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\\Presence_Desktop\\data\\data.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj"
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj"
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\ui.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\ui.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"dependencies": {
|
||||
"ClosedXML": {
|
||||
"target": "Package",
|
||||
"version": "[0.104.1, )"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"projectName": "data",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj",
|
||||
"projectName": "domain",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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\\Presence_Desktop\\data\\data.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\ui.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\ui.csproj",
|
||||
"projectName": "ui",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\ui.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\ui\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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\\Presence_Desktop\\domain\\domain.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
19
console_ui/obj/console_ui.csproj.nuget.g.props
Normal file
19
console_ui/obj/console_ui.csproj.nuget.g.props
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\VivoBook 15X\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\VivoBook 15X\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
7
console_ui/obj/console_ui.csproj.nuget.g.targets
Normal file
7
console_ui/obj/console_ui.csproj.nuget.g.targets
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
1151
console_ui/obj/project.assets.json
Normal file
1151
console_ui/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
32
console_ui/obj/project.nuget.cache
Normal file
32
console_ui/obj/project.nuget.cache
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "YcW+JRKQU14=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\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\\9.0.0\\microsoft.extensions.dependencyinjection.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.0\\microsoft.extensions.dependencyinjection.abstractions.9.0.0.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": []
|
||||
}
|
11
data/Exceptions/GroupNotFoundException.cs
Normal file
11
data/Exceptions/GroupNotFoundException.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace data.Exception
|
||||
{
|
||||
// Конструктор исключения GroupNotFoundException.
|
||||
// <param name="groupId">ID группы, которая не была найдена.
|
||||
public class GroupNotFoundException : RepositoryException
|
||||
{
|
||||
public GroupNotFoundException(int groupId)
|
||||
// Передаем сообщение об ошибке в базовый класс
|
||||
: base($"Группа с ID {groupId} не найдена.") { }
|
||||
}
|
||||
}
|
10
data/Exceptions/RepositoryException.cs
Normal file
10
data/Exceptions/RepositoryException.cs
Normal file
@ -0,0 +1,10 @@
|
||||
// Базовый класс для исключений, связанных с репозиторием.
|
||||
namespace data.Exception
|
||||
{
|
||||
// Конструктор класса RepositoryException.
|
||||
public class RepositoryException : IOException
|
||||
{
|
||||
// Передаем сообщение об ошибке в базовый класс IOException
|
||||
public RepositoryException(string message) : base(message) { }
|
||||
}
|
||||
}
|
10
data/Exceptions/UserNotFoundException.cs
Normal file
10
data/Exceptions/UserNotFoundException.cs
Normal file
@ -0,0 +1,10 @@
|
||||
// Конструктор, создающий исключение с сообщением об отсутствии пользователя.
|
||||
namespace data.Exception
|
||||
{
|
||||
public class UserNotFoundException : RepositoryException
|
||||
{
|
||||
// Передача сообщения в базовый класс исключения RepositoryException.
|
||||
public UserNotFoundException(Guid userGuid)
|
||||
: base($"Пользователь с GUID {userGuid} не найден.") { }
|
||||
}
|
||||
}
|
13
data/LocalData/Entity/Group.cs
Normal file
13
data/LocalData/Entity/Group.cs
Normal file
@ -0,0 +1,13 @@
|
||||
// Пространство имен, содержащее модели домена.
|
||||
namespace domain.Models
|
||||
{
|
||||
// Представляет локальную сущность группы в доменной модели.
|
||||
public class GroupLocalEntity
|
||||
{
|
||||
public required int Id { get; set; } // ID группы.
|
||||
public required string Name { get; set; } // Название группы.
|
||||
|
||||
public List<UserLocalEnity> Users { get; set; } = new List<UserLocalEnity>();
|
||||
|
||||
}
|
||||
}
|
21
data/LocalData/Entity/Presence.cs
Normal file
21
data/LocalData/Entity/Presence.cs
Normal file
@ -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; }
|
||||
}
|
||||
}
|
22
data/LocalData/Entity/User.cs
Normal file
22
data/LocalData/Entity/User.cs
Normal file
@ -0,0 +1,22 @@
|
||||
namespace domain.Models
|
||||
{
|
||||
public class UserLocalEnity : IEquatable<UserLocalEnity>
|
||||
{
|
||||
// Уникальный идентификатор пользователя.
|
||||
public Guid Guid { get; set; }
|
||||
|
||||
// Полное имя пользователя.
|
||||
public required string FIO { get; set; }
|
||||
|
||||
// Идентификатор группы, к которой принадлежит пользователь.
|
||||
public required int GroupID { get; set; }
|
||||
public GroupLocalEntity Group { get; set; }
|
||||
|
||||
// Реализация сравнения для проверки равенства пользователей по их Guid.
|
||||
public bool Equals(UserLocalEnity? other)
|
||||
{
|
||||
if (other == null) return false;
|
||||
return this.Guid.Equals(other.Guid);
|
||||
}
|
||||
}
|
||||
}
|
18
data/RemoteData/DAO/Excel.cs
Normal file
18
data/RemoteData/DAO/Excel.cs
Normal file
@ -0,0 +1,18 @@
|
||||
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; }
|
||||
|
||||
public bool IsAttedance { get; set; }
|
||||
|
||||
public int LessonNumber { get; set; }
|
||||
|
||||
public string GroupName { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
15
data/RemoteData/DAO/Group.cs
Normal file
15
data/RemoteData/DAO/Group.cs
Normal file
@ -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<UserDao> Users { get; set; } = new List<UserDao>(); // Установка пустой коллекции по умолчанию.
|
||||
}
|
||||
}
|
24
data/RemoteData/DAO/Presence.cs
Normal file
24
data/RemoteData/DAO/Presence.cs
Normal file
@ -0,0 +1,24 @@
|
||||
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; }
|
||||
}
|
||||
}
|
21
data/RemoteData/DAO/User.cs
Normal file
21
data/RemoteData/DAO/User.cs
Normal file
@ -0,0 +1,21 @@
|
||||
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; }
|
||||
|
||||
// Связанная группа пользователя.
|
||||
public virtual GroupDao Group { get; set; }
|
||||
|
||||
// Список посещаемости пользователя.
|
||||
public virtual IEnumerable<PresenceDao> Presences{ get; set; }
|
||||
}
|
||||
}
|
31
data/RemoteData/DAO/UserAttendance.cs
Normal file
31
data/RemoteData/DAO/UserAttendance.cs
Normal file
@ -0,0 +1,31 @@
|
||||
// Сводка посещаемости группы.
|
||||
public class GroupPresenceSummary
|
||||
{
|
||||
// Общее количество пользователей в группе.
|
||||
public int UserCount { get; set; }
|
||||
|
||||
// Общее количество уроков.
|
||||
public int LessonCount { get; set; }
|
||||
|
||||
// Общий процент посещаемости группы.
|
||||
public double TotalAttendancePercentage { get; set; }
|
||||
|
||||
// Список индивидуальных посещаемостей пользователей.
|
||||
public List<UserAttendance> UserAttendances { get; set; } = new List<UserAttendance>();
|
||||
}
|
||||
|
||||
// Посещаемость конкретного пользователя
|
||||
public class UserAttendance
|
||||
{
|
||||
// Уникальный идентификатор пользователя
|
||||
public Guid UserGuid { get; set; }
|
||||
|
||||
// Количество посещенных уроков
|
||||
public double Attended { get; set; }
|
||||
|
||||
// Количество пропущенных уроков
|
||||
public double Missed { get; set; }
|
||||
|
||||
// Процент посещаемости (посещенные/общее число уроков)
|
||||
public double AttendanceRate { get; set; }
|
||||
}
|
43
data/RemoteData/RemoteDatabaseContext.cs
Normal file
43
data/RemoteData/RemoteDatabaseContext.cs
Normal file
@ -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<GroupDao>().HasKey(group => group.Id);
|
||||
modelBuilder.Entity<GroupDao>().Property(group => group.Id).ValueGeneratedOnAdd();
|
||||
|
||||
// Настройка ключа и автоматической генерации для UserDao
|
||||
modelBuilder.Entity<UserDao>().HasKey(user => user.Guid);
|
||||
modelBuilder.Entity<UserDao>().Property(user => user.Guid).ValueGeneratedOnAdd();
|
||||
|
||||
// Настройка составного ключа для PresenceDao
|
||||
modelBuilder.Entity<PresenceDao>().HasKey(presense => new
|
||||
{
|
||||
presense.Id
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Настройка связи UserDao с PresenceDao
|
||||
modelBuilder.Entity<PresenceDao>()
|
||||
.Property(presence => presence.Id)
|
||||
.ValueGeneratedOnAdd();
|
||||
modelBuilder.Entity<PresenceDao>().HasOne(presence => presence.UserDao).WithMany(user => user.Presences).HasForeignKey(presence => presence.UserGuid);
|
||||
|
||||
}
|
||||
|
||||
public DbSet<GroupDao> Groups { get; set; }
|
||||
public DbSet<UserDao> Users { get; set; }
|
||||
public DbSet<PresenceDao> PresenceDaos { get; set; }
|
||||
}
|
||||
}
|
37
data/Repository/IGroupRepository.cs
Normal file
37
data/Repository/IGroupRepository.cs
Normal file
@ -0,0 +1,37 @@
|
||||
using domain.Models;
|
||||
using data.RemoteData.DAO;
|
||||
|
||||
namespace data.Repository
|
||||
{
|
||||
public interface IGroupRepository
|
||||
{
|
||||
// Метод для получения группы по идентификатору.
|
||||
GroupLocalEntity GetGroupById(int groupID);
|
||||
|
||||
// Метод для получения всех групп.
|
||||
List<GroupLocalEntity> GetAllGroup();
|
||||
|
||||
// Метод для добавления новой группы.
|
||||
int AddGroup(GroupDao newGroup);
|
||||
|
||||
// Метод для обновления группы по идентификатору.
|
||||
bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup);
|
||||
|
||||
// Метод для удаления группы по идентификатору.
|
||||
bool RemoveGroupById(int groupID);
|
||||
|
||||
// Метод для получения группы со студентами.
|
||||
public List<GroupDao> GetAllGroupWithStident();
|
||||
|
||||
// Метод для удаления всех студентов из группы.
|
||||
void RemoveAllStudentsFromGroup(int groupId);
|
||||
|
||||
// Метод для добавления студента в группу.
|
||||
void AddStudentToGroup(int groupId, UserDao student);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
39
data/Repository/IPresenceRepository.cs
Normal file
39
data/Repository/IPresenceRepository.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using data.RemoteData.DAO;
|
||||
using domain.Models;
|
||||
|
||||
namespace data.Repository
|
||||
{
|
||||
public interface IPresenceRepository
|
||||
{
|
||||
// Метод для добавления записи о посещении.
|
||||
void AddPresence(PresenceLocalEntity presence);
|
||||
|
||||
// Метод для сохранения посещаемости для группы.
|
||||
void SavePresence(List<PresenceLocalEntity> presences);
|
||||
|
||||
// Метод для получения посещаемости по группе.
|
||||
List<PresenceLocalEntity> GetPresenceByGroup(int groupId);
|
||||
|
||||
// Метод для получения посещаемости по группе и дате.
|
||||
List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date);
|
||||
|
||||
// Метод для получения последней даты посещаемости для группы.
|
||||
DateOnly? GetLastDateByGroupId(int groupId);
|
||||
|
||||
// Метод для получения общей посещаемости группы.
|
||||
public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId);
|
||||
|
||||
// Метод для обновления посещаемости для пользователя в указанном интервале уроков.
|
||||
bool UpdateAttention(Guid UserGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance);
|
||||
|
||||
// Метод для пометки пользователя как отсутствующего в указанные уроки.
|
||||
void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber);
|
||||
|
||||
// Метод для получения посещаемости группы в виде DAO объектов.
|
||||
List<PresenceDao> GetAttendanceByGroup(int groupId);
|
||||
|
||||
// Метод для очистки посещаемости.
|
||||
void ClearAllPresence();
|
||||
|
||||
}
|
||||
}
|
18
data/Repository/IUserRepository.cs
Normal file
18
data/Repository/IUserRepository.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using data.RemoteData.DAO;
|
||||
using domain.Models;
|
||||
|
||||
namespace data.Repository
|
||||
{
|
||||
public interface IUserRepository
|
||||
{
|
||||
IEnumerable<UserLocalEnity> GetAllUsers { get; }
|
||||
bool RemoveUserByGuid(Guid userGuid);
|
||||
UserLocalEnity? UpdateUser(UserLocalEnity user);
|
||||
List<UserDao> GetUserNames();
|
||||
|
||||
public UserDao GetUserInfo(Guid userGuid);
|
||||
|
||||
bool AddUser(UserDao user);
|
||||
|
||||
}
|
||||
}
|
123
data/Repository/SQLGroupRepositoryImpl.cs
Normal file
123
data/Repository/SQLGroupRepositoryImpl.cs
Normal file
@ -0,0 +1,123 @@
|
||||
using data.Exception;
|
||||
using data.RemoteData;
|
||||
using data.RemoteData.DAO;
|
||||
using data.Repository;
|
||||
using domain.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
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<GroupLocalEntity> GetAllGroup()
|
||||
{
|
||||
return _remoteDatabaseContext.Groups
|
||||
.Select(g => new GroupLocalEntity { Id = g.Id, Name = g.Name })
|
||||
.ToList();
|
||||
}
|
||||
|
||||
|
||||
public int AddGroup(GroupDao group)
|
||||
{
|
||||
if (_remoteDatabaseContext.Groups.Any(g => g.Name == group.Name))
|
||||
return -1; // Например, если группа с таким именем уже существует, возвращаем -1
|
||||
|
||||
_remoteDatabaseContext.Groups.Add(group);
|
||||
_remoteDatabaseContext.SaveChanges();
|
||||
|
||||
return group.Id; // Возвращаем ID добавленной группы
|
||||
}
|
||||
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public List<GroupDao> GetAllGroupWithStident()
|
||||
{
|
||||
// Убедитесь, что загружаются все пользователи, связанные с группами
|
||||
return _remoteDatabaseContext.Groups
|
||||
.Include(g => g.Users) // Загружаем пользователей вместе с группами
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public void RemoveAllStudentsFromGroup(int groupId)
|
||||
{
|
||||
var group = _remoteDatabaseContext.Groups.Include(g => g.Users).FirstOrDefault(g => g.Id == groupId);
|
||||
if (group != null)
|
||||
{
|
||||
// Удаляем всех студентов из группы
|
||||
var userList = group.Users.ToList();
|
||||
foreach (var user in userList)
|
||||
{
|
||||
_remoteDatabaseContext.Entry(user).State = EntityState.Deleted;
|
||||
}
|
||||
_remoteDatabaseContext.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException($"Группа с ID {groupId} не найдена.");
|
||||
}
|
||||
}
|
||||
|
||||
public void AddStudentToGroup(int groupId, UserDao student)
|
||||
{
|
||||
var group = _remoteDatabaseContext.Groups.Include(g => g.Users).FirstOrDefault(g => g.Id == groupId);
|
||||
if (group != null)
|
||||
{
|
||||
// Проверка на уникальность студента
|
||||
if (group.Users.Any(u => u.Guid == student.Guid))
|
||||
{
|
||||
throw new ArgumentException($"Студент с GUID {student.Guid} уже добавлен в эту группу.");
|
||||
}
|
||||
|
||||
// Создаём нового студента и добавляем его в контекст
|
||||
_remoteDatabaseContext.Users.Add(student); // Добавляем нового студента в Users
|
||||
|
||||
// Привязываем студента к группе
|
||||
student.GroupID = group.Id; // Устанавливаем внешний ключ (или ссылку на группу)
|
||||
|
||||
// Сохраняем изменения в контексте
|
||||
_remoteDatabaseContext.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException($"Группа с ID {groupId} не найдена.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
220
data/Repository/SQLPresenceRepositoryImpl.cs
Normal file
220
data/Repository/SQLPresenceRepositoryImpl.cs
Normal file
@ -0,0 +1,220 @@
|
||||
using data.RemoteData.DAO;
|
||||
using domain.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using data.RemoteData;
|
||||
|
||||
namespace data.Repository
|
||||
{
|
||||
public class SQLPresenceRepositoryImpl : IPresenceRepository
|
||||
{
|
||||
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
||||
|
||||
public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
||||
{
|
||||
_remoteDatabaseContext = remoteDatabaseContext;
|
||||
}
|
||||
|
||||
public void SavePresence(List<PresenceLocalEntity> 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);
|
||||
}
|
||||
|
||||
public List<PresenceLocalEntity> GetPresenceByGroup(int groupId)
|
||||
{
|
||||
return _remoteDatabaseContext.PresenceDaos.Include(user => user.UserDao)
|
||||
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId) // Проверяем на null
|
||||
.Select(p => new PresenceLocalEntity
|
||||
{
|
||||
Date = p.Date.ToDateTime(TimeOnly.MinValue),
|
||||
UserGuid = p.UserGuid,
|
||||
LessonNumber = p.LessonNumber,
|
||||
IsAttedance = p.IsAttedance
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date)
|
||||
{
|
||||
return _remoteDatabaseContext.PresenceDaos
|
||||
.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)
|
||||
{
|
||||
foreach (var lesson in Enumerable.Range(firstLessonNumber, lastLessonNumber - firstLessonNumber + 1))
|
||||
{
|
||||
var presence = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p =>
|
||||
p.UserGuid == userGuid &&
|
||||
p.LessonNumber == lesson);
|
||||
|
||||
if (presence != null)
|
||||
{
|
||||
presence.IsAttedance = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DateOnly? GetLastDateByGroupId(int groupId)
|
||||
{
|
||||
// Проверим наличие записей о посещаемости в бд
|
||||
var lastDate = _remoteDatabaseContext.PresenceDaos
|
||||
.Where(p => 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.GroupID == groupId)
|
||||
.OrderBy(p => p.Date).ThenBy(p => p.LessonNumber)
|
||||
.ToList();
|
||||
|
||||
|
||||
var distinctLessonDates = presences
|
||||
.Select(p => new { p.Date, p.LessonNumber })
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
int lessonCount = distinctLessonDates.Count;
|
||||
|
||||
|
||||
var userGuids = presences
|
||||
.Select(p => p.UserGuid)
|
||||
.Distinct()
|
||||
.ToHashSet();
|
||||
|
||||
double totalAttendance = presences.Count(p => p.IsAttedance);
|
||||
double totalPossibleAttendance = userGuids.Count * lessonCount;
|
||||
|
||||
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 / (attended + missed)) * 100
|
||||
};
|
||||
}).ToList();
|
||||
|
||||
// Рассчитываем процент посещаемости в заданной группе
|
||||
double totalAttendancePercentage = (totalAttendance / totalPossibleAttendance) * 100;
|
||||
|
||||
return new GroupPresenceSummary
|
||||
{
|
||||
UserCount = userGuids.Count,
|
||||
LessonCount = lessonCount,
|
||||
TotalAttendancePercentage = totalAttendancePercentage,
|
||||
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.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<PresenceDao> GetAttendanceByGroup(int groupId)
|
||||
{
|
||||
|
||||
var userGuidsInGroup = _remoteDatabaseContext.Users
|
||||
.Where(u => u.GroupID == groupId)
|
||||
.Select(u => u.Guid)
|
||||
.ToList();
|
||||
|
||||
// Фильтруем посещаемость по пользователям из этой группы
|
||||
return _remoteDatabaseContext.PresenceDaos
|
||||
.Where(p => userGuidsInGroup.Contains(p.UserGuid))
|
||||
.Select(p => new PresenceDao
|
||||
{
|
||||
UserGuid = p.UserGuid,
|
||||
Id = p.Id,
|
||||
Date = p.Date,
|
||||
LessonNumber = p.LessonNumber,
|
||||
IsAttedance = p.IsAttedance
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public void ClearAllPresence()
|
||||
{
|
||||
var allPresenceRecords = _remoteDatabaseContext.PresenceDaos.ToList();
|
||||
_remoteDatabaseContext.PresenceDaos.RemoveRange(allPresenceRecords);
|
||||
_remoteDatabaseContext.SaveChanges();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
102
data/Repository/SQLUserRepositoryImpl.cs
Normal file
102
data/Repository/SQLUserRepositoryImpl.cs
Normal file
@ -0,0 +1,102 @@
|
||||
using data.Exception;
|
||||
using data.RemoteData;
|
||||
using data.RemoteData.DAO;
|
||||
using domain.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace data.Repository
|
||||
{
|
||||
public class SQLUserRepositoryImpl : IUserRepository
|
||||
{
|
||||
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
||||
|
||||
public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
||||
{
|
||||
_remoteDatabaseContext = remoteDatabaseContext;
|
||||
}
|
||||
|
||||
|
||||
public IEnumerable<UserLocalEnity> GetAllUsers => _remoteDatabaseContext.Users
|
||||
.Select(u => new UserLocalEnity
|
||||
{
|
||||
Guid = u.Guid,
|
||||
FIO = u.FIO,
|
||||
GroupID = u.GroupID
|
||||
})
|
||||
.ToList();
|
||||
|
||||
public bool RemoveUserByGuid(Guid userGuid)
|
||||
{
|
||||
var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == userGuid);
|
||||
if (user == null) throw new UserNotFoundException(userGuid);
|
||||
|
||||
_remoteDatabaseContext.Users.Remove(user);
|
||||
_remoteDatabaseContext.SaveChanges();
|
||||
return true;
|
||||
}
|
||||
|
||||
public UserLocalEnity? UpdateUser(UserLocalEnity user)
|
||||
{
|
||||
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();
|
||||
|
||||
// Возвращаем обновленный объект UserLocalEnity
|
||||
return new UserLocalEnity
|
||||
{
|
||||
Guid = existingUser.Guid,
|
||||
FIO = existingUser.FIO,
|
||||
GroupID = existingUser.GroupID
|
||||
};
|
||||
}
|
||||
|
||||
// Дополнительный метод для DAO, если требуется
|
||||
public IEnumerable<RemoteData.DAO.UserDao> GetAllUsersDao => _remoteDatabaseContext.Users.ToList();
|
||||
|
||||
public List<UserDao> GetUserNames()
|
||||
{
|
||||
return _remoteDatabaseContext.Users
|
||||
.Select(u => new UserDao { Guid = u.Guid, FIO = u.FIO })
|
||||
.ToList();
|
||||
}
|
||||
|
||||
|
||||
public UserDao GetUserInfo(Guid userGuid)
|
||||
{
|
||||
return _remoteDatabaseContext.Users
|
||||
.Include(u => u.Group)
|
||||
.FirstOrDefault(u => u.Guid == userGuid);
|
||||
}
|
||||
|
||||
public bool AddUser(UserDao user)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var userDao = new UserDao
|
||||
{
|
||||
Guid = user.Guid,
|
||||
FIO = user.FIO,
|
||||
GroupID = user.GroupID // Привязываем к группе
|
||||
};
|
||||
|
||||
// Добавляем пользователя в контекст базы данных
|
||||
_remoteDatabaseContext.Users.Add(userDao);
|
||||
_remoteDatabaseContext.SaveChanges(); // Сохраняем изменения
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
// Логирование ошибки (при необходимости)
|
||||
Console.WriteLine($"Ошибка при добавлении пользователя: {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
818
data/bin/Debug/net8.0/data.deps.json
Normal file
818
data/bin/Debug/net8.0/data.deps.json
Normal file
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
BIN
data/bin/Debug/net8.0/data.dll
Normal file
BIN
data/bin/Debug/net8.0/data.dll
Normal file
Binary file not shown.
BIN
data/bin/Debug/net8.0/data.pdb
Normal file
BIN
data/bin/Debug/net8.0/data.pdb
Normal file
Binary file not shown.
13
data/bin/Debug/net8.0/data.runtimeconfig.json
Normal file
13
data/bin/Debug/net8.0/data.runtimeconfig.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
18
data/data.csproj
Normal file
18
data/data.csproj
Normal file
@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.10">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
23
data/obj/Debug/net8.0/data.AssemblyInfo.cs
Normal file
23
data/obj/Debug/net8.0/data.AssemblyInfo.cs
Normal file
@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
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.AssemblyProductAttribute("data")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("data")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Создано классом WriteCodeFragment MSBuild.
|
||||
|
1
data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache
Normal file
1
data/obj/Debug/net8.0/data.AssemblyInfoInputs.cache
Normal file
@ -0,0 +1 @@
|
||||
6741393a5fe1cc20988265f6fd0e8bdd33ee4b9cc7b9e110a41e548fdd825a94
|
@ -0,0 +1,15 @@
|
||||
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 = data
|
||||
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Presence_Desktop\data\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.EffectiveAnalysisLevelStyle = 8.0
|
||||
build_property.EnableCodeStyleSeverity =
|
8
data/obj/Debug/net8.0/data.GlobalUsings.g.cs
Normal file
8
data/obj/Debug/net8.0/data.GlobalUsings.g.cs
Normal 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;
|
BIN
data/obj/Debug/net8.0/data.assets.cache
Normal file
BIN
data/obj/Debug/net8.0/data.assets.cache
Normal file
Binary file not shown.
BIN
data/obj/Debug/net8.0/data.csproj.AssemblyReference.cache
Normal file
BIN
data/obj/Debug/net8.0/data.csproj.AssemblyReference.cache
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
c7acb29908b3966ffb5693e372456295524e33c6a5b186d54dac244b2227b19c
|
28
data/obj/Debug/net8.0/data.csproj.FileListAbsolute.txt
Normal file
28
data/obj/Debug/net8.0/data.csproj.FileListAbsolute.txt
Normal file
@ -0,0 +1,28 @@
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\bin\Debug\net8.0\data.deps.json
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\bin\Debug\net8.0\data.runtimeconfig.json
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\bin\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\bin\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.AssemblyInfo.cs
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\refint\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\data.genruntimeconfig.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\data\obj\Debug\net8.0\ref\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\bin\Debug\net8.0\data.deps.json
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\bin\Debug\net8.0\data.runtimeconfig.json
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\bin\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\bin\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.AssemblyInfo.cs
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\refint\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\data.genruntimeconfig.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\data\obj\Debug\net8.0\ref\data.dll
|
BIN
data/obj/Debug/net8.0/data.dll
Normal file
BIN
data/obj/Debug/net8.0/data.dll
Normal file
Binary file not shown.
1
data/obj/Debug/net8.0/data.genruntimeconfig.cache
Normal file
1
data/obj/Debug/net8.0/data.genruntimeconfig.cache
Normal file
@ -0,0 +1 @@
|
||||
b58cec2a6d9b147ad4df4c2fbc7d48f0bda35cd83cd7a90590cb83a3420f0814
|
BIN
data/obj/Debug/net8.0/data.pdb
Normal file
BIN
data/obj/Debug/net8.0/data.pdb
Normal file
Binary file not shown.
BIN
data/obj/Debug/net8.0/ref/data.dll
Normal file
BIN
data/obj/Debug/net8.0/ref/data.dll
Normal file
Binary file not shown.
BIN
data/obj/Debug/net8.0/refint/data.dll
Normal file
BIN
data/obj/Debug/net8.0/refint/data.dll
Normal file
Binary file not shown.
89
data/obj/data.csproj.nuget.dgspec.json
Normal file
89
data/obj/data.csproj.nuget.dgspec.json
Normal file
@ -0,0 +1,89 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"projectName": "data",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
23
data/obj/data.csproj.nuget.g.props
Normal file
23
data/obj/data.csproj.nuget.g.props
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\VivoBook 15X\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\VivoBook 15X\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design\8.0.10\build\net8.0\Microsoft.EntityFrameworkCore.Design.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\VivoBook 15X\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||
</PropertyGroup>
|
||||
</Project>
|
7
data/obj/data.csproj.nuget.g.targets
Normal file
7
data/obj/data.csproj.nuget.g.targets
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
2197
data/obj/project.assets.json
Normal file
2197
data/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
47
data/obj/project.nuget.cache
Normal file
47
data/obj/project.nuget.cache
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "F7TgqmcgHJc=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\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",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.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.design\\8.0.10\\microsoft.entityframeworkcore.design.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.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.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\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.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\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.io.pipelines\\6.0.3\\system.io.pipelines.6.0.3.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
10
domain/Models/Group.cs
Normal file
10
domain/Models/Group.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace domain.Models
|
||||
{
|
||||
public class Group
|
||||
{
|
||||
public required int Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
public List<User> Users { get; set; } = new List<User>();
|
||||
}
|
||||
}
|
8
domain/Models/GroupWithStudentsDto.cs
Normal file
8
domain/Models/GroupWithStudentsDto.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace domain.Models
|
||||
{
|
||||
public class GroupWithStudentsDto
|
||||
{
|
||||
public string GroupName { get; set; }
|
||||
public List<string> Students { get; set; }
|
||||
}
|
||||
}
|
13
domain/Models/Presence.cs
Normal file
13
domain/Models/Presence.cs
Normal file
@ -0,0 +1,13 @@
|
||||
namespace domain.Models
|
||||
{
|
||||
public class Presence
|
||||
{
|
||||
|
||||
public required User User { get; set; }
|
||||
public required int GroupId { get; set; }
|
||||
public bool IsAttedance { get; set; } = true;
|
||||
public required DateTime Date { get; set; }
|
||||
|
||||
public required int LessonNumber { get; set; }
|
||||
}
|
||||
}
|
16
domain/Models/User.cs
Normal file
16
domain/Models/User.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace domain.Models
|
||||
{
|
||||
public class User
|
||||
{
|
||||
public required string FIO { get; set; }
|
||||
public Guid Guid { get; set; }
|
||||
public int GroupId { get; set; }
|
||||
public Group? Group { get; set; }
|
||||
}
|
||||
}
|
158
domain/UseCase/GroupUseCase.cs
Normal file
158
domain/UseCase/GroupUseCase.cs
Normal file
@ -0,0 +1,158 @@
|
||||
using data.RemoteData.DAO;
|
||||
using data.Repository;
|
||||
using domain.Models;
|
||||
|
||||
namespace domain.UseCase
|
||||
{
|
||||
public class GroupUseCase
|
||||
{
|
||||
private readonly IGroupRepository _repositoryGroupImpl;
|
||||
|
||||
public GroupUseCase(IGroupRepository repositoryGroupImpl)
|
||||
{
|
||||
_repositoryGroupImpl = repositoryGroupImpl;
|
||||
}
|
||||
|
||||
|
||||
private GroupLocalEntity ValidateGroupExistence(int groupId)
|
||||
{
|
||||
var existingGroup = _repositoryGroupImpl.GetAllGroup()
|
||||
.FirstOrDefault(g => g.Id == groupId);
|
||||
|
||||
if (existingGroup == null)
|
||||
{
|
||||
throw new ArgumentException("Группа не найдена.");
|
||||
}
|
||||
|
||||
|
||||
return new GroupLocalEntity
|
||||
{
|
||||
Id = existingGroup.Id,
|
||||
Name = existingGroup.Name
|
||||
};
|
||||
}
|
||||
|
||||
public List<Group> GetAllGroups()
|
||||
{
|
||||
return [.. _repositoryGroupImpl.GetAllGroup()
|
||||
.Select(it => new Group { Id = it.Id, Name = it.Name })];
|
||||
}
|
||||
|
||||
|
||||
public Group FindGroupById(int groupId)
|
||||
{
|
||||
var group = GetAllGroups().FirstOrDefault(g => g.Id == groupId);
|
||||
|
||||
if (group == null)
|
||||
{
|
||||
throw new ArgumentException("Группа не найдена.");
|
||||
}
|
||||
|
||||
return group;
|
||||
}
|
||||
|
||||
|
||||
public void AddGroup(string groupName)
|
||||
{
|
||||
|
||||
|
||||
var newId = _repositoryGroupImpl.GetAllGroup().Any()
|
||||
? _repositoryGroupImpl.GetAllGroup().Max(g => g.Id) + 1
|
||||
: 1;
|
||||
|
||||
GroupDao newGroup = new GroupDao
|
||||
{
|
||||
Id = newId,
|
||||
Name = groupName
|
||||
};
|
||||
|
||||
_repositoryGroupImpl.AddGroup(newGroup);
|
||||
}
|
||||
|
||||
public void RemoveGroupById(int groupId)
|
||||
{
|
||||
|
||||
var existingGroup = ValidateGroupExistence(groupId);
|
||||
List<Group> _groups = GetAllGroups();
|
||||
|
||||
// Находим группу по ID и удаляем ее
|
||||
var groupToRemove = _groups.FirstOrDefault(g => g.Id == existingGroup.Id);
|
||||
if (groupToRemove != null)
|
||||
{
|
||||
_groups.Remove(groupToRemove);
|
||||
_repositoryGroupImpl.RemoveGroupById(existingGroup.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Группа не найдена.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Метод для изменения названия группы
|
||||
public bool UpdateGroup(int groupId, string newGroupName)
|
||||
{
|
||||
var existingGroup = _repositoryGroupImpl.GetAllGroup()
|
||||
.FirstOrDefault(g => g.Id == groupId);
|
||||
|
||||
if (existingGroup == null)
|
||||
{
|
||||
return false; // Группа с таким ID не найдена
|
||||
}
|
||||
|
||||
existingGroup.Name = newGroupName;
|
||||
_repositoryGroupImpl.UpdateGroupById(existingGroup.Id, existingGroup);
|
||||
return true; // Успешное обновление
|
||||
}
|
||||
public List<Group> GetAllGroupWithStident()
|
||||
{
|
||||
// Загружаем группы с пользователями
|
||||
var groups = _repositoryGroupImpl.GetAllGroupWithStident()
|
||||
.Select(g => new Group
|
||||
{
|
||||
Id = g.Id,
|
||||
Name = g.Name,
|
||||
Users = g.Users.Select(u => new User
|
||||
{
|
||||
Guid = u.Guid,
|
||||
FIO = u.FIO
|
||||
}).ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
||||
public void RemoveAllStudentsFromGroup(int groupId)
|
||||
{
|
||||
var existingGroup = ValidateGroupExistence(groupId);
|
||||
_repositoryGroupImpl.RemoveAllStudentsFromGroup(existingGroup.Id);
|
||||
}
|
||||
|
||||
public void AddStudentToGroup(int groupId, User newStudent)
|
||||
{
|
||||
// Проверяем существование группы по ID
|
||||
var existingGroup = ValidateGroupExistence(groupId);
|
||||
|
||||
// Создаем UserDao для добавления в базу данных
|
||||
UserDao studentDao = new UserDao
|
||||
{
|
||||
Guid = newStudent.Guid,
|
||||
FIO = newStudent.FIO
|
||||
};
|
||||
|
||||
// Проверка существования пользователя в группе (по GUID)
|
||||
var existingStudent = existingGroup.Users.FirstOrDefault(u => u.Guid == newStudent.Guid);
|
||||
if (existingStudent != null)
|
||||
{
|
||||
throw new ArgumentException($"Студент с GUID {newStudent.Guid} уже добавлен в эту группу.");
|
||||
}
|
||||
|
||||
// Добавляем студента в группу
|
||||
_repositoryGroupImpl.AddStudentToGroup(existingGroup.Id, studentDao);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
48
domain/UseCase/UseCaseAPI.cs
Normal file
48
domain/UseCase/UseCaseAPI.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using data.RemoteData.DAO;
|
||||
using data.Repository;
|
||||
using domain.Models;
|
||||
|
||||
namespace domain.UseCase
|
||||
{
|
||||
public class UseCaseAPI
|
||||
{
|
||||
public readonly IUserRepository _userRepository;
|
||||
public readonly IPresenceRepository _presenceRepository;
|
||||
private readonly IGroupRepository _groupRepository;
|
||||
|
||||
public UseCaseAPI(IUserRepository userRepository, IPresenceRepository presenceRepository, IGroupRepository groupRepository)
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
_presenceRepository = presenceRepository;
|
||||
_groupRepository = groupRepository;
|
||||
}
|
||||
|
||||
public void AddGroupWithStudents(GroupWithStudentsDto groupDto)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(groupDto.GroupName))
|
||||
throw new ArgumentException("Название группы не может быть пустым.");
|
||||
|
||||
// Создаем группу
|
||||
var newGroup = new GroupDao
|
||||
{
|
||||
Name = groupDto.GroupName
|
||||
};
|
||||
|
||||
// Сохраняем группу и получаем ее ID
|
||||
int groupId = _groupRepository.AddGroup(newGroup);
|
||||
|
||||
// Если есть пользователи, добавляем их
|
||||
foreach (var studentFio in groupDto.Students)
|
||||
{
|
||||
var user = new UserDao
|
||||
{
|
||||
FIO = studentFio,
|
||||
GroupID = groupId,
|
||||
Guid = Guid.NewGuid() // Генерация нового GUID
|
||||
};
|
||||
_userRepository.AddUser(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
183
domain/UseCase/UseCaseGeneratePresence.cs
Normal file
183
domain/UseCase/UseCaseGeneratePresence.cs
Normal file
@ -0,0 +1,183 @@
|
||||
using ClosedXML.Excel;
|
||||
using data.RemoteData.DAO;
|
||||
using data.Repository;
|
||||
using domain.Models;
|
||||
|
||||
namespace domain.UseCase
|
||||
{
|
||||
public class UseCaseGeneratePresence
|
||||
{
|
||||
public readonly IUserRepository _userRepository;
|
||||
public readonly IPresenceRepository _presenceRepository;
|
||||
private readonly IGroupRepository _groupRepository;
|
||||
|
||||
public UseCaseGeneratePresence(IUserRepository userRepository, IPresenceRepository presenceRepository, IGroupRepository groupRepository)
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
_presenceRepository = presenceRepository;
|
||||
_groupRepository = groupRepository;
|
||||
}
|
||||
|
||||
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date)
|
||||
{
|
||||
return _presenceRepository.GetPresenceByGroupAndDate(groupId, date);
|
||||
}
|
||||
|
||||
|
||||
public void GeneratePresenceForDay(int firstLesson, int lastLesson, int groupId, DateTime currentDate)
|
||||
{
|
||||
// Проверка существования группы
|
||||
var groupExists = _groupRepository.GetAllGroup().Any(g => g.Id == groupId);
|
||||
if (!groupExists)
|
||||
{
|
||||
throw new ArgumentException($"Группа с ID {groupId} не существует.");
|
||||
}
|
||||
|
||||
var users = _userRepository.GetAllUsers.Where(u => u.GroupID == groupId).ToList();
|
||||
List<PresenceLocalEntity> presences = new List<PresenceLocalEntity>();
|
||||
for (int lessonNumber = firstLesson; lessonNumber <= lastLesson; lessonNumber++)
|
||||
{
|
||||
foreach (var user in users)
|
||||
{
|
||||
presences.Add(new PresenceLocalEntity
|
||||
{
|
||||
UserGuid = user.Guid,
|
||||
Date = currentDate,
|
||||
LessonNumber = lessonNumber,
|
||||
IsAttedance = true
|
||||
});
|
||||
}
|
||||
}
|
||||
_presenceRepository.SavePresence(presences);
|
||||
}
|
||||
|
||||
public void GeneratePresenceForWeek(int firstLesson, int lastLesson, int groupId, DateTime startTime)
|
||||
{
|
||||
// Проверка существования группы
|
||||
var groupExists = _groupRepository.GetAllGroup().Any(g => g.Id == groupId);
|
||||
if (!groupExists)
|
||||
{
|
||||
throw new ArgumentException($"Группа с ID {groupId} не существует.");
|
||||
}
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
DateTime currentTime = startTime.AddDays(i);
|
||||
GeneratePresenceForDay(firstLesson, lastLesson, groupId, currentTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void MarkUserAsAbsent(Guid userGuid, int groupId, int firstLesson, int lastLesson, DateTime date)
|
||||
{
|
||||
var presences = _presenceRepository.GetPresenceByGroupAndDate(groupId, date);
|
||||
foreach (var presence in presences.Where(p => p.UserGuid == userGuid && p.LessonNumber >= firstLesson && p.LessonNumber <= lastLesson))
|
||||
{
|
||||
presence.IsAttedance = false;
|
||||
}
|
||||
_presenceRepository.SavePresence(presences);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<PresenceLocalEntity> GetAllPresenceByGroup(int groupId)
|
||||
{
|
||||
return _presenceRepository.GetPresenceByGroup(groupId);
|
||||
}
|
||||
|
||||
public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId)
|
||||
{
|
||||
return _presenceRepository.GetGeneralPresenceForGroup(groupId);
|
||||
}
|
||||
|
||||
public Dictionary<string, List<Excel>> GetAllAttendanceByGroups()
|
||||
{
|
||||
var attendanceByGroup = new Dictionary<string, List<Excel>>();
|
||||
var allGroups = _groupRepository.GetAllGroup();
|
||||
|
||||
foreach (var group in allGroups)
|
||||
{
|
||||
var groupAttendance = _presenceRepository.GetAttendanceByGroup(group.Id);
|
||||
var attendanceRecords = new List<Excel>();
|
||||
|
||||
foreach (var record in groupAttendance)
|
||||
{
|
||||
var names = _userRepository.GetUserNames().Where(u => u.Guid == record.UserGuid);
|
||||
foreach (var name in names)
|
||||
{
|
||||
attendanceRecords.Add(new Excel
|
||||
{
|
||||
UserName = name.FIO,
|
||||
UserGuid = name.Guid,
|
||||
Date = record.Date,
|
||||
IsAttedance = record.IsAttedance,
|
||||
LessonNumber = record.LessonNumber,
|
||||
GroupName = group.Name
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
attendanceByGroup.Add(group.Name, attendanceRecords);
|
||||
}
|
||||
|
||||
return attendanceByGroup;
|
||||
}
|
||||
|
||||
public void ExportAttendanceToExcel()
|
||||
{
|
||||
var attendanceByGroup = GetAllAttendanceByGroups();
|
||||
string projectDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName;
|
||||
string reportsFolderPath = Path.Combine(projectDirectory, "Reports");
|
||||
string filePath = Path.Combine(reportsFolderPath, "AttendanceReport.xlsx");
|
||||
|
||||
// Создаем папку, если ее нет
|
||||
if (!Directory.Exists(reportsFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(reportsFolderPath);
|
||||
}
|
||||
using (var workbook = new XLWorkbook())
|
||||
{
|
||||
foreach (var group in attendanceByGroup)
|
||||
{
|
||||
var worksheet = workbook.Worksheets.Add($"{group.Key}");
|
||||
worksheet.Cell(1, 1).Value = "ФИО";
|
||||
worksheet.Cell(1, 2).Value = "Группа";
|
||||
worksheet.Cell(1, 3).Value = "Дата";
|
||||
worksheet.Cell(1, 4).Value = "Занятие";
|
||||
worksheet.Cell(1, 5).Value = "Статус";
|
||||
|
||||
int row = 2;
|
||||
int lesNum = 1;
|
||||
foreach (var record in group.Value.OrderBy(r => r.Date).ThenBy(r => r.LessonNumber).ThenBy(r => r.UserGuid))
|
||||
{
|
||||
if (lesNum != record.LessonNumber)
|
||||
{
|
||||
row++;
|
||||
}
|
||||
worksheet.Cell(row, 1).Value = record.UserName;
|
||||
worksheet.Cell(row, 2).Value = record.GroupName;
|
||||
worksheet.Cell(row, 3).Value = record.Date.ToString("dd.MM.yyyy");
|
||||
worksheet.Cell(row, 4).Value = record.LessonNumber.ToString();
|
||||
worksheet.Cell(row, 5).Value = record.IsAttedance ? "Присутствует" : "Отсутствует";
|
||||
row++;
|
||||
|
||||
|
||||
|
||||
lesNum = record.LessonNumber;
|
||||
}
|
||||
|
||||
worksheet.Columns().AdjustToContents();
|
||||
}
|
||||
|
||||
workbook.SaveAs(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearAllPresence()
|
||||
{
|
||||
_presenceRepository.ClearAllPresence();
|
||||
}
|
||||
}
|
||||
}
|
115
domain/UseCase/UserUseCase.cs
Normal file
115
domain/UseCase/UserUseCase.cs
Normal file
@ -0,0 +1,115 @@
|
||||
using data.Exception;
|
||||
using data.RemoteData.DAO;
|
||||
using data.Repository;
|
||||
using domain.Models;
|
||||
|
||||
namespace domain.UseCase
|
||||
{
|
||||
public class UserUseCase
|
||||
{
|
||||
private readonly IUserRepository _repositoryUserImpl;
|
||||
private readonly IGroupRepository _repositoryGroupImpl;
|
||||
|
||||
public UserUseCase(IUserRepository repositoryImpl, IGroupRepository repositoryGroupImpl)
|
||||
{
|
||||
_repositoryUserImpl = repositoryImpl;
|
||||
_repositoryGroupImpl = repositoryGroupImpl;
|
||||
}
|
||||
|
||||
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers
|
||||
.Join(_repositoryGroupImpl.GetAllGroup(),
|
||||
user => user.GroupID,
|
||||
group => group.Id,
|
||||
(user, group) =>
|
||||
new User
|
||||
{
|
||||
FIO = user.FIO,
|
||||
Guid = user.Guid,
|
||||
Group = new Group { Id = group.Id, Name = group.Name }
|
||||
}).ToList();
|
||||
|
||||
public bool RemoveUserByGuid(Guid userGuid)
|
||||
{
|
||||
try
|
||||
{
|
||||
return _repositoryUserImpl.RemoveUserByGuid(userGuid);
|
||||
}
|
||||
catch (UserNotFoundException)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
catch (RepositoryException)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public User UpdateUser(User user)
|
||||
{
|
||||
UserLocalEnity userLocalEnity = new UserLocalEnity
|
||||
{
|
||||
FIO = user.FIO,
|
||||
GroupID = user.Group.Id,
|
||||
Guid = user.Guid
|
||||
};
|
||||
|
||||
UserLocalEnity? result = _repositoryUserImpl.UpdateUser(userLocalEnity);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
throw new Exception("Ошибка при обновлении пользователя.");
|
||||
}
|
||||
|
||||
var groupEntity = _repositoryGroupImpl.GetAllGroup().FirstOrDefault(g => g.Id == result.GroupID);
|
||||
|
||||
if (groupEntity == null)
|
||||
{
|
||||
throw new Exception("Группа не найдена.");
|
||||
}
|
||||
|
||||
return new User
|
||||
{
|
||||
FIO = result.FIO,
|
||||
Guid = result.Guid,
|
||||
Group = new Group
|
||||
{
|
||||
Id = groupEntity.Id,
|
||||
Name = groupEntity.Name
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public User FindUserByGuid(Guid userGuid)
|
||||
{
|
||||
var user = _repositoryUserImpl.GetAllUsers
|
||||
.FirstOrDefault(u => u.Guid == userGuid);
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
throw new Exception("Пользователь не найден.");
|
||||
}
|
||||
|
||||
var group = _repositoryGroupImpl.GetAllGroup()
|
||||
.FirstOrDefault(g => g.Id == user.GroupID);
|
||||
|
||||
if (group == null)
|
||||
{
|
||||
throw new Exception("Группа не найдена.");
|
||||
}
|
||||
|
||||
return new User
|
||||
{
|
||||
FIO = user.FIO,
|
||||
Guid = user.Guid,
|
||||
Group = new Group { Id = group.Id, Name = group.Name }
|
||||
};
|
||||
}
|
||||
public UserDao GetUserInfo(Guid userGuid)
|
||||
{
|
||||
return _repositoryUserImpl.GetUserInfo(userGuid);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
BIN
domain/bin/Debug/net8.0/data.dll
Normal file
BIN
domain/bin/Debug/net8.0/data.dll
Normal file
Binary file not shown.
BIN
domain/bin/Debug/net8.0/data.pdb
Normal file
BIN
domain/bin/Debug/net8.0/data.pdb
Normal file
Binary file not shown.
443
domain/bin/Debug/net8.0/domain.deps.json
Normal file
443
domain/bin/Debug/net8.0/domain.deps.json
Normal file
@ -0,0 +1,443 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v8.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v8.0": {
|
||||
"domain/1.0.0": {
|
||||
"dependencies": {
|
||||
"ClosedXML": "0.104.1",
|
||||
"data": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"domain.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"domain/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": ""
|
||||
}
|
||||
}
|
||||
}
|
BIN
domain/bin/Debug/net8.0/domain.dll
Normal file
BIN
domain/bin/Debug/net8.0/domain.dll
Normal file
Binary file not shown.
BIN
domain/bin/Debug/net8.0/domain.pdb
Normal file
BIN
domain/bin/Debug/net8.0/domain.pdb
Normal file
Binary file not shown.
17
domain/domain.csproj
Normal file
17
domain/domain.csproj
Normal file
@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ClosedXML" Version="0.104.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\data\data.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
23
domain/obj/Debug/net8.0/domain.AssemblyInfo.cs
Normal file
23
domain/obj/Debug/net8.0/domain.AssemblyInfo.cs
Normal file
@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("domain")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("domain")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("domain")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Создано классом WriteCodeFragment MSBuild.
|
||||
|
1
domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache
Normal file
1
domain/obj/Debug/net8.0/domain.AssemblyInfoInputs.cache
Normal file
@ -0,0 +1 @@
|
||||
50afef9105125301dd1c05ea9fb1e5f605a3f79c6aca753bbf0156749546e4dd
|
@ -0,0 +1,15 @@
|
||||
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 = domain
|
||||
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Presence_Desktop\domain\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.EffectiveAnalysisLevelStyle = 8.0
|
||||
build_property.EnableCodeStyleSeverity =
|
8
domain/obj/Debug/net8.0/domain.GlobalUsings.g.cs
Normal file
8
domain/obj/Debug/net8.0/domain.GlobalUsings.g.cs
Normal 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;
|
BIN
domain/obj/Debug/net8.0/domain.assets.cache
Normal file
BIN
domain/obj/Debug/net8.0/domain.assets.cache
Normal file
Binary file not shown.
BIN
domain/obj/Debug/net8.0/domain.csproj.AssemblyReference.cache
Normal file
BIN
domain/obj/Debug/net8.0/domain.csproj.AssemblyReference.cache
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
efe5008cf55f684a5e54b4cda3728b0910c38c9c75eda6c64b1c33e78ca28bd1
|
30
domain/obj/Debug/net8.0/domain.csproj.FileListAbsolute.txt
Normal file
30
domain/obj/Debug/net8.0/domain.csproj.FileListAbsolute.txt
Normal file
@ -0,0 +1,30 @@
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.deps.json
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\bin\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\bin\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.AssemblyReference.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.AssemblyInfoInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.AssemblyInfo.cs
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.CoreCompileInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.Up2Date
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\refint\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\переделка проекта\New_Presence_Desktop\domain\obj\Debug\net8.0\ref\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.deps.json
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\bin\Debug\net8.0\domain.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\bin\Debug\net8.0\data.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\bin\Debug\net8.0\data.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.AssemblyReference.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.AssemblyInfoInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.AssemblyInfo.cs
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.CoreCompileInputs.cache
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.csproj.Up2Date
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\refint\domain.dll
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\domain.pdb
|
||||
C:\Users\VivoBook 15X\Desktop\New_Presence_Desktop\domain\obj\Debug\net8.0\ref\domain.dll
|
0
domain/obj/Debug/net8.0/domain.csproj.Up2Date
Normal file
0
domain/obj/Debug/net8.0/domain.csproj.Up2Date
Normal file
BIN
domain/obj/Debug/net8.0/domain.dll
Normal file
BIN
domain/obj/Debug/net8.0/domain.dll
Normal file
Binary file not shown.
BIN
domain/obj/Debug/net8.0/domain.pdb
Normal file
BIN
domain/obj/Debug/net8.0/domain.pdb
Normal file
Binary file not shown.
BIN
domain/obj/Debug/net8.0/ref/domain.dll
Normal file
BIN
domain/obj/Debug/net8.0/ref/domain.dll
Normal file
Binary file not shown.
BIN
domain/obj/Debug/net8.0/refint/domain.dll
Normal file
BIN
domain/obj/Debug/net8.0/refint/domain.dll
Normal file
Binary file not shown.
164
domain/obj/domain.csproj.nuget.dgspec.json
Normal file
164
domain/obj/domain.csproj.nuget.dgspec.json
Normal file
@ -0,0 +1,164 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"projectName": "data",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj",
|
||||
"projectName": "domain",
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.csproj",
|
||||
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.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\\Presence_Desktop\\data\\data.csproj": {
|
||||
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\data\\data.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.100"
|
||||
},
|
||||
"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\\9.0.101/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
19
domain/obj/domain.csproj.nuget.g.props
Normal file
19
domain/obj/domain.csproj.nuget.g.props
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\VivoBook 15X\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\VivoBook 15X\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\8.0.10\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
7
domain/obj/domain.csproj.nuget.g.targets
Normal file
7
domain/obj/domain.csproj.nuget.g.targets
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
1100
domain/obj/project.assets.json
Normal file
1100
domain/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
32
domain/obj/project.nuget.cache
Normal file
32
domain/obj/project.nuget.cache
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "DIDz0HPdxeE=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Presence_Desktop\\domain\\domain.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": []
|
||||
}
|
55
presence.sln
Normal file
55
presence.sln
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "data", "data\data.csproj", "{7E1D482B-6976-4984-85C3-AE6E789E7FC2}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "domain", "domain\domain.csproj", "{53B2C28F-CCC6-4399-BA63-8A21E2D26B73}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ui", "ui\ui.csproj", "{1904560F-B17D-4598-AE5C-5FA0D0C2517B}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "console_ui", "console_ui\console_ui.csproj", "{214169B6-E77C-4C7D-8D64-6E5126C243FA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "presence_api", "presence_api\presence_api.csproj", "{E466FB14-716E-437F-9E6C-B2A0D786694C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presence.Desktop", "Presence.Desktop\Presence.Desktop.csproj", "{4A745F7C-B312-4411-AA95-5862597C7B0B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7E1D482B-6976-4984-85C3-AE6E789E7FC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7E1D482B-6976-4984-85C3-AE6E789E7FC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7E1D482B-6976-4984-85C3-AE6E789E7FC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7E1D482B-6976-4984-85C3-AE6E789E7FC2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{53B2C28F-CCC6-4399-BA63-8A21E2D26B73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{53B2C28F-CCC6-4399-BA63-8A21E2D26B73}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{53B2C28F-CCC6-4399-BA63-8A21E2D26B73}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{53B2C28F-CCC6-4399-BA63-8A21E2D26B73}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1904560F-B17D-4598-AE5C-5FA0D0C2517B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1904560F-B17D-4598-AE5C-5FA0D0C2517B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1904560F-B17D-4598-AE5C-5FA0D0C2517B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1904560F-B17D-4598-AE5C-5FA0D0C2517B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{214169B6-E77C-4C7D-8D64-6E5126C243FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{214169B6-E77C-4C7D-8D64-6E5126C243FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{214169B6-E77C-4C7D-8D64-6E5126C243FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{214169B6-E77C-4C7D-8D64-6E5126C243FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E466FB14-716E-437F-9E6C-B2A0D786694C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E466FB14-716E-437F-9E6C-B2A0D786694C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E466FB14-716E-437F-9E6C-B2A0D786694C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E466FB14-716E-437F-9E6C-B2A0D786694C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A745F7C-B312-4411-AA95-5862597C7B0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A745F7C-B312-4411-AA95-5862597C7B0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A745F7C-B312-4411-AA95-5862597C7B0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A745F7C-B312-4411-AA95-5862597C7B0B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {5A8F1312-CD1B-4C95-9164-E599D17138C9}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
127
presence_api/Controllers/AdminController/AdminController.cs
Normal file
127
presence_api/Controllers/AdminController/AdminController.cs
Normal file
@ -0,0 +1,127 @@
|
||||
using domain.Models;
|
||||
using domain.UseCase;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
|
||||
namespace presence_api.Controllers;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/admin")]
|
||||
|
||||
public class AdminController : ControllerBase
|
||||
{
|
||||
private readonly GroupUseCase _groupUseCase;
|
||||
private readonly UserUseCase _userUseCase;
|
||||
private readonly UseCaseGeneratePresence _presenceUseCase;
|
||||
private readonly UseCaseAPI _useCaseAPI;
|
||||
|
||||
public AdminController(GroupUseCase groupUseCase, UserUseCase userUseCase, UseCaseGeneratePresence presenceUseCase, UseCaseAPI useCaseAPI)
|
||||
{
|
||||
_groupUseCase = groupUseCase;
|
||||
_userUseCase = userUseCase;
|
||||
_presenceUseCase = presenceUseCase;
|
||||
_useCaseAPI = useCaseAPI;
|
||||
}
|
||||
|
||||
[HttpGet("student/{userGuid}")]
|
||||
public ActionResult GetStudentInfo(Guid userGuid)
|
||||
{
|
||||
// Получаем информацию о студенте
|
||||
var user = _userUseCase.GetUserInfo(userGuid); // Используем UserUseCase для получения данных о студенте
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
return NotFound("Студент не найден");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Формируем результат
|
||||
var result = new
|
||||
{
|
||||
FIO = user.FIO,
|
||||
Guid = user.Guid,
|
||||
GroupName = user.Group?.Name ?? "Не указана",
|
||||
|
||||
};
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[HttpGet("groups")]
|
||||
public ActionResult<List<GroupWithStudentsDto>> GetAllGroupsWithUsers()
|
||||
{
|
||||
try
|
||||
{
|
||||
// Получаем группы с пользователями
|
||||
var groupsWithUsers = _groupUseCase.GetAllGroupWithStident().Select(group => new GroupWithStudentsDto
|
||||
{
|
||||
GroupName = group.Name, // Название группы
|
||||
Students = group.Users.Select(u => u.FIO).ToList() // Список студентов
|
||||
}).ToList();
|
||||
|
||||
return Ok(groupsWithUsers); // Возвращаем результат
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Логируем ошибку и возвращаем ошибку
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("presence/clear")]
|
||||
public ActionResult ClearPresence()
|
||||
{
|
||||
try
|
||||
{
|
||||
_presenceUseCase.ClearAllPresence();
|
||||
return Ok(new { message = "Все записи присутствия успешно удалены." });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("groups/{groupId}")]
|
||||
public ActionResult RemoveGroupById(int groupId)
|
||||
{
|
||||
try
|
||||
{
|
||||
_groupUseCase.RemoveGroupById(groupId);
|
||||
return Ok(new { message = "Группа успешно удалена." });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("users/{userGuid}")]
|
||||
public ActionResult RemoveUserByGuid(Guid userGuid)
|
||||
{
|
||||
try
|
||||
{
|
||||
_userUseCase.RemoveUserByGuid(userGuid);
|
||||
return Ok(new { message = "Пользователь удален." });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest (new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("groups/add")]
|
||||
public IActionResult AddGroupWithStudents([FromBody] GroupWithStudentsDto groupDto)
|
||||
{
|
||||
try
|
||||
{
|
||||
_useCaseAPI.AddGroupWithStudents(groupDto);
|
||||
return Ok(new { message = "Группа успешно добавлена." });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
}
|
29
presence_api/Program.cs
Normal file
29
presence_api/Program.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using data.RemoteData;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddControllers();
|
||||
builder.Services.AddDbContext<RemoteDatabaseContext>();
|
||||
|
||||
builder.Services.ConfigurateAdminPanel();
|
||||
builder.Services.ConfigurateRepositories();
|
||||
|
||||
builder.Services.ConfigurateGroup();
|
||||
builder.Services.ConfigurateUser();
|
||||
builder.Services.ConfiguratePresence();
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseSwagger();
|
||||
app.UseSwaggerUI();
|
||||
}
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
app.MapControllers();
|
||||
|
||||
app.Run();
|
41
presence_api/Properties/launchSettings.json
Normal file
41
presence_api/Properties/launchSettings.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:27044",
|
||||
"sslPort": 44350
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"applicationUrl": "http://localhost:5181",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"applicationUrl": "https://localhost:7160;http://localhost:5181",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
42
presence_api/ServiceExtensions/ServiceExtensions.cs
Normal file
42
presence_api/ServiceExtensions/ServiceExtensions.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using data.Repository;
|
||||
using domain.UseCase;
|
||||
|
||||
public static class ServiceExtensions
|
||||
{
|
||||
public static void ConfigurateGroup(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IGroupRepository, SQLGroupRepositoryImpl>();
|
||||
services.AddScoped<GroupUseCase>();
|
||||
}
|
||||
|
||||
public static void ConfigurateUser(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IUserRepository, SQLUserRepositoryImpl>();
|
||||
services.AddScoped<UserUseCase>();
|
||||
}
|
||||
|
||||
public static void ConfiguratePresence(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IPresenceRepository, SQLPresenceRepositoryImpl>();
|
||||
services.AddScoped<UseCaseGeneratePresence>();
|
||||
}
|
||||
|
||||
public static void ConfigurateAdminPanel(this IServiceCollection services)
|
||||
{
|
||||
|
||||
services.AddScoped<IGroupRepository, SQLGroupRepositoryImpl>();
|
||||
services.AddScoped<IUserRepository, SQLUserRepositoryImpl>();
|
||||
services.AddScoped<IPresenceRepository, SQLPresenceRepositoryImpl>();
|
||||
services.AddScoped<GroupUseCase>();
|
||||
services.AddScoped<UserUseCase>();
|
||||
services.AddScoped<UseCaseGeneratePresence>();
|
||||
services.AddScoped<UseCaseAPI>();
|
||||
}
|
||||
|
||||
public static void ConfigurateRepositories(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IGroupRepository, SQLGroupRepositoryImpl>();
|
||||
services.AddScoped<IUserRepository, SQLUserRepositoryImpl>();
|
||||
services.AddScoped<IPresenceRepository, SQLPresenceRepositoryImpl>();
|
||||
}
|
||||
}
|
8
presence_api/appsettings.Development.json
Normal file
8
presence_api/appsettings.Development.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
9
presence_api/appsettings.json
Normal file
9
presence_api/appsettings.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user