add basic files

This commit is contained in:
NikitaOnianov 2024-11-16 11:29:24 +03:00
commit d828a3a2ad
126 changed files with 8443 additions and 0 deletions

2
console_ui/Program.cs Normal file
View File

@ -0,0 +1,2 @@
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

View File

@ -0,0 +1,20 @@
<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="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
</ItemGroup>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

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

View 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.

View File

@ -0,0 +1 @@
ba882f03fdfa9546ef7659464bc47e4a0ca2d53498595f377280140f0c41eed4

View File

@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = console_ui
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Новый репоз\new_presence\console_ui\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@ -0,0 +1,294 @@
{
"format": 1,
"restore": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj": {}
},
"projects": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj",
"projectName": "console_ui",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj",
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj"
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj"
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Microsoft.Extensions.DependencyInjection": {
"target": "Package",
"version": "[8.0.1, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json"
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Microsoft.EntityFrameworkCore": {
"target": "Package",
"version": "[8.0.10, )"
},
"Microsoft.EntityFrameworkCore.Design": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[8.0.10, )"
},
"Npgsql.EntityFrameworkCore.PostgreSQL": {
"target": "Package",
"version": "[8.0.10, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json"
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj",
"projectName": "domain",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj",
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"ClosedXML": {
"target": "Package",
"version": "[0.104.1, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json"
}
}
},
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj",
"projectName": "ui",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\ui.csproj",
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\ui\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj": {
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\domain\\domain.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -0,0 +1,18 @@
<?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\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\VivoBook 15X\.nuget\packages\" />
</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>

View 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>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
{
"version": 2,
"dgSpecHash": "j6r9nD42EAM=",
"success": true,
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\console_ui\\console_ui.csproj",
"expectedPackageFiles": [
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\closedxml\\0.104.1\\closedxml.0.104.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\documentformat.openxml\\3.0.1\\documentformat.openxml.3.0.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\documentformat.openxml.framework\\3.0.1\\documentformat.openxml.framework.3.0.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\excelnumberformat\\1.1.0\\excelnumberformat.1.1.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.10\\microsoft.entityframeworkcore.8.0.10.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.10\\microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.10\\microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.10\\microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\rbush\\3.2.0\\rbush.3.2.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\sixlabors.fonts\\1.0.0\\sixlabors.fonts.1.0.0.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\system.io.packaging\\8.0.0\\system.io.packaging.8.0.0.nupkg.sha512"
],
"logs": []
}

View File

@ -0,0 +1,11 @@
namespace data.Exception
{
// Конструктор исключения GroupNotFoundException.
// <param name="groupId">ID группы, которая не была найдена.
public class GroupNotFoundException : RepositoryException
{
public GroupNotFoundException(int groupId)
// Передаем сообщение об ошибке в базовый класс
: base($"Группа с ID {groupId} не найдена.") { }
}
}

View File

@ -0,0 +1,10 @@
// Базовый класс для исключений, связанных с репозиторием.
namespace data.Exception
{
// Конструктор класса RepositoryException.
public class RepositoryException : IOException
{
// Передаем сообщение об ошибке в базовый класс IOException
public RepositoryException(string message) : base(message) { }
}
}

View File

@ -0,0 +1,10 @@
// Конструктор, создающий исключение с сообщением об отсутствии пользователя.
namespace data.Exception
{
public class UserNotFoundException : RepositoryException
{
// Передача сообщения в базовый класс исключения RepositoryException.
public UserNotFoundException(Guid userGuid)
: base($"Пользователь с GUID {userGuid} не найден.") { }
}
}

View File

@ -0,0 +1,10 @@
// Пространство имен, содержащее модели домена.
namespace domain.Models
{
// Представляет локальную сущность группы в доменной модели.
public class GroupLocalEntity
{
public required int Id { get; set; } // ID группы.
public required string Name { get; set; } // Название группы.
}
}

View 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; }
}
}

View File

@ -0,0 +1,18 @@
namespace domain.Models
{
// Представляет локальную сущность пользователя.
public class UserLocalEntity : IEquatable<UserLocalEntity>
{
// Уникальный идентификатор пользователя.
public Guid Guid { get; set; }
// Полное имя пользователя.
public required string FIO { get; set; }
// Идентификатор группы, к которой принадлежит пользователь.
public required int GroupID { get; set; }
// Реализация сравнения для проверки равенства пользователей по их Guid
public bool Equals(UserLocalEntity? other) => other?.Guid == Guid;
}
}

View File

