Compare commits
No commits in common. "master" and "main" have entirely different histories.
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Demo.Data.Exceptions
|
namespace Demo.Data.Exceptions
|
||||||
{
|
{
|
||||||
|
// Исключение для случая, когда данные уже существуют
|
||||||
public class DataAlreadyExistsException : Exception
|
public class DataAlreadyExistsException : Exception
|
||||||
{
|
{
|
||||||
public DataAlreadyExistsException(string message) : base(message) { }
|
public DataAlreadyExistsException(string message) : base(message) { }
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Demo.Data.Exceptions
|
namespace Demo.Data.Exceptions
|
||||||
{
|
{
|
||||||
|
// Исключение для случая, когда данные не найдены
|
||||||
public class DataNotFoundException : Exception
|
public class DataNotFoundException : Exception
|
||||||
{
|
{
|
||||||
public DataNotFoundException(string message) : base(message) { }
|
public DataNotFoundException(string message) : base(message) { }
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Demo.Data.Exceptions
|
namespace Demo.Data.Exceptions
|
||||||
{
|
{
|
||||||
|
// Исключение для случая, когда GUID не найден
|
||||||
public class GuidNotFoundException : Exception
|
public class GuidNotFoundException : Exception
|
||||||
{
|
{
|
||||||
public GuidNotFoundException(string message) : base(message) { }
|
public GuidNotFoundException(string message) : base(message) { }
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Demo.Data.Exceptions
|
namespace Demo.Data.Exceptions
|
||||||
{
|
{
|
||||||
|
// Исключение для случаев, когда передан некорректный или несуществующий ID группы
|
||||||
public class InvalidGroupIdException : Exception
|
public class InvalidGroupIdException : Exception
|
||||||
{
|
{
|
||||||
public InvalidGroupIdException(string message) : base(message) { }
|
public InvalidGroupIdException(string message) : base(message) { }
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
using Demo.Domain.Models;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -1,20 +1,19 @@
|
|||||||
using Demo.Data.LocalData;
|
using Demo.Data.LocalData;
|
||||||
using Demo.Domain.Models;
|
using Demo.domain.Models;
|
||||||
using Demo.Data.Exceptions;
|
using Demo.Data.Exceptions; // Добавлено
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Demo.Domain.UseCase;
|
|
||||||
|
|
||||||
namespace Demo.Data.Repository
|
namespace Demo.Data.Repository
|
||||||
{
|
{
|
||||||
public class GroupRepositoryImpl: IGroupRepository
|
public class GroupRepositoryImpl
|
||||||
{
|
{
|
||||||
private List<GroupLocalEntity> _groups;
|
private List<GroupLocalEntity> _groups;
|
||||||
|
|
||||||
public GroupRepositoryImpl()
|
public GroupRepositoryImpl()
|
||||||
{
|
{
|
||||||
_groups = LocalStaticData.groups;
|
_groups = LocalStaticData.groups; // Получаем группы из LocalStaticData
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<GroupLocalEntity> GetAllGroups()
|
public List<GroupLocalEntity> GetAllGroups()
|
||||||
@ -22,13 +21,24 @@ namespace Demo.Data.Repository
|
|||||||
return _groups;
|
return _groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AddGroup(GroupLocalEntity group)
|
public void AddGroup(int id, string name)
|
||||||
{
|
{
|
||||||
_groups.Add(new GroupLocalEntity { Id = group.Id, Name = group.Name });
|
try
|
||||||
return true;
|
{
|
||||||
|
if (_groups.Any(g => g.Id == id))
|
||||||
|
{
|
||||||
|
throw new DataAlreadyExistsException($"Группа с ID {id} уже существует."); // Кастомное исключение
|
||||||
|
}
|
||||||
|
|
||||||
|
_groups.Add(new GroupLocalEntity { Id = id, Name = name });
|
||||||
|
}
|
||||||
|
catch (DataAlreadyExistsException ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка: {ex.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool UpdateGroup(int id)
|
public void UpdateGroup(int id, string newName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -36,21 +46,10 @@ namespace Demo.Data.Repository
|
|||||||
|
|
||||||
if (group == null)
|
if (group == null)
|
||||||
{
|
{
|
||||||
throw new InvalidGroupIdException($"Группа с ID {id} не существует.");
|
throw new InvalidGroupIdException($"Группа с ID {id} не существует."); // Новое исключение
|
||||||
}
|
}
|
||||||
string newName = Console.ReadLine();
|
|
||||||
try
|
group.Name = newName;
|
||||||
{
|
|
||||||
if (newName != "")
|
|
||||||
{
|
|
||||||
group.Name = newName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
Console.WriteLine("Введите корректное название группы");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (InvalidGroupIdException ex)
|
catch (InvalidGroupIdException ex)
|
||||||
{
|
{
|
||||||
@ -60,10 +59,9 @@ namespace Demo.Data.Repository
|
|||||||
{
|
{
|
||||||
Console.WriteLine($"Ошибка: {ex.Message}");
|
Console.WriteLine($"Ошибка: {ex.Message}");
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DeleteGroupById(int id)
|
public void DeleteGroupById(int id)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -71,33 +69,16 @@ namespace Demo.Data.Repository
|
|||||||
if (group != null)
|
if (group != null)
|
||||||
{
|
{
|
||||||
_groups.Remove(group);
|
_groups.Remove(group);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new DataNotFoundException($"Группа с ID {id} не найдена.");
|
throw new DataNotFoundException($"Группа с ID {id} не найдена."); // Исключение с русским сообщением
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (DataNotFoundException ex)
|
catch (DataNotFoundException ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Ошибка: {ex.Message}");
|
Console.WriteLine($"Ошибка: {ex.Message}");
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GroupLocalEntity GetGroupById(int groupID)
|
|
||||||
{
|
|
||||||
var _groups = GetAllGroups();
|
|
||||||
foreach (var _group in _groups)
|
|
||||||
{
|
|
||||||
if (_group.Id == groupID)
|
|
||||||
{
|
|
||||||
Console.WriteLine();
|
|
||||||
Console.WriteLine($"ID группы: {_group.Id} Название группы: {_group.Name}");
|
|
||||||
Console.WriteLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
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
|
|
||||||
{
|
|
||||||
List<GroupLocalEntity> GetAllGroups();
|
|
||||||
bool DeleteGroupById(int groupID);
|
|
||||||
bool UpdateGroup(int groupID);
|
|
||||||
GroupLocalEntity GetGroupById(int groupID);
|
|
||||||
bool AddGroup(GroupLocalEntity newGroup);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
using Demo.Data.LocalData;
|
using Demo.Data.LocalData;
|
||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
using Demo.Data.Exceptions;
|
using Demo.Data.Exceptions; // Добавлено
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -13,11 +13,13 @@ namespace Demo.Data.Repository
|
|||||||
|
|
||||||
public UserRepositoryImpl()
|
public UserRepositoryImpl()
|
||||||
{
|
{
|
||||||
_users = LocalStaticData.users;
|
_users = LocalStaticData.users; // Получаем пользователей из LocalStaticData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Получение всех пользователей
|
||||||
public IEnumerable<UserLocalEntity> GetAllUsers => _users;
|
public IEnumerable<UserLocalEntity> GetAllUsers => _users;
|
||||||
|
|
||||||
|
// Удаление пользователя по GUID
|
||||||
public void DeleteUserByGuid(Guid guid)
|
public void DeleteUserByGuid(Guid guid)
|
||||||
{
|
{
|
||||||
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
||||||
@ -27,20 +29,22 @@ namespace Demo.Data.Repository
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден.");
|
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Поиск пользователя по GUID
|
||||||
public UserLocalEntity? FindUserByGuid(Guid guid)
|
public UserLocalEntity? FindUserByGuid(Guid guid)
|
||||||
{
|
{
|
||||||
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден.");
|
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Обновление пользователя
|
||||||
public void UpdateUser(string guidOrInt, string newFIO, int newGroupID)
|
public void UpdateUser(string guidOrInt, string newFIO, int newGroupID)
|
||||||
{
|
{
|
||||||
Guid guid;
|
Guid guid;
|
||||||
@ -57,7 +61,7 @@ namespace Demo.Data.Repository
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден.");
|
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,9 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Demo.domain.Models
|
namespace Demo.domain.Models
|
||||||
{
|
{
|
||||||
public class Group
|
public class GroupLocalEntity
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public required int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,8 +11,6 @@ namespace Demo.domain.Models
|
|||||||
{
|
{
|
||||||
public required string FIO { get; set; }
|
public required string FIO { get; set; }
|
||||||
public Guid Guid { get; set; }
|
public Guid Guid { get; set; }
|
||||||
public int GroupID { get; set; }
|
|
||||||
public required Group Group { get; set; }
|
public required Group Group { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,14 +1,11 @@
|
|||||||
using Demo.Data.LocalData;
|
using Demo.Data.Repository;
|
||||||
using Demo.Data.Repository;
|
using Demo.domain.Models;
|
||||||
using Demo.Domain.Models;
|
|
||||||
|
|
||||||
namespace Demo.Domain.UseCase
|
namespace Demo.Domain.UseCase
|
||||||
{
|
{
|
||||||
public class GroupUseCase
|
public class GroupUseCase
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly GroupRepositoryImpl _repositoryGroupImpl;
|
private readonly GroupRepositoryImpl _repositoryGroupImpl;
|
||||||
private List<GroupLocalEntity> _groups = LocalStaticData.groups;
|
|
||||||
|
|
||||||
public GroupUseCase(GroupRepositoryImpl repositoryGroupImpl)
|
public GroupUseCase(GroupRepositoryImpl repositoryGroupImpl)
|
||||||
{
|
{
|
||||||
@ -20,20 +17,14 @@ namespace Demo.Domain.UseCase
|
|||||||
return _repositoryGroupImpl.GetAllGroups();
|
return _repositoryGroupImpl.GetAllGroups();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetGroupById(int id)
|
public void AddGroup(int id, string name)
|
||||||
{
|
{
|
||||||
_repositoryGroupImpl.GetGroupById(id);
|
_repositoryGroupImpl.AddGroup(id, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddGroup(GroupLocalEntity group)
|
public void UpdateGroup(int id, string newName)
|
||||||
{
|
{
|
||||||
group.Id = _groups.Any() ? _groups.Max(g => g.Id) + 1 : 1;
|
_repositoryGroupImpl.UpdateGroup(id, newName);
|
||||||
_repositoryGroupImpl.AddGroup(group);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UpdateGroup(int id)
|
|
||||||
{
|
|
||||||
_repositoryGroupImpl.UpdateGroup(id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,77 +1,84 @@
|
|||||||
using Demo.Data.Repository;
|
using Demo.Data.Repository;
|
||||||
|
using Demo.Data.Exceptions; // Добавлено
|
||||||
using Demo.Domain.Models;
|
using Demo.Domain.Models;
|
||||||
using Demo.Data.Exceptions;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using Demo.domain.Models;
|
using Demo.domain.Models;
|
||||||
|
|
||||||
namespace Demo.Domain.UseCase
|
namespace Demo.Domain.UseCase
|
||||||
{
|
{
|
||||||
public class UserUseCase
|
public class UserUseCase
|
||||||
{
|
{
|
||||||
private readonly UserRepositoryImpl _userRepository;
|
private readonly UserRepositoryImpl _userRepositoryImpl;
|
||||||
private readonly IGroupRepository _groupRepository;
|
|
||||||
|
|
||||||
public UserUseCase(UserRepositoryImpl userRepository, IGroupRepository groupRepository)
|
public UserUseCase(UserRepositoryImpl userRepositoryImpl)
|
||||||
{
|
{
|
||||||
_userRepository = userRepository;
|
_userRepositoryImpl = userRepositoryImpl;
|
||||||
_groupRepository = groupRepository;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Group> GetAllGroups() =>
|
public List<UserLocalEntity> GetAllUsers()
|
||||||
_groupRepository.GetAllGroups()
|
|
||||||
.Select(g => new Group { Id = g.Id, Name = g.Name })
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
public List<User> GetAllUsers() =>
|
|
||||||
_userRepository.GetAllUsers
|
|
||||||
.Join(_groupRepository.GetAllGroups(),
|
|
||||||
user => user.GroupID,
|
|
||||||
group => group.Id,
|
|
||||||
(user, group) => new User
|
|
||||||
{
|
|
||||||
FIO = user.FIO,
|
|
||||||
Guid = user.Guid,
|
|
||||||
Group = new Group { Id = group.Id, Name = group.Name }
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
public bool RemoveUserByGuid(Guid userGuid)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_userRepository.DeleteUserByGuid(userGuid);
|
return new List<UserLocalEntity>(_userRepositoryImpl.GetAllUsers);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (GuidNotFoundException)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return false;
|
Console.WriteLine($"Ошибка при получении пользователей: {ex.Message}");
|
||||||
|
return new List<UserLocalEntity>(); // Возвращаем пустой список в случае ошибки
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public User UpdateUser(User user)
|
public void DeleteUserByGuid(Guid guid) // Изменен тип параметра
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_userRepository.UpdateUser(user.Guid.ToString(), user.FIO, user.Group.Id);
|
_userRepositoryImpl.DeleteUserByGuid(guid);
|
||||||
|
|
||||||
var group = GetAllGroups().FirstOrDefault(g => g.Id == user.Group.Id);
|
|
||||||
if (group == null)
|
|
||||||
{
|
|
||||||
throw new Exception($"Группа с ID {user.Group.Id} не найдена.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return new User { FIO = user.FIO, Guid = user.Guid, Group = group };
|
|
||||||
}
|
}
|
||||||
catch (GuidNotFoundException ex)
|
catch (DataNotFoundException ex)
|
||||||
{
|
{
|
||||||
throw new Exception("Пользователь не найден.", ex);
|
Console.WriteLine($"Ошибка при удалении пользователя: {ex.Message}"); // Логгирование
|
||||||
}
|
}
|
||||||
catch (ArgumentException ex)
|
catch (Exception ex) // Ловим любые другие ошибки
|
||||||
{
|
{
|
||||||
throw new Exception("Некорректный GUID.", ex);
|
Console.WriteLine($"Неизвестная ошибка: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserLocalEntity? FindUserByGuid(Guid guid) // Изменен тип параметра
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _userRepositoryImpl.FindUserByGuid(guid);
|
||||||
|
}
|
||||||
|
catch (DataNotFoundException ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка при поиске пользователя: {ex.Message}"); // Логгирование
|
||||||
|
return null; // Возвращаем null в случае ошибки
|
||||||
|
}
|
||||||
|
catch (Exception ex) // Ловим любые другие ошибки
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Неизвестная ошибка: {ex.Message}");
|
||||||
|
return null; // Возвращаем null в случае ошибки
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateUser(Guid guid, string newFIO, int newGroupID)
|
||||||
|
{
|
||||||
|
var users = _userRepositoryImpl.GetAllUsers; // Получаем список пользователей
|
||||||
|
var user = users.FirstOrDefault(u => u.Guid == guid);
|
||||||
|
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
user.FIO = newFIO;
|
||||||
|
user.GroupID = newGroupID;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ class Program
|
|||||||
var userRepository = new UserRepositoryImpl();
|
var userRepository = new UserRepositoryImpl();
|
||||||
var groupRepository = new GroupRepositoryImpl();
|
var groupRepository = new GroupRepositoryImpl();
|
||||||
|
|
||||||
var userUseCase = new UserUseCase(userRepository,groupRepository);
|
var userUseCase = new UserUseCase(userRepository);
|
||||||
var groupUseCase = new GroupUseCase(groupRepository);
|
var groupUseCase = new GroupUseCase(groupRepository);
|
||||||
|
|
||||||
var userConsole = new UserConsole(userUseCase);
|
var userConsole = new UserConsole(userUseCase);
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using Demo.Data.Repository;
|
using Demo.Domain.UseCase;
|
||||||
using Demo.domain.Models;
|
|
||||||
using Demo.Domain.Models;
|
|
||||||
using Demo.Domain.UseCase;
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Demo.UI
|
namespace Demo.UI
|
||||||
@ -15,12 +12,6 @@ namespace Demo.UI
|
|||||||
_groupUseCase = groupUseCase;
|
_groupUseCase = groupUseCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetGroupById(int id)
|
|
||||||
{
|
|
||||||
_groupUseCase.GetGroupById(id);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowAllGroups()
|
public void ShowAllGroups()
|
||||||
{
|
{
|
||||||
var groups = _groupUseCase.GetAllGroups();
|
var groups = _groupUseCase.GetAllGroups();
|
||||||
@ -30,17 +21,22 @@ namespace Demo.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddGroup(string Name)
|
public void AddGroup()
|
||||||
{
|
{
|
||||||
GroupLocalEntity newGroup = new GroupLocalEntity { Name = Name };
|
Console.WriteLine("Enter Group Name:");
|
||||||
_groupUseCase.AddGroup(newGroup);
|
string name = Console.ReadLine();
|
||||||
|
var id = int.Parse(Console.ReadLine());
|
||||||
|
|
||||||
|
|
||||||
|
_groupUseCase.AddGroup(id, name);
|
||||||
Console.WriteLine("Group added successfully.");
|
Console.WriteLine("Group added successfully.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateGroup(int groupId)
|
public void UpdateGroup(int groupId)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Enter new Group Name:");
|
Console.WriteLine("Enter new Group Name:");
|
||||||
_groupUseCase.UpdateGroup(groupId);
|
string newName = Console.ReadLine();
|
||||||
|
_groupUseCase.UpdateGroup(groupId, newName);
|
||||||
Console.WriteLine("Group updated successfully.");
|
Console.WriteLine("Group updated successfully.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,6 @@ namespace Demo.UI
|
|||||||
_groupConsole = groupConsole;
|
_groupConsole = groupConsole;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void ShowMenu()
|
public void ShowMenu()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
@ -25,11 +22,10 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("2. Показать все группы");
|
Console.WriteLine("2. Показать все группы");
|
||||||
Console.WriteLine("3. Добавить группу");
|
Console.WriteLine("3. Добавить группу");
|
||||||
Console.WriteLine("4. Обновить группу");
|
Console.WriteLine("4. Обновить группу");
|
||||||
Console.WriteLine("5. Найти группу по id");
|
Console.WriteLine("5. Обновить пользователя");
|
||||||
Console.WriteLine("6. Обновить пользователя");
|
Console.WriteLine("6. Удалить пользователя");
|
||||||
Console.WriteLine("7. Удалить пользователя");
|
Console.WriteLine("7. Найти пользователя");
|
||||||
Console.WriteLine("8. Найти пользователя");
|
Console.WriteLine("8. Выход");
|
||||||
Console.WriteLine("9. Выход");
|
|
||||||
Console.WriteLine("Выберете команду:");
|
Console.WriteLine("Выберете команду:");
|
||||||
|
|
||||||
string choice = Console.ReadLine();
|
string choice = Console.ReadLine();
|
||||||
@ -42,9 +38,7 @@ namespace Demo.UI
|
|||||||
_groupConsole.ShowAllGroups();
|
_groupConsole.ShowAllGroups();
|
||||||
break;
|
break;
|
||||||
case "3":
|
case "3":
|
||||||
Console.Write("Введите название новой группы: ");
|
_groupConsole.AddGroup();
|
||||||
string newGroupName = Console.ReadLine();
|
|
||||||
_groupConsole.AddGroup(newGroupName);
|
|
||||||
break;
|
break;
|
||||||
case "4":
|
case "4":
|
||||||
Console.WriteLine("Введите ID группы:");
|
Console.WriteLine("Введите ID группы:");
|
||||||
@ -58,11 +52,6 @@ namespace Demo.UI
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "5":
|
case "5":
|
||||||
Console.WriteLine("Введите id группы");
|
|
||||||
int id = int.Parse(Console.ReadLine());
|
|
||||||
_groupConsole.GetGroupById(id);
|
|
||||||
break;
|
|
||||||
case "6":
|
|
||||||
Console.WriteLine("Введите юзер GUID:");
|
Console.WriteLine("Введите юзер GUID:");
|
||||||
if (Guid.TryParse(Console.ReadLine(), out Guid userGuid))
|
if (Guid.TryParse(Console.ReadLine(), out Guid userGuid))
|
||||||
{
|
{
|
||||||
@ -73,7 +62,7 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "7":
|
case "6":
|
||||||
Console.WriteLine("Введите юзер GUID:");
|
Console.WriteLine("Введите юзер GUID:");
|
||||||
if (Guid.TryParse(Console.ReadLine(), out userGuid))
|
if (Guid.TryParse(Console.ReadLine(), out userGuid))
|
||||||
{
|
{
|
||||||
@ -84,7 +73,7 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "8":
|
case "7":
|
||||||
Console.WriteLine("Введите юзер GUID:");
|
Console.WriteLine("Введите юзер GUID:");
|
||||||
if (Guid.TryParse(Console.ReadLine(), out userGuid))
|
if (Guid.TryParse(Console.ReadLine(), out userGuid))
|
||||||
{
|
{
|
||||||
@ -95,7 +84,7 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
Console.WriteLine("Ошибка: Введите корректный GUID пользователя.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "9":
|
case "8":
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
Console.WriteLine("Ошибка: Выберите корректный пункт меню.");
|
Console.WriteLine("Ошибка: Выберите корректный пункт меню.");
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Demo.domain.Models;
|
using Demo.Domain.UseCase;
|
||||||
using Demo.Domain.UseCase;
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Demo.UI
|
namespace Demo.UI
|
||||||
@ -24,7 +23,7 @@ namespace Demo.UI
|
|||||||
|
|
||||||
foreach (var user in users)
|
foreach (var user in users)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"User GUID: {user.Guid}, FIO: {user.FIO}, Group ID: {user.Group.Id}");
|
Console.WriteLine($"User GUID: {user.Guid}, FIO: {user.FIO}, Group ID: {user.GroupID}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,29 +34,22 @@ namespace Demo.UI
|
|||||||
Console.WriteLine("Enter new Group ID:");
|
Console.WriteLine("Enter new Group ID:");
|
||||||
int newGroupID = int.Parse(Console.ReadLine());
|
int newGroupID = int.Parse(Console.ReadLine());
|
||||||
|
|
||||||
var user = new User
|
_userUseCase.UpdateUser(userGuid, newFIO, newGroupID);
|
||||||
{
|
|
||||||
Guid = userGuid,
|
|
||||||
FIO = newFIO,
|
|
||||||
Group = new Group { Id = newGroupID }
|
|
||||||
};
|
|
||||||
|
|
||||||
_userUseCase.UpdateUser(user);
|
|
||||||
Console.WriteLine("User updated successfully.");
|
Console.WriteLine("User updated successfully.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteUser(Guid userGuid)
|
public void DeleteUser(Guid userGuid)
|
||||||
{
|
{
|
||||||
_userUseCase.RemoveUserByGuid(userGuid);
|
_userUseCase.DeleteUserByGuid(userGuid);
|
||||||
Console.WriteLine("User deleted successfully.");
|
Console.WriteLine("User deleted successfully.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FindUser(Guid userGuid)
|
public void FindUser(Guid userGuid)
|
||||||
{
|
{
|
||||||
var user = _userUseCase.GetAllUsers().FirstOrDefault(u => u.Guid == userGuid);
|
var user = _userUseCase.FindUserByGuid(userGuid);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"User found: {user.FIO}, Group ID: {user.Group.Id}");
|
Console.WriteLine($"User found: {user.FIO}, Group ID: {user.GroupID}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b4e5a3dd2f475e7d74fb288c1de8905f5f994806")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6012168a59e9bbf0281cdaaa8d7f6e69b8ecec8f")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Demo")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Demo")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
5878b69e5613879bcba64db1891c8a7dbcd49ccef6a7931f8930b38073917d15
|
efd0090b9c54c0abf864e23fbf373a506c3fb00e3f28b8ef9c89c024ba7d64a7
|
||||||
|
@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
|
|||||||
build_property.EnforceExtendedAnalyzerRules =
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
build_property.RootNamespace = Demo
|
build_property.RootNamespace = Demo
|
||||||
build_property.ProjectDir = C:\Users\Class_Student\source\repos\Пресенс 1 обнова\Demo\
|
build_property.ProjectDir = C:\Users\admin\Downloads\presence\Demo\
|
||||||
build_property.EnableComHosting =
|
build_property.EnableComHosting =
|
||||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
4b5b0f995b1adfca76622723dd459ae2fd250d0a03dfae990704539081a799be
|
f99c4e359b24acf3225e0e4301aebeedd510c03d00507261adb31764dc1d4cf2
|
||||||
|
@ -40,17 +40,3 @@ C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\refint\Demo.dll
|
|||||||
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\Demo.pdb
|
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\Demo.pdb
|
||||||
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
||||||
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\ref\Demo.dll
|
C:\Users\admin\Downloads\presence\Demo\obj\Debug\net8.0\ref\Demo.dll
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\bin\Debug\net8.0\Demo.exe
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\bin\Debug\net8.0\Demo.deps.json
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\bin\Debug\net8.0\Demo.runtimeconfig.json
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\bin\Debug\net8.0\Demo.dll
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\bin\Debug\net8.0\Demo.pdb
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.GeneratedMSBuildEditorConfig.editorconfig
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.AssemblyInfoInputs.cache
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.AssemblyInfo.cs
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.csproj.CoreCompileInputs.cache
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.dll
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\refint\Demo.dll
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.pdb
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\Demo.genruntimeconfig.cache
|
|
||||||
C:\Users\adm\Source\Repos\presence_kv\Demo\obj\Debug\net8.0\ref\Demo.dll
|
|
||||||
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
646917542bf92e8c89c0a80da626af33086f53aa936b6509f071016280c8969c
|
02cdd9e0986a102e7732e877ec932f42f00981a7aa4040bf65a1930454f6c138
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,20 +1,24 @@
|
|||||||
{
|
{
|
||||||
"format": 1,
|
"format": 1,
|
||||||
"restore": {
|
"restore": {
|
||||||
"C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj": {}
|
"C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj": {}
|
||||||
},
|
},
|
||||||
"projects": {
|
"projects": {
|
||||||
"C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj": {
|
"C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj",
|
"projectUniqueName": "C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj",
|
||||||
"projectName": "Demo",
|
"projectName": "Demo",
|
||||||
"projectPath": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj",
|
"projectPath": "C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj",
|
||||||
"packagesPath": "C:\\Users\\Class_Student\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
|
||||||
"outputPath": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\obj\\",
|
"outputPath": "C:\\Users\\admin\\Downloads\\presence\\Demo\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
|
"fallbackFolders": [
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||||
|
],
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\Class_Student\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
],
|
],
|
||||||
"originalTargetFrameworks": [
|
"originalTargetFrameworks": [
|
||||||
@ -60,7 +64,7 @@
|
|||||||
"privateAssets": "all"
|
"privateAssets": "all"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,12 @@
|
|||||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Class_Student\.nuget\packages\</NuGetPackageFolders>
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.0</NuGetToolVersion>
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<SourceRoot Include="C:\Users\Class_Student\.nuget\packages\" />
|
<SourceRoot Include="C:\Users\admin\.nuget\packages\" />
|
||||||
|
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -8,19 +8,24 @@
|
|||||||
"net8.0": []
|
"net8.0": []
|
||||||
},
|
},
|
||||||
"packageFolders": {
|
"packageFolders": {
|
||||||
"C:\\Users\\Class_Student\\.nuget\\packages\\": {}
|
"C:\\Users\\admin\\.nuget\\packages\\": {},
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"restore": {
|
"restore": {
|
||||||
"projectUniqueName": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj",
|
"projectUniqueName": "C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj",
|
||||||
"projectName": "Demo",
|
"projectName": "Demo",
|
||||||
"projectPath": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj",
|
"projectPath": "C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj",
|
||||||
"packagesPath": "C:\\Users\\Class_Student\\.nuget\\packages\\",
|
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
|
||||||
"outputPath": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\obj\\",
|
"outputPath": "C:\\Users\\admin\\Downloads\\presence\\Demo\\obj\\",
|
||||||
"projectStyle": "PackageReference",
|
"projectStyle": "PackageReference",
|
||||||
|
"fallbackFolders": [
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||||
|
],
|
||||||
"configFilePaths": [
|
"configFilePaths": [
|
||||||
"C:\\Users\\Class_Student\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
],
|
],
|
||||||
"originalTargetFrameworks": [
|
"originalTargetFrameworks": [
|
||||||
@ -66,7 +71,7 @@
|
|||||||
"privateAssets": "all"
|
"privateAssets": "all"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.403/PortableRuntimeIdentifierGraph.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "lD1Jh1lqFLo=",
|
"dgSpecHash": "RrqvWWGEBZQ=",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "C:\\Users\\Class_Student\\source\\repos\\Пресенс 1 обнова\\Demo\\Demo.csproj",
|
"projectFilePath": "C:\\Users\\admin\\Downloads\\presence\\Demo\\Demo.csproj",
|
||||||
"expectedPackageFiles": [],
|
"expectedPackageFiles": [],
|
||||||
"logs": []
|
"logs": []
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user