From 85738972fe3575470802606e9d44d27dd6220d5f Mon Sep 17 00:00:00 2001 From: Class_Student Date: Mon, 21 Oct 2024 15:42:00 +0300 Subject: [PATCH] init --- Demo.sln | 25 ++ Demo/Data/LocalData/Entity/Group.cs | 15 ++ Demo/Data/LocalData/Entity/Presence.cs | 12 + Demo/Data/LocalData/Entity/User.cs | 11 + Demo/Data/LocalData/LocalStaticData.cs | 26 ++ Demo/Data/Repository/GroupRepositoryImpl.cs | 67 +++++ Demo/Data/Repository/UserRepositoryImpl.cs | 68 +++++ Demo/Demo.csproj | 14 + Demo/Domain/Models/Group.cs | 45 ++++ Demo/Domain/Models/Presence.cs | 12 + Demo/Domain/Models/User.cs | 17 ++ Demo/Domain/UseCase/GroupUseCase.cs | 56 ++++ Demo/Domain/UseCase/UserModel.cs | 6 + Demo/Domain/UseCase/UserUseCase.cs | 82 ++++++ Demo/Program.cs | 21 ++ Demo/UI/MainMenu.cs | 242 ++++++++++++++++++ Demo/UI/UserConsole.cs | 34 +++ Demo/bin/Debug/net8.0/Demo.deps.json | 23 ++ Demo/bin/Debug/net8.0/Demo.dll | Bin 0 -> 20992 bytes Demo/bin/Debug/net8.0/Demo.exe | Bin 0 -> 138752 bytes Demo/bin/Debug/net8.0/Demo.pdb | Bin 0 -> 18040 bytes Demo/bin/Debug/net8.0/Demo.runtimeconfig.json | 12 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs | 23 ++ .../net8.0/Demo.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs | 8 + Demo/obj/Debug/net8.0/Demo.assets.cache | Bin 0 -> 160 bytes .../net8.0/Demo.csproj.BuildWithSkipAnalyzers | 0 .../Demo.csproj.CoreCompileInputs.cache | 1 + .../net8.0/Demo.csproj.FileListAbsolute.txt | 28 ++ Demo/obj/Debug/net8.0/Demo.dll | Bin 0 -> 20992 bytes .../Debug/net8.0/Demo.genruntimeconfig.cache | 1 + Demo/obj/Debug/net8.0/Demo.pdb | Bin 0 -> 18040 bytes Demo/obj/Debug/net8.0/apphost.exe | Bin 0 -> 138752 bytes Demo/obj/Debug/net8.0/ref/Demo.dll | Bin 0 -> 10752 bytes Demo/obj/Debug/net8.0/refint/Demo.dll | Bin 0 -> 10752 bytes Demo/obj/Demo.csproj.nuget.dgspec.json | 68 +++++ Demo/obj/Demo.csproj.nuget.g.props | 15 ++ Demo/obj/Demo.csproj.nuget.g.targets | 2 + Demo/obj/project.assets.json | 73 ++++++ Demo/obj/project.nuget.cache | 8 + 42 files changed, 1033 insertions(+) create mode 100644 Demo.sln create mode 100644 Demo/Data/LocalData/Entity/Group.cs create mode 100644 Demo/Data/LocalData/Entity/Presence.cs create mode 100644 Demo/Data/LocalData/Entity/User.cs create mode 100644 Demo/Data/LocalData/LocalStaticData.cs create mode 100644 Demo/Data/Repository/GroupRepositoryImpl.cs create mode 100644 Demo/Data/Repository/UserRepositoryImpl.cs create mode 100644 Demo/Demo.csproj create mode 100644 Demo/Domain/Models/Group.cs create mode 100644 Demo/Domain/Models/Presence.cs create mode 100644 Demo/Domain/Models/User.cs create mode 100644 Demo/Domain/UseCase/GroupUseCase.cs create mode 100644 Demo/Domain/UseCase/UserModel.cs create mode 100644 Demo/Domain/UseCase/UserUseCase.cs create mode 100644 Demo/Program.cs create mode 100644 Demo/UI/MainMenu.cs create mode 100644 Demo/UI/UserConsole.cs create mode 100644 Demo/bin/Debug/net8.0/Demo.deps.json create mode 100644 Demo/bin/Debug/net8.0/Demo.dll create mode 100644 Demo/bin/Debug/net8.0/Demo.exe create mode 100644 Demo/bin/Debug/net8.0/Demo.pdb create mode 100644 Demo/bin/Debug/net8.0/Demo.runtimeconfig.json create mode 100644 Demo/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.AssemblyInfo.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.AssemblyInfoInputs.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Demo/obj/Debug/net8.0/Demo.GlobalUsings.g.cs create mode 100644 Demo/obj/Debug/net8.0/Demo.assets.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.csproj.BuildWithSkipAnalyzers create mode 100644 Demo/obj/Debug/net8.0/Demo.csproj.CoreCompileInputs.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.csproj.FileListAbsolute.txt create mode 100644 Demo/obj/Debug/net8.0/Demo.dll create mode 100644 Demo/obj/Debug/net8.0/Demo.genruntimeconfig.cache create mode 100644 Demo/obj/Debug/net8.0/Demo.pdb create mode 100644 Demo/obj/Debug/net8.0/apphost.exe create mode 100644 Demo/obj/Debug/net8.0/ref/Demo.dll create mode 100644 Demo/obj/Debug/net8.0/refint/Demo.dll create mode 100644 Demo/obj/Demo.csproj.nuget.dgspec.json create mode 100644 Demo/obj/Demo.csproj.nuget.g.props create mode 100644 Demo/obj/Demo.csproj.nuget.g.targets create mode 100644 Demo/obj/project.assets.json create mode 100644 Demo/obj/project.nuget.cache diff --git a/Demo.sln b/Demo.sln new file mode 100644 index 0000000..ce1f93c --- /dev/null +++ b/Demo.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35312.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{983820F6-FF31-4B3A-8593-831BC3904E80}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {983820F6-FF31-4B3A-8593-831BC3904E80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {983820F6-FF31-4B3A-8593-831BC3904E80}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4F43A963-447C-4FCB-BB78-8D315EC0F1D6} + EndGlobalSection +EndGlobal diff --git a/Demo/Data/LocalData/Entity/Group.cs b/Demo/Data/LocalData/Entity/Group.cs new file mode 100644 index 0000000..55c0593 --- /dev/null +++ b/Demo/Data/LocalData/Entity/Group.cs @@ -0,0 +1,15 @@ +using System; + +namespace Demo.Data.LocalData.Entity +{ + public class Group + { + public required int Id { get; set; } + public required string Name { get; set; } + + internal Domain.Models.Group ToModel() + { + throw new NotImplementedException(); + } + } +} diff --git a/Demo/Data/LocalData/Entity/Presence.cs b/Demo/Data/LocalData/Entity/Presence.cs new file mode 100644 index 0000000..5c1054e --- /dev/null +++ b/Demo/Data/LocalData/Entity/Presence.cs @@ -0,0 +1,12 @@ +using System; + +namespace Demo.Data.LocalData.Entity +{ + public class Presence + { + public required Guid UserGuid { get; set; } + public bool IsAttendance { get; set; } = true; + public required DateOnly Date { get; set; } + public required int LessonNumber { get; set; } + } +} diff --git a/Demo/Data/LocalData/Entity/User.cs b/Demo/Data/LocalData/Entity/User.cs new file mode 100644 index 0000000..38d967c --- /dev/null +++ b/Demo/Data/LocalData/Entity/User.cs @@ -0,0 +1,11 @@ +using System; + +namespace Demo.Data.LocalData.Entity +{ + public class User + { + public required string FIO { get; set; } + public Guid Guid { get; set; } + public required int GroupID { get; set; } + } +} diff --git a/Demo/Data/LocalData/LocalStaticData.cs b/Demo/Data/LocalData/LocalStaticData.cs new file mode 100644 index 0000000..0b5d01c --- /dev/null +++ b/Demo/Data/LocalData/LocalStaticData.cs @@ -0,0 +1,26 @@ +using Demo.Data.LocalData.Entity; +using System; +using System.Collections.Generic; + +namespace Demo.Data.LocalData +{ + public static class LocalStaticData + { + public static List Groups => new List + { + new Group { Id = 1, Name = "ИП1-21" }, + new Group { Id = 2, Name = "ИП1-22" }, + new Group { Id = 3, Name = "ИП1-23" }, + }; + + public static List Users => new List + { + new User { Guid = Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "пру5кен", GroupID = 1 }, + new User { Guid = Guid.Parse("8388d931-5bef-41be-a152-78f1aca980ed"), FIO = "RandomFio1", GroupID = 2 }, + new User { Guid = Guid.Parse("ed174548-49ed-4503-a902-c970cbf27173"), FIO = "RandomFio2", GroupID = 3 }, + new User { Guid = Guid.Parse("614c0a23-5bd5-43ae-b48e-d5750afbc282"), FIO = "RandomFio3", GroupID = 1 }, + new User { Guid = Guid.Parse("efcc1473-c116-4244-b3f7-f2341a5c3003"), FIO = "RandomFio4", GroupID = 2 }, + new User { Guid = Guid.Parse("60640fb3-ace2-4cad-81d5-a0a58bc2dbbd"), FIO = "RandomFio5", GroupID = 3 }, + }; + } +} diff --git a/Demo/Data/Repository/GroupRepositoryImpl.cs b/Demo/Data/Repository/GroupRepositoryImpl.cs new file mode 100644 index 0000000..f0d6fb6 --- /dev/null +++ b/Demo/Data/Repository/GroupRepositoryImpl.cs @@ -0,0 +1,67 @@ +using Demo.Domain.Models; +using Demo.Data.LocalData; // Добавьте пространство имен +using System.Collections.Generic; +using System.Linq; + +namespace Demo.Data.Repository +{ + public class GroupRepositoryImpl + { + private List _groups; + + public GroupRepositoryImpl() + { + // Инициализируем список групп данными из LocalStaticData + _groups = LocalStaticData.Groups.Select(g => new Demo.Domain.Models.Group + { + Id = g.Id, + Name = g.Name + }).ToList(); + } + + public List GetAllGroups() + { + return _groups; + } + + public Group GetGroupById(int id) + { + return _groups.FirstOrDefault(g => g.Id == id); + } + + public void AddGroup(Group group) + { + _groups.Add(group); + } + + public bool UpdateGroup(Group group) // Метод возвращает bool + { + var existingGroup = _groups.FirstOrDefault(g => g.Id == group.Id); + if (existingGroup != null) + { + existingGroup.Name = group.Name; // Обновите остальные поля, если необходимо + return true; // Успешное обновление + } + return false; // Группа не найдена + } + + public bool RemoveGroupById(int groupId) // Метод возвращает bool + { + var group = _groups.FirstOrDefault(g => g.Id == groupId); + if (group != null) + { + _groups.Remove(group); + return true; // Успешное удаление + } + return false; // Группа не найдена + } + + public void DisplayGroups() + { + foreach (var group in _groups) + { + Console.WriteLine($"ID: {group.Id}, Name: {group.Name}"); + } + } + } +} diff --git a/Demo/Data/Repository/UserRepositoryImpl.cs b/Demo/Data/Repository/UserRepositoryImpl.cs new file mode 100644 index 0000000..bb7205a --- /dev/null +++ b/Demo/Data/Repository/UserRepositoryImpl.cs @@ -0,0 +1,68 @@ + +using System; +using System.Collections.Generic; +using System.Linq; + +using Demo.Data.LocalData; +using Demo.Domain.Models; + +namespace Demo.Data.Repository +{ + public class UserRepositoryImpl + { + private List _users = LocalStaticData.Users.Select(it => new User { FIO = it.FIO, Group = new Group(), Guid = it.Guid }).ToList(); + public UserRepositoryImpl() { _users = LocalStaticData.Users.Select(it => new User { FIO = it.FIO, Group = new Group(), Guid = it.Guid}).ToList(); } + + public List GetAllUsers() + { + return _users; + } + + public User GetByGuid(Guid id) + { + return _users.FirstOrDefault(static u => u.Guid ==u.Guid); + } + + public void AddUser(User user) + { + _users.Add(user); + } + + public bool UpdateUser(User user) + { + var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid); + if (existingUser != null) + { + existingUser.FIO = user.FIO; // Обновите остальные поля, если необходимо + return true; // Успешное обновление + } + return false; // Пользователь не найден + } + + + public void RemoveUser(Guid userGuid) + { + var user = _users.FirstOrDefault(u => u.Guid == userGuid); + if (user != null) + { + _users.Remove(user); + } + } + + public bool RemoveUserByGuid(Guid userGuid) + { + var user = _users.FirstOrDefault(u => u.Guid == userGuid); + if (user != null) + { + _users.Remove(user); + return true; // Успешное удаление + } + return false; // Пользователь не найден + } + + public User FindUserByGuid(Guid userGuid) // Реализуем метод + { + return _users.FirstOrDefault(u => u.Guid == userGuid); + } + } +} diff --git a/Demo/Demo.csproj b/Demo/Demo.csproj new file mode 100644 index 0000000..1ea2759 --- /dev/null +++ b/Demo/Demo.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/Demo/Domain/Models/Group.cs b/Demo/Domain/Models/Group.cs new file mode 100644 index 0000000..48413d5 --- /dev/null +++ b/Demo/Domain/Models/Group.cs @@ -0,0 +1,45 @@ +using System; + +namespace Demo.Domain.Models +{ + public class Group + { + public int Id { get; set; } + public string Name { get; set; } + + public Group() { } + + public Group(int id, string name) + { + Id = id; + Name = name; + } + + public override bool Equals(object obj) + { + return obj is Group group && + Id == group.Id && + Name == group.Name; + } + + public override int GetHashCode() + { + return HashCode.Combine(Id, Name); + } + + internal Data.LocalData.Entity.Group ToEntity() + { + throw new NotImplementedException(); + } + + public static bool operator ==(Group left, Group right) + { + return left.Equals(right); + } + + public static bool operator !=(Group left, Group right) + { + return !(left == right); + } + } +} diff --git a/Demo/Domain/Models/Presence.cs b/Demo/Domain/Models/Presence.cs new file mode 100644 index 0000000..01b0b94 --- /dev/null +++ b/Demo/Domain/Models/Presence.cs @@ -0,0 +1,12 @@ +using System; + +namespace Demo.Domain.Models +{ + public class Presence + { + public required User User { get; set; } + public bool IsAttendance { get; set; } = true; + public required DateOnly Date { get; set; } + public required int LessonNumber { get; set; } + } +} diff --git a/Demo/Domain/Models/User.cs b/Demo/Domain/Models/User.cs new file mode 100644 index 0000000..962fefb --- /dev/null +++ b/Demo/Domain/Models/User.cs @@ -0,0 +1,17 @@ +using System; + +namespace Demo.Domain.Models +{ + public class User + { + public required string FIO { get; set; } + public Guid Guid { get; set; } + public required Group Group { get; set; } + public int GroupID { get; internal set; } + + public static explicit operator User(Data.LocalData.Entity.User? v) + { + throw new NotImplementedException(); + } + } +} diff --git a/Demo/Domain/UseCase/GroupUseCase.cs b/Demo/Domain/UseCase/GroupUseCase.cs new file mode 100644 index 0000000..d6aae64 --- /dev/null +++ b/Demo/Domain/UseCase/GroupUseCase.cs @@ -0,0 +1,56 @@ +using Demo.Data.Repository; +using Demo.Domain.Models; +using System.Collections.Generic; + +namespace Demo.Domain.UseCase +{ + public class GroupUseCase + { + private readonly GroupRepositoryImpl _groupRepository; + + public GroupUseCase(GroupRepositoryImpl groupRepository) + { + _groupRepository = groupRepository; + } + + public List GetAllGroups() + { + return _groupRepository.GetAllGroups(); + } + + public Group GetGroupById(int id) + { + return _groupRepository.GetGroupById(id); + } + + public void AddGroup(Group group) + { + _groupRepository.AddGroup(group); + } + + public bool UpdateGroup(Group group) // Метод возвращает bool + { + var existingGroup = _groupRepository.GetGroupById(group.Id); + if (existingGroup != null) + { + return _groupRepository.UpdateGroup(group); // Обновление через репозиторий + } + return false; // Группа не найдена + } + + public bool RemoveGroupById(int id) // Метод возвращает bool + { + var existingGroup = _groupRepository.GetGroupById(id); + if (existingGroup != null) + { + return _groupRepository.RemoveGroupById(id); // Удаление через репозиторий + } + return false; // Группа не найдена + } + + public Group FindGroupById(int id) // Новый метод для поиска группы + { + return _groupRepository.GetGroupById(id); + } + } +} diff --git a/Demo/Domain/UseCase/UserModel.cs b/Demo/Domain/UseCase/UserModel.cs new file mode 100644 index 0000000..a47bcdb --- /dev/null +++ b/Demo/Domain/UseCase/UserModel.cs @@ -0,0 +1,6 @@ + +internal class UserModel +{ + public string FIO { get; set; } + public Guid Guid { get; set; } +} \ No newline at end of file diff --git a/Demo/Domain/UseCase/UserUseCase.cs b/Demo/Domain/UseCase/UserUseCase.cs new file mode 100644 index 0000000..eab2da8 --- /dev/null +++ b/Demo/Domain/UseCase/UserUseCase.cs @@ -0,0 +1,82 @@ +using Demo.Data.Repository; +using Demo.Domain.Models; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Demo.Domain.UseCase +{ + public class UserUseCase + { + private readonly UserRepositoryImpl _userRepository; + private readonly GroupRepositoryImpl _groupRepo; + + public UserUseCase(UserRepositoryImpl userRepository, GroupRepositoryImpl groupRepo) + { + _userRepository = userRepository; + _groupRepo = groupRepo; + } + + public List GetAllUsers() + { + return _userRepository.GetAllUsers(); + } + + public User FindUserByGuid(Guid userGuid) + { + return _userRepository.GetByGuid(userGuid); + } + + public List GetUsersAsModels() + { + return _userRepository.GetAllUsers() + .Select(user => new UserModel + { + FIO = user.FIO, + Guid = user.Guid, + }).ToList(); + } + + public UserModel GetUserModelById(Guid id) + { + var user = _userRepository.GetByGuid(id); + return new UserModel + { + FIO = user.FIO, + Guid = user.Guid, + }; + } + + public bool RemoveUserByGuid(Guid userGuid) + { + return _userRepository.RemoveUserByGuid(userGuid); + } + + public UserModel GetUserModelByGuid(Guid userGuid) + { + var user = FindUserByGuid(userGuid); + return new UserModel + { + FIO = user.FIO, + Guid = user.Guid, + }; + } + + public bool UpdateUser(User user) + { + return _userRepository.UpdateUser(user); + } + + // Новый метод для поиска группы по ID + public Group GetGroupById(int id) + { + return _groupRepo.GetGroupById(id); + } + } + + public class UserModel + { + public string FIO { get; set; } + public Guid Guid { get; internal set; } + } +} diff --git a/Demo/Program.cs b/Demo/Program.cs new file mode 100644 index 0000000..2f225c2 --- /dev/null +++ b/Demo/Program.cs @@ -0,0 +1,21 @@ +using Demo.Data.Repository; +using Demo.Domain.UseCase; +using Demo.UI; + +class Program +{ + static void Main(string[] args) + { + var groupRepo = new GroupRepositoryImpl(); + var userRepo = new UserRepositoryImpl(); + var groupUseCase = new GroupUseCase(groupRepo); + var userUseCase = new UserUseCase(userRepo, groupRepo); + var mainMenu = new MainMenu(userUseCase, groupUseCase); + + // Вывод групп при запуске программы + groupRepo.DisplayGroups(); + + // Отображение главного меню + mainMenu.DisplayMenu(); + } +} diff --git a/Demo/UI/MainMenu.cs b/Demo/UI/MainMenu.cs new file mode 100644 index 0000000..81c463d --- /dev/null +++ b/Demo/UI/MainMenu.cs @@ -0,0 +1,242 @@ +using Demo.Domain.UseCase; +using Demo.Domain.Models; // Добавьте эту строку +using System; +using Demo.Data.Repository; + +namespace Demo.UI +{ + public class MainMenu + { + private readonly UserUseCase _userUseCase; + private readonly GroupUseCase _groupUseCase; + + public MainMenu(UserUseCase userUseCase, GroupUseCase groupUseCase) + { + _userUseCase = userUseCase; + _groupUseCase = groupUseCase; + } + + public void DisplayMenu() + { + while (true) + { + Console.Clear(); + Console.WriteLine("1. Показать всех пользователей"); + Console.WriteLine("2. Удалить пользователя по GUID"); + Console.WriteLine("3. Обновить пользователя"); + Console.WriteLine("4. Найти пользователя по GUID"); + Console.WriteLine("5. Показать все группы"); + Console.WriteLine("6. Добавить группу"); + Console.WriteLine("7. Обновить группу"); + Console.WriteLine("8. Удалить группу по ID"); // Добавлено + Console.WriteLine("9. Найти группу по ID"); // Добавлено + Console.WriteLine("0. Выход"); + + var choice = Console.ReadLine(); + switch (choice) + { + case "1": + ShowAllUsers(); + break; + case "2": + RemoveUser(); + break; + case "3": + UpdateUser(); + break; + case "4": + FindUserByGuid(); + break; + case "5": + ShowAllGroups(); + break; + case "6": + AddGroup(); + break; + case "7": + UpdateGroup(); + break; + case "8": // Обработчик для удаления группы + RemoveGroup(); + break; + case "9": // Обработчик для поиска группы по ID + FindGroupById(); + break; + case "0": + return; + default: + Console.WriteLine("Неверный ввод. Попробуйте снова."); + break; + } + + Console.WriteLine("Нажмите любую клавишу для продолжения..."); + Console.ReadKey(); + } + } + + private void ShowAllUsers() + { + var users = _userUseCase.GetAllUsers(); + Console.WriteLine("Все пользователи:"); + foreach (var user in users) + { + Console.WriteLine($"ID: {user.Guid}, Name: {user.FIO}"); + } + } + + private void RemoveUser() + { + Console.Write("Введите GUID пользователя для удаления: "); + if (Guid.TryParse(Console.ReadLine(), out var userGuid)) + { + var removed = _userUseCase.RemoveUserByGuid(userGuid); + if (removed) + { + Console.WriteLine("Пользователь успешно удален."); + } + else + { + Console.WriteLine("Пользователь не найден."); + } + } + else + { + Console.WriteLine("Некорректный GUID."); + } + } + + private void RemoveGroup() + { + Console.Write("Введите ID группы для удаления: "); + if (int.TryParse(Console.ReadLine(), out var groupId)) + { + var removed = _groupUseCase.RemoveGroupById(groupId); + if (removed) + { + Console.WriteLine("Группа успешно удалена."); + } + else + { + Console.WriteLine("Группа не найдена."); + } + } + else + { + Console.WriteLine("Некорректный ID."); + } + } + + private void UpdateUser() + { + Console.Write("Введите GUID пользователя для обновления: "); + if (Guid.TryParse(Console.ReadLine(), out var userGuid)) + { + var user = _userUseCase.FindUserByGuid(userGuid); + if (user != null) + { + Console.Write("Введите новое имя пользователя: "); + var newName = Console.ReadLine(); + user.FIO = newName; // Обновляем имя + + var updated = _userUseCase.UpdateUser(user); + + if (updated) + { + Console.WriteLine("Пользователь обновлен."); + } + else + { + Console.WriteLine("Не удалось обновить пользователя."); + } + } + else + { + Console.WriteLine("Пользователь не найден."); + } + } + else + { + Console.WriteLine("Некорректный GUID."); + } + } + + private void FindUserByGuid() + { + Console.Write("Введите GUID пользователя для поиска: "); + var userGuid = Guid.Parse(Console.ReadLine() ?? string.Empty); + var userModel = _userUseCase.GetUserModelByGuid(userGuid); + + if (userModel != null) + { + Console.WriteLine($"Пользователь найден: ID = {userModel.Guid}, Name = {userModel.FIO}"); + } + else + { + Console.WriteLine("Пользователь не найден."); + } + } + + private void ShowAllGroups() + { + var groups = _groupUseCase.GetAllGroups(); + Console.WriteLine("Все группы:"); + foreach (var group in groups) + { + Console.WriteLine($"ID: {group.Id}, Name: {group.Name}"); + } + } + + private void AddGroup() + { + Console.Write("Введите имя новой группы: "); + var groupName = Console.ReadLine(); + _groupUseCase.AddGroup(new Group { Name = groupName }); + Console.WriteLine("Группа добавлена."); + } + + private void UpdateGroup() + { + Console.Write("Введите ID группы для обновления: "); + if (int.TryParse(Console.ReadLine(), out var groupId)) + { + Console.Write("Введите новое имя группы: "); + var newGroupName = Console.ReadLine(); + var updated = _groupUseCase.UpdateGroup(new Group { Id = groupId, Name = newGroupName }); + + if (updated) + { + Console.WriteLine("Группа обновлена."); + } + else + { + Console.WriteLine("Группа не найдена."); + } + } + else + { + Console.WriteLine("Некорректный ID."); + } + } + + private void FindGroupById() + { + Console.Write("Введите ID группы для поиска: "); + if (int.TryParse(Console.ReadLine(), out var groupId)) + { + var group = _groupUseCase.GetGroupById(groupId); + if (group != null) + { + Console.WriteLine($"Группа найдена: ID = {group.Id}, Name = {group.Name}"); + } + else + { + Console.WriteLine("Группа не найдена."); + } + } + else + { + Console.WriteLine("Некорректный ID."); + } + } + } +} diff --git a/Demo/UI/UserConsole.cs b/Demo/UI/UserConsole.cs new file mode 100644 index 0000000..e4c2b2e --- /dev/null +++ b/Demo/UI/UserConsole.cs @@ -0,0 +1,34 @@ +using Demo.Domain.UseCase; +using Demo.Domain.Models; +using System; +using Demo.Data.Repository; + + +namespace Demo.UI +{ + public class UserConsole + { + private readonly Func _userUseCase; + private readonly UserRepositoryImpl _userRepository; + private readonly GroupRepositoryImpl _groupRepo; + + public UserConsole(Func userUseCase) + { + _userUseCase = userUseCase; + } + + public void DisplayUser(Guid userGuid) + { + try + { + var user = _userRepository.GetByGuid(userGuid); // Уберите лишнюю точку + Console.WriteLine($"GUID: {userGuid}, FIO: {user.FIO}, Group: {user.Group.Name}"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + } +} + diff --git a/Demo/bin/Debug/net8.0/Demo.deps.json b/Demo/bin/Debug/net8.0/Demo.deps.json new file mode 100644 index 0000000..34d15c4 --- /dev/null +++ b/Demo/bin/Debug/net8.0/Demo.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Demo/1.0.0": { + "runtime": { + "Demo.dll": {} + } + } + } + }, + "libraries": { + "Demo/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/Demo/bin/Debug/net8.0/Demo.dll b/Demo/bin/Debug/net8.0/Demo.dll new file mode 100644 index 0000000000000000000000000000000000000000..c4be46da082dbd26c951f511340a92ff9bf24c03 GIT binary patch literal 20992 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 literal 0 HcmV?d00001 diff --git a/Demo/bin/Debug/net8.0/Demo.exe b/Demo/bin/Debug/net8.0/Demo.exe new file mode 100644 index 0000000000000000000000000000000000000000..9db634990c3426c9d01de823bdd61e007d3abcaf GIT binary patch literal 138752 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 literal 0 HcmV?d00001 diff --git a/Demo/bin/Debug/net8.0/Demo.pdb b/Demo/bin/Debug/net8.0/Demo.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0995e9eb24e4d18bd0e5874c333860fd0689c372 GIT binary patch literal 18040 zcma)E2V7Ih^WPUj2puedJ=jGEz1Zo!34#s900E5M`Ne{ev%t5B*QyoD3=Jenq$MFj%u9$Tv5+2u>5zo5 zK!~>hf7}ar|4bD&CjR%;+?&B4{0j#Jc(-}>yLM1z!aflpqP~q+7#o`qTB~+YuQ?DZ zGzlmS$QS4^P%9u~pe8_AZVH4wLHPiud5DOB$%fQsWZ|!nG=LD>(*sF?ngV$O#Xt*5 zfS3&NT!;@s{1?O&MG*^1Kzc)*4DnouS3!IM;(HJa1Qf9n2#71hz7Xd^JPG1m5Fds3 z1H?iD0dX;)NH>UwLp%!NQiyj#{2gLTp@1X{DUuEG8i>mwHYFJjrbG#(1Ny}QR3zr4 zfQ~K5_|6vO6wr1@3-Sd>;bcLs08N%!kgGrvXA2StbjaC~xVTu7U>6gT2ecii66h+> zQy@E66B6QTM*0D1fC_=;0Br!O1iA|J3g`!rm75u{1!@V@&JFc3B93lG#2u(BkRMPe zkP7Hmpk+W?fhvGbyNSsiphrM2f!+gs1roT6i7}8BkgdBhX$jO0$PvgLs4I{kP$*Cg zP@+4^H6$tShGa9)A)vcJZ-HDr49N%&5!nFr66iZnV^0xj50nnH6zGnpkbD91^rA?2 zpa7t7px!|Jz(dhz(!5}lfL^)@Ku-ba38U;T06hhurvUUc06h&rPXo}?0Q58fJq