супер проект на 5

This commit is contained in:
Class_Student 2024-10-21 15:42:07 +03:00
parent f316bb5345
commit 0711343c01
7 changed files with 149 additions and 31 deletions

View File

@ -17,7 +17,7 @@ namespace Demo.Data.LocalData
new GroupLocalEntity{ Id = 2, Name = "ИП1-22" }, new GroupLocalEntity{ Id = 2, Name = "ИП1-22" },
new GroupLocalEntity{ Id = 3, Name = "ИП1-23" }, new GroupLocalEntity{ Id = 3, Name = "ИП1-23" },
}; };
public static List<UserLocalEnity> users => new List<UserLocalEnity> public static List<UserLocalEnity> users => new List<UserLocalEnity>
{ {
new UserLocalEnity{Guid=Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "RandomFio", GroupID = 1 }, new UserLocalEnity{Guid=Guid.Parse("e6b9964d-ea9f-420a-84b9-af9633bbfab9"), FIO = "RandomFio", GroupID = 1 },

View File

@ -1,19 +1,61 @@
using Demo.Data.LocalData; using Demo.Data.LocalData;
using Demo.domain.Models; using Demo.domain.Models;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace Demo.Data.Repository namespace Demo.Data.Repository
{ {
public class GroupRepositoryImpl public class GroupRepositoryImpl : IGroupRepository
{ {
public List<GroupLocalEntity> GetAllGroups; public List<GroupLocalEntity> GetAllGroups { get; private set; }
public GroupRepositoryImpl() {
public GroupRepositoryImpl()
{
GetAllGroups = LocalStaticData.groups; GetAllGroups = LocalStaticData.groups;
} }
public void AddGroup(GroupLocalEntity newGroup) public List<GroupLocalEntity> GetAllGroup()
{ {
GetAllGroups.Add(newGroup); return GetAllGroups;
}
public GroupLocalEntity GetGroupById(int groupID)
{
return GetAllGroups.FirstOrDefault(g => g.Id == groupID);
}
public bool RemoveGroupById(int groupID)
{
var group = GetAllGroups.FirstOrDefault(g => g.Id == groupID);
if (group != null)
{
GetAllGroups.Remove(group);
return true;
}
return false;
}
public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup)
{
var existingGroup = GetAllGroups.FirstOrDefault(g => g.Id == groupID);
if (existingGroup != null)
{
existingGroup.Name = updatedGroup.Name;
return true;
}
return false;
}
public bool AddGroup(GroupLocalEntity newGroup)
{
// Проверяем, существует ли группа с таким же ID
if (GetAllGroups.Any(g => g.Id == newGroup.Id))
{
return false; // Группа с таким ID уже существует
}
GetAllGroups.Add(newGroup); // Добавляем новую группу
return true; // Успешное добавление
} }
} }
} }

View File

@ -0,0 +1,19 @@
using Demo.domain.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo.Data.Repository
{
public interface IGroupRepository
{
bool AddGroup(GroupLocalEntity newGroup); // Убедитесь, что здесь есть только один метод
List<GroupLocalEntity> GetAllGroup();
GroupLocalEntity GetGroupById(int groupID);
bool RemoveGroupById(int groupID);
bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup);
}
}

View File

@ -14,23 +14,29 @@ namespace Demo.Domain.UseCase
{ {
_repositoryGroupImpl = repositoryGroupImpl; _repositoryGroupImpl = repositoryGroupImpl;
} }
public bool RemoveGroupById(int groupID)
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups
.Select(it => new Group { Id = it.Id, Name = it.Name }).ToList();
public void AddGroup(GroupLocalEntity group)
{ {
var newGroup = new Group { Id = group.Id, Name = group.Name }; var group = _repositoryGroupImpl.GetAllGroups.FirstOrDefault(g => g.Id == groupID);
_repositoryGroupImpl.AddGroup(group);
}
public void UpdateGroupName(int groupId, string newName)
{
var group = _repositoryGroupImpl.GetAllGroups.FirstOrDefault(g => g.Id == groupId);
if (group != null) if (group != null)
{ {
group.Name = newName; _repositoryGroupImpl.RemoveGroupById(groupID);
return true;
} }
return false;
}
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroup()
.Select(it => new Group { Id = it.Id, Name = it.Name }).ToList();
public bool AddGroup(GroupLocalEntity group)
{
// Если метод возвращает true, то группа добавлена успешно
return _repositoryGroupImpl.AddGroup(group);
}
public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup)
{
return _repositoryGroupImpl.UpdateGroupById(groupID, updatedGroup);
} }
} }
} }

View File

