This commit is contained in:
Your Name 2024-10-21 12:38:07 +03:00
parent 26da83afba
commit efdaa78822
13 changed files with 111 additions and 22 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1,5 +1,5 @@
namespace Demo.Domain.Models{ namespace Demo.Domain.Models{
public class UserLocalEntity{ public class UserLocalEntity :IEquatable<UserLocalEntity>{
public required string FIO{get; set; } public required string FIO{get; set; }
public Guid Guid {get; set; } public Guid Guid {get; set; }
public required int GroupID{get; set; } public required int GroupID{get; set; }

View File

@ -1,12 +1,10 @@
using Demo.Domain.Models; using Demo.Domain.Models;
using Demo.Data.LocalData; using Demo.Data.LocalData;
namespace Demo.Data.Repository namespace Demo.Data.Repository
{ {
public class GroupRepositoryImpl public class GroupRepositoryImpl : IGroupRepository
{ {
// public List<GroupLocalEntity> GetAllGroups() => LocalStaticData.groups;
public GroupRepositoryImpl() { public GroupRepositoryImpl() {
GetAllGroups = LocalStaticData.groups; GetAllGroups = LocalStaticData.groups;
@ -14,18 +12,43 @@ namespace Demo.Data.Repository
public List<GroupLocalEntity> GetAllGroups public List<GroupLocalEntity> GetAllGroups
{ get; set; } { get; set; }
public void CreateNewGroup(GroupLocalEntity groupLocalEntity) public List<GroupLocalEntity> GetAllGroup()
{ {
GetAllGroups.Add(groupLocalEntity); return GetAllGroups;
} }
public GroupLocalEntity? UpdateGroup(GroupLocalEntity groupUpdateLocalEntity) public GroupLocalEntity? CreateGroup(GroupLocalEntity groupCreateLocalEntity) {
if (GetAllGroups.Any(x => x.ID == groupCreateLocalEntity.ID)) return null;
GetAllGroups.Add(groupCreateLocalEntity);
return groupCreateLocalEntity;
}
public GroupLocalEntity? UpdateGroup(GroupLocalEntity updatedGroup)
{ {
int index = GetAllGroups.FindIndex(x => x.ID == groupUpdateLocalEntity.ID); int index = GetAllGroups.FindIndex(x => x.ID == updatedGroup.ID);
if (index == -1) return null; if (index == -1) return null;
GetAllGroups[index].Name = groupUpdateLocalEntity.Name; GetAllGroups[index].Name = updatedGroup.Name;
Console.WriteLine($"Обновленный Name: {GetAllGroups[index].Name}"); Console.WriteLine($"Обновленный Name: {GetAllGroups[index].Name}");
return GetAllGroups[index]; return GetAllGroups[index];
} }
public bool RemoveGroupById(int groupId)
{
GroupLocalEntity? groupLocal = GetAllGroups
.Where(x => x.ID == groupId).FirstOrDefault();
if (groupLocal == null) return false;
return GetAllGroups.Remove(groupLocal);
}
public GroupLocalEntity? GetGroupById(int groupId)
{
GroupLocalEntity? grouplocal = LocalStaticData.groups.Where(x => x.ID == groupId).FirstOrDefault();
if (grouplocal == null) return null;
return grouplocal;
}
} }
} }

View File

@ -0,0 +1,13 @@
using Demo.Domain.Models;
namespace Demo.Data.Repository
{
public interface IGroupRepository
{
List<GroupLocalEntity> GetAllGroup();
bool RemoveGroupById(int groupId);
GroupLocalEntity? UpdateGroup(GroupLocalEntity updatedGroup);
GroupLocalEntity? GetGroupById(int groupId);
GroupLocalEntity? CreateGroup(GroupLocalEntity newGroup);
}
}

View File

@ -0,0 +1,12 @@
using Demo.Domain.Models;
namespace Demo.Data.Repository
{
public interface IUserRepository
{
List<UserLocalEntity> GetAllUser();
bool RemoveUserByGuid(Guid userGuid);
UserLocalEntity? UpdateUserById(UserLocalEntity userUpdateLocalEntity);
UserLocalEntity? GetUserById(Guid userGuid);
}
}

View File

@ -12,6 +12,10 @@ namespace Demo.Data.Repository
public List<UserLocalEntity> GetAllUsers public List<UserLocalEntity> GetAllUsers
{ get; set; } { get; set; }
public List<UserLocalEntity> GeAllUser(){
return GetAllUsers;
}
public bool RemoveUserByGuid(Guid userGuid) public bool RemoveUserByGuid(Guid userGuid)
{ {
UserLocalEntity? userLocal = GetAllUsers UserLocalEntity? userLocal = GetAllUsers

BIN
Domain/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -5,20 +5,20 @@ namespace Demo.Domain.UseCase
{ {
public class GroupUseCase public class GroupUseCase
{ {
private GroupRepositoryImpl _repositoryGroupImpl; private readonly IUserRepository _repositoryUserImpl;
private UserRepositoryImpl _repositoryUserImpl; private readonly IGroupRepository _repositoryGroupImpl;
public GroupUseCase(GroupRepositoryImpl repositoryGroupImpl, UserRepositoryImpl repositoryUserImpl) public GroupUseCase(IGroupRepository repositoryGroupImpl, IUserRepository repositoryUserImpl)
{ {
_repositoryGroupImpl = repositoryGroupImpl; _repositoryGroupImpl = repositoryGroupImpl;
_repositoryUserImpl = repositoryUserImpl; _repositoryUserImpl = repositoryUserImpl;
} }
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups public 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 bool CreateNewGroup(Group group){ public bool CreateNewGroup(Group group){
GroupLocalEntity? groupLocalEntity = new GroupLocalEntity{ID = group.ID, Name = group.Name}; GroupLocalEntity? groupLocalEntity = new GroupLocalEntity{ID = group.ID, Name = group.Name};
_repositoryGroupImpl.CreateNewGroup(groupLocalEntity); _repositoryGroupImpl.CreateGroup(groupLocalEntity);
if (groupLocalEntity != null) return false; if (groupLocalEntity != null) return false;
return true; return true;
} }
@ -41,5 +41,17 @@ namespace Demo.Domain.UseCase
Name = result.Name Name = result.Name
}; };
} }
public bool RemoveUserByGuid(Guid userGuid) {
return _repositoryUserImpl.RemoveUserByGuid(userGuid);
}
public Group GetGroupById(int groupID)
{
GroupLocalEntity? groupLocalEntity = _repositoryGroupImpl.GetGroupById(groupID);
if (groupLocalEntity == null) throw new Exception("bello");
return new Group{
ID = groupID, Name = groupLocalEntity.Name};
}
} }
} }

View File

@ -0,0 +1,13 @@
using Demo.Domain.Models;
namespace Demo.Domain.UseCase
{
public interface IGroupUseCase
{
List<Group> GetAllGroups();
bool RemoveUserByGuid(Guid userGuid);
Group UpdateGroup(Group group);
GroupLocalEntity GetGroupById(int groupId);
bool CreateGroup(Group group);
}
}

View File

@ -0,0 +1,12 @@
using Demo.Domain.Models;
namespace Demo.Domain.UseCase
{
public interface IUserUseCase
{
List<User> GetAllUsers();
bool RemoveUserByGuid(Guid userGuid);
User UpdateUser(User user);
User GetUserByGuid(Guid userGuid);
}
}

View File

@ -5,20 +5,20 @@ namespace Demo.Domain.UseCase
{ {
public class UserUseCase public class UserUseCase
{ {
private GroupRepositoryImpl _repositoryGroupImpl; private readonly IUserRepository _repositoryUserImpl;
private UserRepositoryImpl _repositoryUserImpl; private readonly IGroupRepository _repositoryGroupImpl;
public UserUseCase(GroupRepositoryImpl repositoryGroupImpl, UserRepositoryImpl repositoryUserImpl) public UserUseCase(IGroupRepository repositoryGroupImpl, IUserRepository repositoryUserImpl)
{ {
_repositoryGroupImpl = repositoryGroupImpl; _repositoryGroupImpl = repositoryGroupImpl;
_repositoryUserImpl = repositoryUserImpl; _repositoryUserImpl = repositoryUserImpl;
} }
private 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.GetAllUser()
.Join(_repositoryGroupImpl.GetAllGroups, .Join(_repositoryGroupImpl.GetAllGroup(),
user => user.GroupID, user => user.GroupID,
group => group.ID, group => group.ID,
(user, group) => new User{ (user, group) => new User{

View File

@ -13,7 +13,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+d5ff9f45a55af13593d3b8a9b65ecffccf59b0a7")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+26da83afbacb32e0747365acef2fa22c2343aec8")]
[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")]

View File

@ -1 +1 @@
5bce74879fd45efe103c6f650dd3b5b74cc20c28f77d21ab4268da5f80b45640 43ed596f37cf9f6f3388e175e6bccefd2309a85ded3d7b3c846b1dde41f188e3