@ -0,0 +1,30 @@
using domain.Models;
namespace data.LocalData
{
// Класс, содержащий статические данные для локального использования.
public static class LocalStaticData
{
// Список групп
public static List<GroupLocalEntity> groups => new List<GroupLocalEntity>
{
new GroupLocalEntity{ Id = 1, Name = "ИП1-21" },
new GroupLocalEntity{ Id = 2, Name = "ИП1-22" },
new GroupLocalEntity{ Id = 3, Name = "ИП1-23" },
};
// Список пользователей
public static List<UserLocalEntity> users => new List<UserLocalEntity>
{
new UserLocalEntity{Guid=Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "RandomFio", GroupID = 1 },
new UserLocalEntity{Guid=Guid.Parse("8388d931-5bef-41be-a152-78f1aca980ed"), FIO = "RandomFio1", GroupID = 2 },
new UserLocalEntity{Guid=Guid.Parse("ed174548-49ed-4503-a902-c970cbf27173"), FIO = "RandomFio2", GroupID = 3 },
new UserLocalEntity{Guid=Guid.Parse("614c0a23-5bd5-43ae-b48e-d5750afbc282"), FIO = "RandomFio3", GroupID = 1 },
new UserLocalEntity{Guid=Guid.Parse("efcc1473-c116-4244-b3f7-f2341a5c3003"), FIO = "RandomFio4", GroupID = 2 },
new UserLocalEntity{Guid=Guid.Parse("60640fb3-ace2-4cad-81d5-a0a58bc2dbbd"), FIO = "RandomFio5", GroupID = 3 },
};
// Список посещаемости (изначально пустой)
public static List<PresenceLocalEntity> presences => new List<PresenceLocalEntity> { };
}
}

View File

@ -0,0 +1,25 @@
namespace data.RemoteData.DAO
{
public class Excel //Äëÿ çàïîëíåíèÿ ýêñåëÿ
{
// Óíèêàëüíûé èäåíòèôèêàòîð ïîëüçîâàòåëÿ.
public Guid UserGuid { get; set; }
// Ïîëíîå èìÿ ïîëüçîâàòåëÿ.
public string FullName { get; set; }
// Èìÿ ïîëüçîâàòåëÿ.
public string UserName { get; set; }
// Äàòà çàíÿòèÿ.
public DateOnly Date { get; set; }
// Ôëàã ïîñåùåíèÿ (true - ïîñåòèë, false - îòñóòñòâîâàë).
public bool IsAttedance { get; set; }
// Íîìåð óðîêà.
public int LessonNumber { get; set; }
// Íàçâàíèå ãðóïïû.
public string GroupName { get; set; } = string.Empty;
}
}

View 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>(); // Установка пустой коллекции по умолчанию
}
}

View File

@ -0,0 +1,25 @@
namespace data.RemoteData.DAO
{
// Представляет DAO для учета посещаемости.
public class PresenceDao
{
// ID записи посещаемости.
public int Id { get; set; }
// ID пользователя.
public Guid UserGuid { get; set; }
// Флаг, указывающий, был ли пользователь на уроке (по умолчанию - присутствует).
public bool IsAttedance { get; set; } = true;
// Дата урока.
public DateOnly Date { get; set; }
// Номер урока.
public int LessonNumber { get; set; }
// Связанный объект пользователя, если необходимо.
public virtual UserDao? UserDao { get; set; } = null;
}
}

View File

@ -0,0 +1,31 @@
namespace data.RemoteData.DAO
{
// Представляет DAO для пользователя.
public class UserDao
{
// ID пользователя.
public Guid Guid { get; set; }
// Полное имя пользователя.
public string FIO { get; set; } = string.Empty;
// Идентификатор группы, к которой принадлежит пользователь.
public int GroupID { get; set; }
// Связанная группа пользователя
private GroupDao? _group;
public virtual GroupDao Group
{
get => _group ?? throw new InvalidOperationException("Group is not initialized.");
set => _group = value ?? throw new ArgumentNullException(nameof(Group), "Group cannot be null.");
}
// Список посещаемости пользователя
private IEnumerable<PresenceDao> _presences = new List<PresenceDao>();
public virtual IEnumerable<PresenceDao> Presences
{
get => _presences;
set => _presences = value ?? throw new ArgumentNullException(nameof(Presences), "Presences cannot be null.");
}
}
}

View 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; }
}

View 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; }
}
}

View File