@ -8,20 +8,21 @@ namespace Demo.Domain.UseCase
{ {
public class UserUseCase public class UserUseCase
{ {
private UserRepositoryImpl _repositoryUserImpl; private readonly UserRepositoryImpl _repositoryUserImpl;
private GroupRepositoryImpl _repositoryGroupImpl; private readonly IGroupRepository _repositoryGroupImpl;
public UserUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl)
public UserUseCase(UserRepositoryImpl repositoryImpl, IGroupRepository repositoryGroupImpl)
{ {
_repositoryUserImpl = repositoryImpl; _repositoryUserImpl = repositoryImpl;
_repositoryGroupImpl = repositoryGroupImpl; _repositoryGroupImpl = repositoryGroupImpl;
} }
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups private List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroup()
.Select(it => new Group { Id = it.Id, Name = it.Name }).ToList(); .Select(it => new Group { Id = it.Id, Name = it.Name }).ToList();
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers
.Join(_repositoryGroupImpl.GetAllGroups, .Join(_repositoryGroupImpl.GetAllGroup(),
user => user.GroupID, user => user.GroupID,
group => group.Id, group => group.Id,
(user, group) => (user, group) =>
@ -48,7 +49,7 @@ namespace Demo.Domain.UseCase
var userLocal = _repositoryUserImpl.GetUserByGuid(userGuid); var userLocal = _repositoryUserImpl.GetUserByGuid(userGuid);
if (userLocal == null) return null; if (userLocal == null) return null;
var group = _repositoryGroupImpl.GetAllGroups.FirstOrDefault(g => g.Id == userLocal.GroupID); var group = _repositoryGroupImpl.GetAllGroup().FirstOrDefault(g => g.Id == userLocal.GroupID);
return new User return new User
{ {
FIO = userLocal.FIO, FIO = userLocal.FIO,

View File

@ -24,6 +24,19 @@ namespace Demo.UI
} }
} }
public void RemoveGroupById(int groupId)
{
bool success = _groupUseCase.RemoveGroupById(groupId);
if (success)
{
Console.WriteLine($"Группа с ID {groupId} была успешно удалена.");
}
else
{
Console.WriteLine($"Группа с ID {groupId} не найдена.");
}
}
public void AddGroup() public void AddGroup()
{ {
Console.WriteLine("Введите название группы:"); Console.WriteLine("Введите название группы:");
@ -35,8 +48,15 @@ namespace Demo.UI
Name = groupName Name = groupName
}; };
_groupUseCase.AddGroup(newGroup); bool success = _groupUseCase.AddGroup(newGroup); // Используем новый метод
Console.WriteLine("Группа добавлена."); if (success)
{
Console.WriteLine("Группа добавлена.");
}
else
{
Console.WriteLine("Группа с таким ID уже существует.");
}
} }
public void UpdateGroupName() public void UpdateGroupName()
@ -46,8 +66,26 @@ namespace Demo.UI
{ {
Console.WriteLine("Введите новое название группы:"); Console.WriteLine("Введите новое название группы:");
string newGroupName = Console.ReadLine(); string newGroupName = Console.ReadLine();
_groupUseCase.UpdateGroupName(groupId, newGroupName);
Console.WriteLine("Название группы обновлено."); var updatedGroup = new GroupLocalEntity { Id = groupId, Name = newGroupName };
bool success = _groupUseCase.UpdateGroupById(groupId, updatedGroup);
if (success)
{
Console.WriteLine("Название группы обновлено.");
}
else
{
Console.WriteLine("Группа не найдена.");
}
Console.WriteLine("Группы после обновления:");
var allGroups = _groupUseCase.GetAllGroups();
foreach (var group in allGroups)
{
Console.WriteLine($"Id = {group.Id}, Name = \"{group.Name}\"");
}
} }
else else
{ {

View File

@ -27,7 +27,8 @@ namespace Demo.UI
Console.WriteLine("4 - Вывести все группы"); Console.WriteLine("4 - Вывести все группы");
Console.WriteLine("5 - Найти пользователя по GUID"); Console.WriteLine("5 - Найти пользователя по GUID");
Console.WriteLine("6 - Добавить группу"); Console.WriteLine("6 - Добавить группу");
Console.WriteLine("7 - Изменить название группы"); Console.WriteLine("7 - Обновить группу по ID");
Console.WriteLine("8 - Удалить группу по ID");
Console.WriteLine("0 - Выход"); Console.WriteLine("0 - Выход");
var input = Console.ReadLine(); var input = Console.ReadLine();
@ -96,8 +97,19 @@ namespace Demo.UI
case "7": case "7":
_groupConsoleUI.UpdateGroupName(); _groupConsoleUI.UpdateGroupName();
break; break;
case "8":
Console.WriteLine("Введите ID группы для удаления:");
if (int.TryParse(Console.ReadLine(), out int groupId))
{
_groupConsoleUI.RemoveGroupById(groupId);
}
else
{
Console.WriteLine("Некорректный ID группы.");
}
break;
case "0": case "0":
return; return;
default: default:
Console.WriteLine("Некорректный выбор. Попробуйте снова."); Console.WriteLine("Некорректный выбор. Попробуйте снова.");
break; break;