супер проект на 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

@ -1,19 +1,61 @@
using Demo.Data.LocalData;
using Demo.domain.Models;
using System.Collections.Generic;
using System.Linq;
namespace Demo.Data.Repository
{
public class GroupRepositoryImpl
public class GroupRepositoryImpl : IGroupRepository
{
public List<GroupLocalEntity> GetAllGroups { get; private set; }
public GroupRepositoryImpl()
{
public List<GroupLocalEntity> GetAllGroups;
public GroupRepositoryImpl() {
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;
}
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups
.Select(it => new Group { Id = it.Id, Name = it.Name }).ToList();
public void AddGroup(GroupLocalEntity group)
public bool RemoveGroupById(int groupID)
{
var newGroup = new Group { Id = group.Id, Name = group.Name };
_repositoryGroupImpl.AddGroup(group);
}
public void UpdateGroupName(int groupId, string newName)
{
var group = _repositoryGroupImpl.GetAllGroups.FirstOrDefault(g => g.Id == groupId);
var group = _repositoryGroupImpl.GetAllGroups.FirstOrDefault(g => g.Id == groupID);
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
{
private UserRepositoryImpl _repositoryUserImpl;
private GroupRepositoryImpl _repositoryGroupImpl;
private readonly UserRepositoryImpl _repositoryUserImpl;
private readonly IGroupRepository _repositoryGroupImpl;
public UserUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl)
public UserUseCase(UserRepositoryImpl repositoryImpl, IGroupRepository repositoryGroupImpl)
{
_repositoryUserImpl = repositoryImpl;
_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();
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers
.Join(_repositoryGroupImpl.GetAllGroups,
.Join(_repositoryGroupImpl.GetAllGroup(),
user => user.GroupID,
group => group.Id,
(user, group) =>
@ -48,7 +49,7 @@ namespace Demo.Domain.UseCase
var userLocal = _repositoryUserImpl.GetUserByGuid(userGuid);
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
{
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()
{
Console.WriteLine("Введите название группы:");
@ -35,9 +48,16 @@ namespace Demo.UI
Name = groupName
};
_groupUseCase.AddGroup(newGroup);
bool success = _groupUseCase.AddGroup(newGroup); // Используем новый метод
if (success)
{
Console.WriteLine("Группа добавлена.");
}
else
{
Console.WriteLine("Группа с таким ID уже существует.");
}
}
public void UpdateGroupName()
{
@ -46,10 +66,28 @@ namespace Demo.UI
{
Console.WriteLine("Введите новое название группы:");
string newGroupName = Console.ReadLine();
_groupUseCase.UpdateGroupName(groupId, newGroupName);
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
{
Console.WriteLine("Некорректный ID группы.");
}

View File

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