@ -0,0 +1,65 @@
using data.Exception;
using data.LocalData;
using data.RemoteData.DAO;
using data.Repository;
using domain.Models;
using System.Collections.Generic;
using System.Linq;
// Реализация репозитория для работы с группами.
public class GroupRepositoryImpl : IGroupRepository
{
// Локальный список групп, загружаемый из статических данных.
private List<GroupLocalEntity> _groups = LocalStaticData.groups;
// Метод для получения группы по идентификатору.
public GroupLocalEntity? GetGroupById(int groupId)
{
// Возвращает группу с указанным идентификатором или null, если такая группа не найдена.
return _groups.FirstOrDefault(g => g.Id == groupId);
}
// Метод для получения всех групп.
public List<GroupLocalEntity> GetAllGroup() => _groups;
// Метод для добавления новой группы.
public bool AddGroup(GroupLocalEntity group)
{
// Проверяет, существует ли уже группа с таким идентификатором.
if (_groups.Any(g => g.Id == group.Id))
return false; // Возвращает false, если группа уже существует.
// Устанавливает новый идентификатор для группы.
group.Id = _groups.Any() ? _groups.Max(g => g.Id) + 1 : 1;
// Добавляет группу в список.
_groups.Add(group);
return true; // Возвращает true, если группа успешно добавлена.
}
// Метод для обновления существующей группы.
public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup)
{
// Ищет существующую группу по ID.
var existingGroup = GetGroupById(groupID);
if (existingGroup == null)
return false; // Возвращает false, если группа не найдена.
// Обновляет название группы.
existingGroup.Name = updatedGroup.Name;
return true; // Возвращает true, если обновление успешно.
}
// Метод для удаления группы по ID.
public bool RemoveGroupById(int groupID)
{
// Ищет существующую группу по ID.
var existingGroup = GetGroupById(groupID);
if (existingGroup == null)
return false; // Возвращает false, если группа не найдена.
// Удаляет найденную группу из списка.
_groups.Remove(existingGroup);
return true; // Возвращает true, если удаление успешно.
}
}

View File

@ -0,0 +1,23 @@
using domain.Models;
namespace data.Repository
{
// Интерфейс для репозитория работы с группами.
public interface IGroupRepository
{
// Метод для получения группы по идентификатору.
GroupLocalEntity GetGroupById(int groupID);
// Метод для получения всех групп.
List<GroupLocalEntity> GetAllGroup();
// Метод для добавления новой группы.
bool AddGroup(GroupLocalEntity newGroup);
// Метод для обновления группы по идентификатору.
bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup);
// Метод для удаления группы по идентификатору.
bool RemoveGroupById(int groupID);
}
}

View File

@ -0,0 +1,37 @@
using data.RemoteData.DAO;
using domain.Models;
using System.Collections.Generic;
namespace data.Repository
{
// Интерфейс для репозитория работы с посещаемостью.
public interface IPresenceRepository
{
// Метод для добавления записи о посещении.
void AddPresence(PresenceLocalEntity presence);
// Метод для получения общей посещаемости группы.
public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId);
// Метод для получения посещаемости по группе.
List<PresenceLocalEntity> GetPresenceByGroup(int groupId);
// Метод для получения посещаемости группы в виде DAO объектов.
List<PresenceDao> GetAttendanceByGroup(int groupId);
// Метод для получения посещаемости по группе и дате.
List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date);
// Метод для получения последней даты посещаемости для группы.
DateOnly? GetLastDateByGroupId(int groupId);
// Метод для сохранения посещаемости для группы.
void SavePresence(List<PresenceLocalEntity> presences);
// Метод для обновления посещаемости для пользователя в указанном интервале уроков.
bool UpdateAttention(Guid UserGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance);
// Метод для пометки пользователя как отсутствующего в указанные уроки.
void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber);
}
}

View File

@ -0,0 +1,21 @@
using data.RemoteData.DAO;
using domain.Models;
namespace data.Repository
{
// Интерфейс для репозитория работы с пользователями.
public interface IUserRepository
{
// Свойство для получения всех пользователей.
IEnumerable<UserLocalEntity> GetAllUsers { get; }
// Метод для удаления пользователя по GUID.
bool RemoveUserByGuid(Guid userGuid);
// Метод для обновления данных пользователя.
UserLocalEntity? UpdateUser(UserLocalEntity user);
// Метод для получения списка пользователей в виде объектов UserDao (только их имена).
List<UserDao> GetUserNames();
}
}

View File

