супер проект на 5
This commit is contained in:
parent
f316bb5345
commit
0711343c01
@ -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; // Успешное добавление
|
||||
}
|
||||
}
|
||||
}
|
||||
|
19
Demo/Data/Repository/IGroupRepository.cs
Normal file
19
Demo/Data/Repository/IGroupRepository.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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 группы.");
|
||||
}
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user