This commit is contained in:
NikitaOnianov 2024-11-19 17:24:26 +03:00
parent 1bb72eb0a9
commit e6fed543da
70 changed files with 2978 additions and 18 deletions

View File

@ -19,7 +19,7 @@ services.AddSingleton<GroupUseCase>();
services.AddSingleton<UseCaseGeneratePresence>();
// Добавление пользовательских интерфейсов
services.AddSingleton<GroupConsoleUI>();
services.AddSingleton<GroupConsole>();
services.AddSingleton<PresenceConsole>();
services.AddSingleton<MainMenuUI>();

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

View File

@ -1 +1 @@
800c2592d5da9adc247fb5bc975d4b30179044e49c2a20ebfe248934149b1aa9
572d74c7554884e6abe2469c805f2479acd9c67997fd96b54125e12b2984640b

View File

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

View File

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

View File

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

Binary file not shown.

Binary file not shown.

View File

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

View File

@ -1 +1 @@
6741393a5fe1cc20988265f6fd0e8bdd33ee4b9cc7b9e110a41e548fdd825a94
ea361c844f4d0a4533d7d7ae76ae7434a3d964dedcd09b17cbc5b1a90e4f3906

View File

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

View File

@ -1 +1 @@
4373816ab2adca26ada772cfa898e94678cd01f9279b64536132365dfacb7c33
750a9b39a6706730c197e2f72549272f65223ec63229f4f87913339b936a3b77

View File

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

Binary file not shown.

View File

@ -1 +1 @@
ad0a4479b59a7ef873597a5be47af04d30bf61b8a15ec5b82893655c935f039d
ae807328d2944ba4c14fbe51c75e7d0dbecd6330b260ddcf1fac517b7e9e01dd

Binary file not shown.

Binary file not shown.

View File

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

View File

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

View File

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

View File

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

128
ui/GroupConsole.cs Normal file
View File

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

213
ui/MainMenu.cs Normal file
View File

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

196
ui/PresenceConsole.cs Normal file
View File

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