@ -0,0 +1,72 @@
using data.RemoteData.DAO;
using domain.Models;
namespace data.Repository
{
public class PresenceRepositoryImpl
{
// Коллекция для хранения данных о посещаемости.
private readonly List<PresenceLocalEntity> _presences = new List<PresenceLocalEntity>();
// Метод для сохранения списка посещаемости.
public void SavePresence(List<PresenceLocalEntity> presences)
{
foreach (var presence in presences)
{
// Проверяем, существует ли уже запись о посещении для этого пользователя, урока и даты.
var existing = _presences.FirstOrDefault(p =>
p.Date == presence.Date &&
p.UserGuid == presence.UserGuid &&
p.LessonNumber == presence.LessonNumber);
if (existing == null)
{
// Если записи нет, добавляем новую.
_presences.Add(presence);
}
else
{
// Если запись уже существует, обновляем информацию о посещении.
existing.IsAttedance = presence.IsAttedance;
}
}
}
// Метод для добавления нового присутствия.
public void AddPresence(PresenceLocalEntity presence)
{
// Если передан null, выбрасываем исключение.
if (presence == null) throw new ArgumentNullException(nameof(presence));
// Добавляем новое присутствие в коллекцию.
_presences.Add(presence);
}
// Метод для получения списка посещаемости по группе.
public List<PresenceLocalEntity> GetPresenceByGroup(int groupId)
{
return _presences.Where(p => p.GroupId == groupId).ToList();
}
// Метод для получения посещаемости по группе и дате.
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date)
{
return _presences.Where(p => p.GroupId == groupId && p.Date.Date == date.Date).ToList();
}
// Метод для пометки пользователя как отсутствующего на определённом интервале уроков.
public void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber)
{
foreach (var lesson in Enumerable.Range(firstLessonNumber, lastLessonNumber - firstLessonNumber + 1))
{
// Находим присутствие для данного пользователя и урока.
var presence = _presences.FirstOrDefault(p => p.UserGuid == userGuid && p.LessonNumber == lesson);
if (presence != null)
{
// Если присутствие найдено, помечаем пользователя как отсутствующего.
presence.IsAttedance = false;
}
}
}
}
}

View File

@ -0,0 +1,68 @@
using data.Exception;
using data.LocalData;
using data.RemoteData;
using data.RemoteData.DAO;
using data.Repository;
using domain.Models;
using System.Collections.Generic;
public class SQLGroupRepositoryImpl : IGroupRepository
{
private readonly RemoteDatabaseContext _remoteDatabaseContext;
public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
{
_remoteDatabaseContext = remoteDatabaseContext;
}
public GroupLocalEntity? GetGroupById(int groupId)
{
var groupDao = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupId);
return groupDao != null ? new GroupLocalEntity { Id = groupDao.Id, Name = groupDao.Name } : null;
}
public List<GroupLocalEntity> GetAllGroup()
{
return _remoteDatabaseContext.Groups
.Select(g => new GroupLocalEntity { Id = g.Id, Name = g.Name })
.ToList();
}
public bool AddGroup(GroupLocalEntity group)
{
if (_remoteDatabaseContext.Groups.Any(g => g.Id == group.Id))
return false;
var groupDao = new GroupDao { Id = group.Id, Name = group.Name };
_remoteDatabaseContext.Groups.Add(groupDao);
_remoteDatabaseContext.SaveChanges();
return true;
}
public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup)
{
var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID);
if (existingGroup == null)
return false;
existingGroup.Name = updatedGroup.Name;
_remoteDatabaseContext.SaveChanges();
return true;
}
public bool RemoveGroupById(int groupID)
{
var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID);
if (existingGroup == null)
return false;
_remoteDatabaseContext.Groups.Remove(existingGroup);
_remoteDatabaseContext.SaveChanges();
return true;
}
}

View File

