супер проект на 5
This commit is contained in:
parent
f316bb5345
commit
0711343c01
@ -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; // Успешное добавление
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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;
|
_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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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,6 +97,17 @@ 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:
|
||||||
|
Loading…
Reference in New Issue
Block a user