119
ui/UserConsole.cs Normal file
View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,459 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"ui/1.0.0": {
"dependencies": {
"domain": "1.0.0"
},
"runtime": {
"ui.dll": {}
}
},
"ClosedXML/0.104.1": {
"dependencies": {
"ClosedXML.Parser": "1.2.0",
"DocumentFormat.OpenXml": "3.0.1",
"ExcelNumberFormat": "1.1.0",
"RBush": "3.2.0",
"SixLabors.Fonts": "1.0.0",
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/netstandard2.1/ClosedXML.dll": {
"assemblyVersion": "0.104.1.0",
"fileVersion": "0.104.1.0"
}
}
},
"ClosedXML.Parser/1.2.0": {
"runtime": {
"lib/netstandard2.1/ClosedXML.Parser.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"DocumentFormat.OpenXml/3.0.1": {
"dependencies": {
"DocumentFormat.OpenXml.Framework": "3.0.1"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"dependencies": {
"System.IO.Packaging": "8.0.0"
},
"runtime": {
"lib/net8.0/DocumentFormat.OpenXml.Framework.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"ExcelNumberFormat/1.1.0": {
"runtime": {
"lib/netstandard2.0/ExcelNumberFormat.dll": {
"assemblyVersion": "1.1.0.0",
"fileVersion": "1.1.0.0"
}
}
},
"Microsoft.EntityFrameworkCore/8.0.10": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "8.0.10",
"Microsoft.EntityFrameworkCore.Analyzers": "8.0.10",
"Microsoft.Extensions.Caching.Memory": "8.0.1",
"Microsoft.Extensions.Logging": "8.0.1"
},
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "8.0.10.0",
"fileVersion": "8.0.1024.46708"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/8.0.10": {
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "8.0.10.0",
"fileVersion": "8.0.1024.46708"
}
}
},
"Microsoft.EntityFrameworkCore.Analyzers/8.0.10": {},
"Microsoft.EntityFrameworkCore.Relational/8.0.10": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "8.0.10.0",
"fileVersion": "8.0.1024.46708"
}
}
},
"Microsoft.Extensions.Caching.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.Caching.Memory/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2",
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.Logging/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.Options/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.224.6711"
}
}
},
"Microsoft.Extensions.Primitives/8.0.0": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Npgsql/8.0.5": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
},
"runtime": {
"lib/net8.0/Npgsql.dll": {
"assemblyVersion": "8.0.5.0",
"fileVersion": "8.0.5.0"
}
}
},
"Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Microsoft.EntityFrameworkCore.Abstractions": "8.0.10",
"Microsoft.EntityFrameworkCore.Relational": "8.0.10",
"Npgsql": "8.0.5"
},
"runtime": {
"lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": {
"assemblyVersion": "8.0.10.0",
"fileVersion": "8.0.10.0"
}
}
},
"RBush/3.2.0": {
"runtime": {
"lib/net6.0/RBush.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.0.0"
}
}
},
"SixLabors.Fonts/1.0.0": {
"runtime": {
"lib/netcoreapp3.1/SixLabors.Fonts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"System.IO.Packaging/8.0.0": {
"runtime": {
"lib/net8.0/System.IO.Packaging.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"data/1.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "8.0.10",
"Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10"
},
"runtime": {
"data.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"domain/1.0.0": {
"dependencies": {
"ClosedXML": "0.104.1",
"data": "1.0.0"
},
"runtime": {
"domain.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"ui/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ClosedXML/0.104.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RVm2fUNWJlBJlg07shrfeWzrHPG5ypI/vARqdUOUbUdaog8yBw8l4IbCHf2MXt0AXtzaZqGNqhFaCAHigCBdfw==",
"path": "closedxml/0.104.1",
"hashPath": "closedxml.0.104.1.nupkg.sha512"
},
"ClosedXML.Parser/1.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-w+/0tsxABS3lkSH8EUlA7IGme+mq5T/Puf3DbOiTckmSuUpAUO2LK29oXYByCcWkBv6wcRHxgWlQb1lxkwI0Tw==",
"path": "closedxml.parser/1.2.0",
"hashPath": "closedxml.parser.1.2.0.nupkg.sha512"
},
"DocumentFormat.OpenXml/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DCK1cwFUJ1FGGyYyo++HWl9H1RkqMWIu+FGOLRy6E4L4y0/HIhlJ7N/n1HKboFfOwKn1cMBRxt1RCuDbIEy5YQ==",
"path": "documentformat.openxml/3.0.1",
"hashPath": "documentformat.openxml.3.0.1.nupkg.sha512"
},
"DocumentFormat.OpenXml.Framework/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ifyI7OW7sggz7LQMIAD2aUsY/zVUON9QaHrpZ4MK33iVMeHlTG4uhUE2aLWb31nry+LCs2ALDAwf8OfUJGjgBg==",
"path": "documentformat.openxml.framework/3.0.1",
"hashPath": "documentformat.openxml.framework.3.0.1.nupkg.sha512"
},
"ExcelNumberFormat/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==",
"path": "excelnumberformat/1.1.0",
"hashPath": "excelnumberformat.1.1.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PPkQdIqfR1nU3n6YgGGDk8G+eaYbaAKM1AzIQtlPNTKf10Osg3N9T+iK9AlnSA/ujsK00flPpFHVfJrbuBFS1A==",
"path": "microsoft.entityframeworkcore/8.0.10",
"hashPath": "microsoft.entityframeworkcore.8.0.10.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FV0QlcX9INY4kAD2o72uPtyOh0nZut2jB11Jf9mNYBtHay8gDLe+x4AbXFwuQg+eSvofjT7naV82e827zGfyMg==",
"path": "microsoft.entityframeworkcore.abstractions/8.0.10",
"hashPath": "microsoft.entityframeworkcore.abstractions.8.0.10.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Analyzers/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-51KkPIc0EMv/gVXhPIUi6cwJE9Mvh+PLr4Lap4naLcsoGZ0lF2SvOPgUUprwRV3MnN7nyD1XPhT5RJ/p+xFAXw==",
"path": "microsoft.entityframeworkcore.analyzers/8.0.10",
"hashPath": "microsoft.entityframeworkcore.analyzers.8.0.10.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OefBEE47kGKPRPV3OT+FAW6o5BFgLk2D9EoeWVy7NbOepzUneayLQxbVE098FfedTyMwxvZQoDD9LrvZc3MadA==",
"path": "microsoft.entityframeworkcore.relational/8.0.10",
"hashPath": "microsoft.entityframeworkcore.relational.8.0.10.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==",
"path": "microsoft.extensions.caching.abstractions/8.0.0",
"hashPath": "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Memory/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==",
"path": "microsoft.extensions.caching.memory/8.0.1",
"hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"path": "microsoft.extensions.configuration.abstractions/8.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==",
"path": "microsoft.extensions.dependencyinjection/8.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Logging/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==",
"path": "microsoft.extensions.logging/8.0.1",
"hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
"path": "microsoft.extensions.logging.abstractions/8.0.2",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Options/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==",
"path": "microsoft.extensions.options/8.0.2",
"hashPath": "microsoft.extensions.options.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
"path": "microsoft.extensions.primitives/8.0.0",
"hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
},
"Npgsql/8.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zRG5V8cyeZLpzJlKzFKjEwkRMYIYnHWJvEor2lWXeccS2E1G2nIWYYhnukB51iz5XsWSVEtqg3AxTWM0QJ6vfg==",
"path": "npgsql/8.0.5",
"hashPath": "npgsql.8.0.5.nupkg.sha512"
},
"Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gFPl9Dmxih7Yi4tZ3bITzZFzbxFMBx04gqTqcjoL2r5VEW+O2TA5UVw/wm/XW26NAJ7sg59Je0+9QrwiZt6MPQ==",
"path": "npgsql.entityframeworkcore.postgresql/8.0.10",
"hashPath": "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512"
},
"RBush/3.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ijGh9N0zZ7JfXk3oQkWCwK8SwSSByexbyh/MjbCjNxOft9eG5ZqKC1vdgiYq78h4IZRFmN4s3JZ/b10Jipud5w==",
"path": "rbush/3.2.0",
"hashPath": "rbush.3.2.0.nupkg.sha512"
},
"SixLabors.Fonts/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LFQsCZlV0xlUyXAOMUo5kkSl+8zAQXXbbdwWchtk0B4o7zotZhQsQOcJUELGHdfPfm/xDAsz6hONAuV25bJaAg==",
"path": "sixlabors.fonts/1.0.0",
"hashPath": "sixlabors.fonts.1.0.0.nupkg.sha512"
},
"System.IO.Packaging/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8g1V4YRpdGAxFcK8v9OjuMdIOJSpF30Zb1JGicwVZhly3I994WFyBdV6mQEo8d3T+URQe55/M0U0eIH0Hts1bg==",
"path": "system.io.packaging/8.0.0",
"hashPath": "system.io.packaging.8.0.0.nupkg.sha512"
},
"data/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"domain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

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

Binary file not shown.

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

Binary file not shown.

View File

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

Binary file not shown.

Binary file not shown.

View File

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

View File

@ -0,0 +1 @@
ec1ad6e87671c3a3185b222475ddda68d0cffaff22928aa6e7e99db995da021d

View File

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

View File

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

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
1c08c001135aeee6a16dffa6960022b772eaa873514062ee1ccb8a828babb3c9

View File

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

View File

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

Binary file not shown.

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

Binary file not shown.

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,218 @@
{
"format": 1,
"restore": {
"C:\\Users\\VivoBook 15X\\Desktop\\Программные модули\\Новый репоз\\new_presence\\ui\\ui.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"
}
}
},
"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>

13
ui/ui.csproj Normal file
View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\domain\domain.csproj" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>