@ -0,0 +1,190 @@
using data.RemoteData;
using data.RemoteData.DAO;
using domain.Models;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
namespace data.Repository
{
public class SQLPresenceRepositoryImpl : IPresenceRepository
{
private readonly RemoteDatabaseContext _remoteDatabaseContext;
public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
{
_remoteDatabaseContext = remoteDatabaseContext;
}
public void SavePresence(List<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);
_remoteDatabaseContext.SaveChanges(); // Сохраняем изменения
}
public List<PresenceLocalEntity> GetPresenceByGroup(int groupId)
{
return _remoteDatabaseContext.PresenceDaos
.Include(p => p.UserDao)
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId)
.Select(p => new PresenceLocalEntity
{
Date = p.Date.ToDateTime(TimeOnly.MinValue),
UserGuid = p.UserGuid,
LessonNumber = p.LessonNumber,
IsAttedance = p.IsAttedance
})
.ToList();
}
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateTime date)
{
return _remoteDatabaseContext.PresenceDaos
.Include(p => p.UserDao)
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId && p.Date == DateOnly.FromDateTime(date))
.Select(p => new PresenceLocalEntity
{
Date = p.Date.ToDateTime(TimeOnly.MinValue),
UserGuid = p.UserGuid,
LessonNumber = p.LessonNumber,
IsAttedance = p.IsAttedance
})
.ToList();
}
public void MarkUserAsAbsent(Guid userGuid, int firstLessonNumber, int lastLessonNumber)
{
var presences = _remoteDatabaseContext.PresenceDaos
.Where(p => p.UserGuid == userGuid && p.LessonNumber >= firstLessonNumber && p.LessonNumber <= lastLessonNumber)
.ToList();
foreach (var presence in presences)
{
presence.IsAttedance = false;
}
_remoteDatabaseContext.SaveChanges(); // Фиксация изменений
}
public DateOnly? GetLastDateByGroupId(int groupId)
{
var lastDate = _remoteDatabaseContext.PresenceDaos
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId)
.OrderByDescending(p => p.Date)
.Select(p => p.Date)
.FirstOrDefault();
return lastDate == default ? (DateOnly?)null : lastDate;
}
public GroupPresenceSummary GetGeneralPresenceForGroup(int groupId)
{
var presences = _remoteDatabaseContext.PresenceDaos
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId)
.ToList();
var distinctLessons = presences
.Select(p => new { p.Date, p.LessonNumber })
.Distinct()
.Count();
var userGuids = presences.Select(p => p.UserGuid).Distinct().ToList();
double totalAttendance = presences.Count(p => p.IsAttedance);
double totalPossibleAttendance = userGuids.Count * distinctLessons;
var userAttendances = userGuids.Select(userGuid =>
{
var userPresences = presences.Where(p => p.UserGuid == userGuid).ToList();
double attended = userPresences.Count(p => p.IsAttedance);
double missed = userPresences.Count(p => !p.IsAttedance);
return new UserAttendance
{
UserGuid = userGuid,
Attended = attended,
Missed = missed,
AttendanceRate = attended + missed > 0
? (attended / (attended + missed)) * 100
: 0
};
}).ToList();
return new GroupPresenceSummary
{
UserCount = userGuids.Count,
LessonCount = distinctLessons,
TotalAttendancePercentage = totalPossibleAttendance > 0
? (totalAttendance / totalPossibleAttendance) * 100
: 0,
UserAttendances = userAttendances
};
}
public bool UpdateAttention(Guid userGuid, int groupId, int firstLesson, int lastLesson, DateOnly date, bool isAttendance)
{
var presences = _remoteDatabaseContext.PresenceDaos
.Where(p => p.UserGuid == userGuid &&
p.UserDao != null &&
p.UserDao.GroupID == groupId &&
p.LessonNumber >= firstLesson &&
p.LessonNumber <= lastLesson &&
p.Date == date)
.ToList();
if (presences.Any())
{
foreach (var presence in presences)
{
presence.IsAttedance = isAttendance;
}
_remoteDatabaseContext.SaveChanges();
return true;
}
return false;
}
public List<PresenceDao> GetAttendanceByGroup(int groupId)
{
return _remoteDatabaseContext.PresenceDaos
.Include(p => p.UserDao)
.Where(p => p.UserDao != null && p.UserDao.GroupID == groupId)
.ToList();
}
}
}

View File

@ -0,0 +1,94 @@
using data.Exception;
using data.RemoteData;
using data.RemoteData.DAO;
using domain.Models;
using System.Collections.Generic;
using System.Linq;
namespace data.Repository
{
public class SQLUserRepositoryImpl : IUserRepository
{
// Контекст базы данных для удаленного доступа
private readonly RemoteDatabaseContext _remoteDatabaseContext;
// Конструктор, принимающий контекст базы данных
public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
{
_remoteDatabaseContext = remoteDatabaseContext;
}
// Получить список всех пользователей как локальные сущности.
public IEnumerable<UserLocalEntity> GetAllUsers => _remoteDatabaseContext.Users
.Select(u => new UserLocalEntity
{
Guid = u.Guid, // Уникальный идентификатор пользователя.
FIO = u.FIO, // Полное имя пользователя.
GroupID = u.GroupID // Идентификатор группы пользователя.
})
.ToList(); // Преобразуем в список для удобства работы.
// Удалить пользователя по его GUID.
// Уникальный идентификатор пользователя.
// <returns>True, если пользователь успешно удален.
// Исключение, если пользователь не найден.
public bool RemoveUserByGuid(Guid userGuid)
{
// Находим пользователя по его GUID
var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == userGuid);
if (user == null)
throw new UserNotFoundException(userGuid); // Если пользователь не найден, выбрасываем исключение.
// Удаляем пользователя из базы данных.
_remoteDatabaseContext.Users.Remove(user);
// Сохраняем изменения в базе данных.
_remoteDatabaseContext.SaveChanges();
// Возвращаем true, если удаление успешно.
return true;
}
// Обновить данные пользователя.
// <param name="user">Объект с обновленными данными пользователя.
// Обновленный объект UserLocalEntity.
public UserLocalEntity? UpdateUser(UserLocalEntity user)
{
// Находим существующего пользователя по GUID
var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == user.Guid);
if (existingUser == null)
throw new UserNotFoundException(user.Guid); // Если пользователь не найден, выбрасываем исключение
// Обновляем данные пользователя.
existingUser.FIO = user.FIO; // Обновляем имя.
existingUser.GroupID = user.GroupID; // Обновляем группу.
// Сохраняем изменения в базе данных
_remoteDatabaseContext.SaveChanges();
// Возвращаем обновленные данные пользователя
return new UserLocalEntity
{
Guid = existingUser.Guid,
FIO = existingUser.FIO,
GroupID = existingUser.GroupID
};
}
// Получить всех пользователей как DAO-объекты
public IEnumerable<UserDao> GetAllUsersDao => _remoteDatabaseContext.Users.ToList();
// Получить список пользователей с их именами и GUID.
// Список объектов UserDao с GUID и именами пользователей.
public List<UserDao> GetUserNames()
{
return _remoteDatabaseContext.Users
.Select(u => new UserDao
{
Guid = u.Guid, // Уникальный идентификатор пользователя.
FIO = u.FIO // Полное имя пользователя.
})
.ToList(); // Преобразуем в список.
}
}
}

View File

@ -0,0 +1,58 @@
using data.Exception;
using data.LocalData;
using data.RemoteData.DAO;
using domain.Models;
using System.Collections.Generic;
using System.Linq;
namespace data.Repository
{
public class UserRepositoryImpl : IUserRepository
{
private readonly List<UserLocalEntity> _users = LocalStaticData.users; // Локальный список пользователей
// Получить всех пользователей
public IEnumerable<UserLocalEntity> GetAllUsers => _users;
// Удалить пользователя по GUID
// <param name="userGuid">Уникальный идентификатор пользователя
// True, если пользователь удален
// Исключение, если пользователь не найден
public bool RemoveUserByGuid(Guid userGuid)
{
var user = _users.FirstOrDefault(u => u.Guid == userGuid);
if (user == null)
throw new UserNotFoundException(userGuid); // Если пользователь не найден, выбрасываем исключение
_users.Remove(user); // Удаляем пользователя
return true; // Возвращаем true, если удаление успешно
}
// Обновить данные пользователя
// <param name="user">Объект с новыми данными
// Обновленный пользователь</returns>
// <exception cref="UserNotFoundException">Исключение, если пользователь не найден
public UserLocalEntity UpdateUser(UserLocalEntity user)
{
var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid);
if (existingUser == null)
throw new UserNotFoundException(user.Guid); // Если пользователь не найден, выбрасываем исключение
existingUser.FIO = user.FIO; // Обновляем имя пользователя
existingUser.GroupID = user.GroupID; // Обновляем группу пользователя
return existingUser; // Возвращаем обновленного пользователя
}
// Получить список пользователей с их GUID и именами
// Список объектов UserDao
public List<UserDao> GetUserNames()
{
return _users.Select(u => new UserDao
{
Guid = u.Guid, // Уникальный идентификатор пользователя
FIO = u.FIO // Полное имя пользователя
}).ToList();
}
}
}

View 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"
}
}
}

Binary file not shown.

Binary file not shown.

View File

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

18
data/data.csproj Normal file
View 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>

View File

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

View 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.

View File

@ -0,0 +1 @@
6741393a5fe1cc20988265f6fd0e8bdd33ee4b9cc7b9e110a41e548fdd825a94

View File

@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = data
build_property.ProjectDir = C:\Users\VivoBook 15X\Desktop\Новый репоз\new_presence\data\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@ -0,0 +1 @@
4373816ab2adca26ada772cfa898e94678cd01f9279b64536132365dfacb7c33

View File

@ -0,0 +1,42 @@
C:\Users\class_student\source\repos\presence\data\bin\Debug\net8.0\data.deps.json
C:\Users\class_student\source\repos\presence\data\bin\Debug\net8.0\data.runtimeconfig.json
C:\Users\class_student\source\repos\presence\data\bin\Debug\net8.0\data.dll
C:\Users\class_student\source\repos\presence\data\bin\Debug\net8.0\data.pdb
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.AssemblyInfo.cs
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.dll
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\refint\data.dll
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.pdb
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\data.genruntimeconfig.cache
C:\Users\class_student\source\repos\presence\data\obj\Debug\net8.0\ref\data.dll
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.AssemblyInfo.cs
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.dll
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\refint\data.dll
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.pdb
C:\Users\glagol\Source\Repos\presence\data\bin\Debug\net8.0\data.deps.json
C:\Users\glagol\Source\Repos\presence\data\bin\Debug\net8.0\data.runtimeconfig.json
C:\Users\glagol\Source\Repos\presence\data\bin\Debug\net8.0\data.dll
C:\Users\glagol\Source\Repos\presence\data\bin\Debug\net8.0\data.pdb
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\data.genruntimeconfig.cache
C:\Users\glagol\Source\Repos\presence\data\obj\Debug\net8.0\ref\data.dll
C:\Users\prdb\Source\Repos\presence\data\bin\Debug\net8.0\data.deps.json
C:\Users\prdb\Source\Repos\presence\data\bin\Debug\net8.0\data.runtimeconfig.json
C:\Users\prdb\Source\Repos\presence\data\bin\Debug\net8.0\data.dll
C:\Users\prdb\Source\Repos\presence\data\bin\Debug\net8.0\data.pdb
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.csproj.AssemblyReference.cache
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.AssemblyInfoInputs.cache
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.AssemblyInfo.cs
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.csproj.CoreCompileInputs.cache
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.dll
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\refint\data.dll
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.pdb
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\data.genruntimeconfig.cache
C:\Users\prdb\Source\Repos\presence\data\obj\Debug\net8.0\ref\data.dll

Binary file not shown.

View File

@ -0,0 +1 @@
ad0a4479b59a7ef873597a5be47af04d30bf61b8a15ec5b82893655c935f039d

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,84 @@
{
"format": 1,
"restore": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {}
},
"projects": {
"C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"projectName": "data",
"projectPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"packagesPath": "C:\\Users\\VivoBook 15X\\.nuget\\packages\\",
"outputPath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\VivoBook 15X\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Microsoft.EntityFrameworkCore": {
"target": "Package",
"version": "[8.0.10, )"
},
"Microsoft.EntityFrameworkCore.Design": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[8.0.10, )"
},
"Npgsql.EntityFrameworkCore.PostgreSQL": {
"target": "Package",
"version": "[8.0.10, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.404/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -0,0 +1,22 @@
<?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\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\VivoBook 15X\.nuget\packages\" />
</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>

View 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>

2191
data/obj/project.assets.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,47 @@
{
"version": 2,
"dgSpecHash": "AGyA8QTK9h8=",
"success": true,
"projectFilePath": "C:\\Users\\VivoBook 15X\\Desktop\\Новый репоз\\new_presence\\data\\data.csproj",
"expectedPackageFiles": [
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\VivoBook 15X\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
"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": []
}

46
presence.sln Normal file
View File

@ -0,0 +1,46 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "data", "data\data.csproj", "{2E825BC5-BF8F-4D1C-BE3D-37A92EECD63C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "domain", "domain\domain.csproj", "{C6804CA6-812A-406C-B1E6-0AD1AC485D3B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ui", "ui\ui.csproj", "{CAFF5095-AA46-49F2-99FF-9BF6319A49A9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "console_ui", "console_ui\console_ui.csproj", "{5433BB78-344D-4442-8ECC-2C24283A753F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "presence_api", "presence_api\presence_api.csproj", "{32AB90B3-F785-49AA-B7EE-403FCCC98C94}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2E825BC5-BF8F-4D1C-BE3D-37A92EECD63C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E825BC5-BF8F-4D1C-BE3D-37A92EECD63C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E825BC5-BF8F-4D1C-BE3D-37A92EECD63C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E825BC5-BF8F-4D1C-BE3D-37A92EECD63C}.Release|Any CPU.Build.0 = Release|Any CPU
{C6804CA6-812A-406C-B1E6-0AD1AC485D3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C6804CA6-812A-406C-B1E6-0AD1AC485D3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C6804CA6-812A-406C-B1E6-0AD1AC485D3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C6804CA6-812A-406C-B1E6-0AD1AC485D3B}.Release|Any CPU.Build.0 = Release|Any CPU
{CAFF5095-AA46-49F2-99FF-9BF6319A49A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CAFF5095-AA46-49F2-99FF-9BF6319A49A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CAFF5095-AA46-49F2-99FF-9BF6319A49A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CAFF5095-AA46-49F2-99FF-9BF6319A49A9}.Release|Any CPU.Build.0 = Release|Any CPU
{5433BB78-344D-4442-8ECC-2C24283A753F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5433BB78-344D-4442-8ECC-2C24283A753F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5433BB78-344D-4442-8ECC-2C24283A753F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5433BB78-344D-4442-8ECC-2C24283A753F}.Release|Any CPU.Build.0 = Release|Any CPU
{32AB90B3-F785-49AA-B7EE-403FCCC98C94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{32AB90B3-F785-49AA-B7EE-403FCCC98C94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{32AB90B3-F785-49AA-B7EE-403FCCC98C94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{32AB90B3-F785-49AA-B7EE-403FCCC98C94}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,19 @@
using System.Text.RegularExpressions;
using domain.UseCase;
using Microsoft.AspNetCore.Mvc;
namespace presence_api.Controllers;
[ApiController]
[Route("api/[controller]")]
public class GroupController: ControllerBase {
private readonly GroupUseCase _groupUseCase;
public GroupController(GroupUseCase groupUseCase){
_groupUseCase = groupUseCase;
}
[HttpGet]
public ActionResult<IEnumerable<Group>> getGroups(){
return Ok(_groupUseCase.getAllGroup());
}
}

25
presence_api/Program.cs Normal file
View File

@ -0,0 +1,25 @@
using data.RemoteData;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddDbContext<RemoteDataBaseContext>();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.ConfigurateGroup();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.MapControllers();
app.Run();

View File

@ -0,0 +1,41 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:62350",
"sslPort": 44364
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5125",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7114;http://localhost:5125",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@ -0,0 +1,10 @@
using data.Repository;
using domain.UseCase;
public static class ServiceExtensions {
public static void ConfigurateGroup(this IServiceCollection services){
services
.AddScoped<IGroupRepository, SQLGroupRepositoryImpl>()
.AddScoped<GroupUseCase>();
}
}

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,414 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"presence_api/1.0.0": {
"dependencies": {
"Microsoft.AspNetCore.OpenApi": "8.0.10",
"Swashbuckle.AspNetCore": "6.6.2",
"domain": "1.0.0"
},
"runtime": {
"presence_api.dll": {}
}
},
"Microsoft.AspNetCore.OpenApi/8.0.10": {
"dependencies": {
"Microsoft.OpenApi": "1.6.14"
},
"runtime": {
"lib/net8.0/Microsoft.AspNetCore.OpenApi.dll": {
"assemblyVersion": "8.0.10.0",
"fileVersion": "8.0.1024.46804"
}
}
},
"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.ApiDescription.Server/6.0.5": {},
"Microsoft.Extensions.Caching.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"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"
}
},
"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": {},
"Microsoft.OpenApi/1.6.14": {
"runtime": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
"assemblyVersion": "1.6.14.0",
"fileVersion": "1.6.14.0"
}
}
},
"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"
}
}
},
"Swashbuckle.AspNetCore/6.6.2": {
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
"Swashbuckle.AspNetCore.Swagger": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerGen": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerUI": "6.6.2"
}
},
"Swashbuckle.AspNetCore.Swagger/6.6.2": {
"dependencies": {
"Microsoft.OpenApi": "1.6.14"
},
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": {
"assemblyVersion": "6.6.2.0",
"fileVersion": "6.6.2.401"
}
}
},
"Swashbuckle.AspNetCore.SwaggerGen/6.6.2": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "6.6.2"
},
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"assemblyVersion": "6.6.2.0",
"fileVersion": "6.6.2.401"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/6.6.2": {
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"assemblyVersion": "6.6.2.0",
"fileVersion": "6.6.2.401"
}
}
},
"data/1.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10"
},
"runtime": {
"data.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"domain/1.0.0": {
"dependencies": {
"data": "1.0.0"
},
"runtime": {
"domain.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"presence_api/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.OpenApi/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kzYiW/IbSN0xittjplA8eN1wrNcRi3DMalYRrEuF2xyf2Y5u7cGCfgN1oNZ+g3aBQzMKTQwYsY1PeNmC+P0WnA==",
"path": "microsoft.aspnetcore.openapi/8.0.10",
"hashPath": "microsoft.aspnetcore.openapi.8.0.10.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.ApiDescription.Server/6.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
"path": "microsoft.extensions.apidescription.server/6.0.5",
"hashPath": "microsoft.extensions.apidescription.server.6.0.5.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"
},
"Microsoft.OpenApi/1.6.14": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==",
"path": "microsoft.openapi/1.6.14",
"hashPath": "microsoft.openapi.1.6.14.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"
},
"Swashbuckle.AspNetCore/6.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==",
"path": "swashbuckle.aspnetcore/6.6.2",
"hashPath": "swashbuckle.aspnetcore.6.6.2.nupkg.sha512"
},
"Swashbuckle.AspNetCore.Swagger/6.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==",
"path": "swashbuckle.aspnetcore.swagger/6.6.2",
"hashPath": "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerGen/6.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==",
"path": "swashbuckle.aspnetcore.swaggergen/6.6.2",
"hashPath": "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerUI/6.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==",
"path": "swashbuckle.aspnetcore.swaggerui/6.6.2",
"hashPath": "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512"
},
"data/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"domain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.GC.Server": true,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

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

Binary file not shown.

Binary file not shown.

View File

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

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