hello
This commit is contained in:
parent
5d31067f6b
commit
ab637e3bbc
@ -8,11 +8,12 @@ namespace _123.Data.RemoteData.RemoteDatabase.DAO
|
|||||||
{
|
{
|
||||||
public class PresenceDao
|
public class PresenceDao
|
||||||
{
|
{
|
||||||
public required Guid UserGuid { get; set; }
|
|
||||||
public bool IsAttedance { get; set; } = true;
|
public bool IsAttedance { get; set; } = true;
|
||||||
public required DateOnly Date { get; set; }
|
public required DateOnly Date { get; set; }
|
||||||
|
|
||||||
public required int LessonNumber { get; set; }
|
public required int LessonNumber { get; set; }
|
||||||
public UserDao UserDao { get; set; }
|
public UserDao UserDao { get; set; }
|
||||||
|
public int UserId { get; set; }
|
||||||
|
public int GroupId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace _123.Data.RemoteData.RemoteDatabase.DAO
|
|||||||
public class UserDao
|
public class UserDao
|
||||||
{
|
{
|
||||||
public required string UserFIO { get; set; }
|
public required string UserFIO { get; set; }
|
||||||
public Guid UserGuid { get; set; }
|
public int UserID { get; set; }
|
||||||
|
|
||||||
public required int GroupID { get; set; }
|
public required int GroupID { get; set; }
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace _123.Data.RemoteData.RemoteDatabase
|
namespace _123.Data.RemoteData.RemoteDatabase
|
||||||
{
|
{
|
||||||
internal class RemoteDatabaseContext: DbContext
|
public class RemoteDatabaseContext: DbContext
|
||||||
{
|
{
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
{
|
{
|
||||||
|
@ -10,10 +10,10 @@ namespace _123.Data.Repository
|
|||||||
{
|
{
|
||||||
internal interface IGroupRepository
|
internal interface IGroupRepository
|
||||||
{
|
{
|
||||||
List<GroupLocalEntity> GetAllGroup();
|
List<GroupDao> GetAllGroup();
|
||||||
bool RemoveGroupById(int groupID);
|
bool RemoveGroupById(int groupID);
|
||||||
bool UpdateGroupById(int groupID, String name);
|
bool UpdateGroupById(int groupID, String name);
|
||||||
GroupLocalEntity GetGroupById(int groupID);
|
GroupDao GetGroupById(int groupID);
|
||||||
bool AddGroup(String name, String id);
|
bool AddGroup(String name, String id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,12 +8,12 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace _123.Data.Repository
|
namespace _123.Data.Repository
|
||||||
{
|
{
|
||||||
interface IPresenceRepository
|
internal interface IPresenceRepository
|
||||||
{
|
{
|
||||||
List<PresenceLocalEntity> GetPresenceByGroup(int groupId);
|
List<PresenceDao> GetPresenceByGroup(int groupId);
|
||||||
List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateOnly date);
|
List<PresenceDao> GetPresenceByGroupAndDate(int groupId, DateOnly date);
|
||||||
void UnCheckAttendence (PresenceLocalEntity presence);
|
bool UnCheckAttendence (int firstClass, int lastClass, DateOnly date, Guid userGuid);
|
||||||
void AddPresence (PresenceLocalEntity presence);
|
void AddPresence (PresenceDao presence);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,11 @@ namespace _123.Data.Repository
|
|||||||
{
|
{
|
||||||
internal interface IUserRepository
|
internal interface IUserRepository
|
||||||
{
|
{
|
||||||
public List<UserLocalEntity> GetAllUsers();
|
List<UserDao> GetAllUser();
|
||||||
bool RemoveUserByGuid(Guid userGuid);
|
bool RemoveUserByGuid(int userId);
|
||||||
UserLocalEntity FindUserByGuid(Guid userGuid);
|
UserDao FindUserByGuid(Guid userGuid);
|
||||||
UserLocalEntity? GetUserByGuid(Guid userGuid);
|
UserDao? GetUserByGuid(int userId);
|
||||||
UserLocalEntity? UpdateUser(UserLocalEntity userUpdateLocalEnity);
|
UserDao? UpdateUser(UserDao userUpdate);
|
||||||
UserLocalEntity? UpdateUserByGuid(Guid userGuid);
|
UserDao? UpdateUserByGuid(int userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
|
||||||
@ -32,18 +33,25 @@ namespace _123.Data.Repository
|
|||||||
|
|
||||||
public List<PresenceLocalEntity> GetPresenceByGroup(int groupId)
|
public List<PresenceLocalEntity> GetPresenceByGroup(int groupId)
|
||||||
{
|
{
|
||||||
|
return GetAllPresences;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateOnly date)
|
public List<PresenceLocalEntity> GetPresenceByGroupAndDate(int groupId, DateOnly date)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
return GetAllPresences;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UnCheckAttendence(Presence presence)
|
public bool UnCheckAttendence(int firstClass, int lastClass, DateOnly date, Guid userGuid)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
var presToUpdate = GetAllPresences
|
||||||
|
.Where(x => x.UserGuid == userGuid && x.LessonNumber >= firstClass
|
||||||
|
&& x.LessonNumber <= lastClass && x.Date == date).ToList();
|
||||||
|
foreach (var presence in presToUpdate)
|
||||||
|
{
|
||||||
|
presence.IsAttedance = false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
114
123/Data/Repository/SQLGroupRepository.cs
Normal file
114
123/Data/Repository/SQLGroupRepository.cs
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
using _123.Data.LocalData;
|
||||||
|
using _123.Data.LocalData.Entity;
|
||||||
|
using _123.Data.RemoteData.RemoteDatabase;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace _123.Data.Repository
|
||||||
|
{
|
||||||
|
public class SQLGroupRepositoryImpl : IGroupRepository
|
||||||
|
{
|
||||||
|
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
||||||
|
|
||||||
|
public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
||||||
|
{
|
||||||
|
_remoteDatabaseContext = remoteDatabaseContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GroupDao> GetAllGroups()
|
||||||
|
{
|
||||||
|
var groups = _remoteDatabaseContext.Groups
|
||||||
|
.Select(g => new GroupDao
|
||||||
|
{
|
||||||
|
ID = g.ID,
|
||||||
|
Name = g.Name
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
return groups;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AddGroup(string name, string id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var groupDao = new GroupDao
|
||||||
|
{
|
||||||
|
ID = int.Parse(id),
|
||||||
|
Name = name,
|
||||||
|
Users = new List<UserDao>()
|
||||||
|
};
|
||||||
|
_remoteDatabaseContext.Groups.Add(groupDao);
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GroupDao> GetAllGroup()
|
||||||
|
{
|
||||||
|
return GetAllGroups();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupDao GetGroupById(int groupID)
|
||||||
|
{
|
||||||
|
var group = _remoteDatabaseContext.Groups
|
||||||
|
.FirstOrDefault(x => x.ID == groupID);
|
||||||
|
|
||||||
|
if (group == null) return null;
|
||||||
|
|
||||||
|
return new GroupDao
|
||||||
|
{
|
||||||
|
ID = group.ID,
|
||||||
|
Name = group.Name
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RemoveGroupById(int groupID)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var group = _remoteDatabaseContext.Groups
|
||||||
|
.FirstOrDefault(x => x.ID == groupID);
|
||||||
|
if (group == null) return false;
|
||||||
|
|
||||||
|
// Проверяем, есть ли связанные пользователи
|
||||||
|
if (group.Users != null && group.Users.Any())
|
||||||
|
{
|
||||||
|
return false; // Нельзя удалить группу с пользователями
|
||||||
|
}
|
||||||
|
|
||||||
|
_remoteDatabaseContext.Groups.Remove(group);
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UpdateGroupById(int groupID, string name)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var group = _remoteDatabaseContext.Groups
|
||||||
|
.FirstOrDefault(x => x.ID == groupID);
|
||||||
|
if (group == null) return false;
|
||||||
|
|
||||||
|
group.Name = name;
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
56
123/Data/Repository/SQLPresenceRepository.cs
Normal file
56
123/Data/Repository/SQLPresenceRepository.cs
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
using _123.Data.LocalData;
|
||||||
|
using _123.Data.LocalData.Entity;
|
||||||
|
using _123.Data.RemoteData.RemoteDatabase;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace _123.Data.Repository
|
||||||
|
{
|
||||||
|
public class SQLPresenceRepositoryImpl : IPresenceRepository
|
||||||
|
{
|
||||||
|
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
||||||
|
|
||||||
|
public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
||||||
|
{
|
||||||
|
_remoteDatabaseContext = remoteDatabaseContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddPresence(PresenceDao presence)
|
||||||
|
{
|
||||||
|
_remoteDatabaseContext.Presences.Add(presence);
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PresenceDao> GetPresenceByGroup(int groupId)
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.Presences
|
||||||
|
.Where(p => p.GroupId == groupId)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PresenceDao> GetPresenceByGroupAndDate(int groupId, DateOnly date)
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.Presences
|
||||||
|
.Where(p => p.GroupId == groupId && p.Date == date)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UnCheckAttendence(int firstClass, int lastClass, DateOnly date, Guid userGuid)
|
||||||
|
{
|
||||||
|
var presToUpdate = _remoteDatabaseContext.Presences
|
||||||
|
.Where(x => x.UserGuid == userGuid && x.LessonNumber >= firstClass
|
||||||
|
&& x.LessonNumber <= lastClass && x.Date == date).ToList();
|
||||||
|
|
||||||
|
foreach (var presence in presToUpdate)
|
||||||
|
{
|
||||||
|
presence.IsAttedance = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
92
123/Data/Repository/SQLUserRepository.cs
Normal file
92
123/Data/Repository/SQLUserRepository.cs
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
using _123.Data.LocalData;
|
||||||
|
using _123.Data.LocalData.Entity;
|
||||||
|
using _123.Data.RemoteData.RemoteDatabase;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace _123.Data.Repository
|
||||||
|
{
|
||||||
|
public class SQLUserRepositoryImpl : IUserRepository
|
||||||
|
{
|
||||||
|
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
||||||
|
|
||||||
|
public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
||||||
|
{
|
||||||
|
_remoteDatabaseContext = remoteDatabaseContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDao FindUserByGuid(Guid userGuid)
|
||||||
|
{
|
||||||
|
var user = _remoteDatabaseContext.Users
|
||||||
|
.FirstOrDefault(x => x.UserID == userGuid);
|
||||||
|
if (user == null) throw new Exception("Пользователь не найден");
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserDao> GetAllUser()
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.Users
|
||||||
|
.Select(u => new UserDao
|
||||||
|
{
|
||||||
|
UserID = u.UserID,
|
||||||
|
UserFIO = u.UserFIO,
|
||||||
|
GroupID = u.GroupID,
|
||||||
|
Group = u.Group
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDao? GetUserByGuid(int userId)
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.Users
|
||||||
|
.FirstOrDefault(x => x.UserID == userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RemoveUserByGuid(int userId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var user = _remoteDatabaseContext.Users
|
||||||
|
.FirstOrDefault(x => x.UserID == userId);
|
||||||
|
if (user == null) return false;
|
||||||
|
|
||||||
|
_remoteDatabaseContext.Users.Remove(user);
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDao? UpdateUser(UserDao userUpdate)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var user = _remoteDatabaseContext.Users
|
||||||
|
.FirstOrDefault(x => x.UserID == userUpdate.UserID);
|
||||||
|
if (user == null) return null;
|
||||||
|
|
||||||
|
user.UserFIO = userUpdate.UserFIO;
|
||||||
|
user.GroupID = userUpdate.GroupID;
|
||||||
|
|
||||||
|
_remoteDatabaseContext.SaveChanges();
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDao? UpdateUserByGuid(int userId)
|
||||||
|
{
|
||||||
|
return _remoteDatabaseContext.Users
|
||||||
|
.FirstOrDefault(x => x.UserID == userId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -21,6 +21,10 @@ namespace _123.Data.ReportsHistory
|
|||||||
public List<UserLocalEntity> GetAllUsers
|
public List<UserLocalEntity> GetAllUsers
|
||||||
{ get; set; }
|
{ get; set; }
|
||||||
|
|
||||||
|
public List<UserLocalEntity> GetAllUser()
|
||||||
|
{
|
||||||
|
return GetAllUsers;
|
||||||
|
}
|
||||||
public bool RemoveUserByGuid(Guid userGuid)
|
public bool RemoveUserByGuid(Guid userGuid)
|
||||||
{
|
{
|
||||||
UserLocalEntity? userLocal = GetAllUsers
|
UserLocalEntity? userLocal = GetAllUsers
|
||||||
@ -65,10 +69,5 @@ namespace _123.Data.ReportsHistory
|
|||||||
return userLocal;
|
return userLocal;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<UserLocalEntity> IUserRepository.GetAllUsers()
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,22 +12,35 @@ namespace _123.Domain.UseCase
|
|||||||
{
|
{
|
||||||
public class GroupUseCase
|
public class GroupUseCase
|
||||||
{
|
{
|
||||||
private GroupRepositoryImpl _repositoryGroupImpl;
|
private readonly SQLGroupRepositoryImpl _repositoryGroupImpl;
|
||||||
public GroupUseCase(GroupRepositoryImpl repositoryGroupImpl)
|
public GroupUseCase(SQLGroupRepositoryImpl repositoryGroupImpl)
|
||||||
{
|
{
|
||||||
_repositoryGroupImpl = repositoryGroupImpl;
|
_repositoryGroupImpl = repositoryGroupImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups()
|
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups()
|
||||||
.Select(it => new Group { ID = it.ID, Name = it.Name }).ToList();
|
.Select(it => new Group { ID = it.ID, Name = it.Name }).ToList();
|
||||||
|
|
||||||
public bool UpdateGroupName(String id, String name1)
|
public bool UpdateGroupName(string id, string name)
|
||||||
{
|
{
|
||||||
return _repositoryGroupImpl.UpdateGroupById(int.Parse(id), name1);
|
return _repositoryGroupImpl.UpdateGroupById(int.Parse(id), name);
|
||||||
}
|
}
|
||||||
public bool AddGroup(String name, string id)
|
|
||||||
|
public bool AddGroup(string name, string id)
|
||||||
{
|
{
|
||||||
return _repositoryGroupImpl.AddGroup(name, id);
|
return _repositoryGroupImpl.AddGroup(name, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Group GetGroupById(int id)
|
||||||
|
{
|
||||||
|
var group = _repositoryGroupImpl.GetGroupById(id);
|
||||||
|
if (group == null) return null;
|
||||||
|
return new Group { ID = group.ID, Name = group.Name };
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RemoveGroupById(int id)
|
||||||
|
{
|
||||||
|
return _repositoryGroupImpl.RemoveGroupById(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,73 @@
|
|||||||
using System;
|
using _123.Data.LocalData.Entity;
|
||||||
|
using _123.Data.ReportsHistory;
|
||||||
|
using _123.Data.Repository;
|
||||||
|
using _123.Domain.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace _123.Domain.UseCase
|
namespace _123.Domain.UseCase
|
||||||
{
|
{
|
||||||
class PresenceUseCase
|
public class PresenceUseCase
|
||||||
{
|
{
|
||||||
|
private readonly SQLPresenceRepositoryImpl _presenceRepositoryImpl;
|
||||||
|
private readonly SQLGroupRepositoryImpl _groupRepositoryImpl;
|
||||||
|
private readonly SQLUserRepositoryImpl _userRepositoryImpl;
|
||||||
|
public List<Presence> GetPresenceByGroup(int groupId)
|
||||||
|
{
|
||||||
|
var users = _userRepositoryImpl.GetAllUsers.Where(x => x.GroupID == groupId).ToList();
|
||||||
|
|
||||||
|
var presenceByGroup = _presenceRepositoryImpl.GetPresenceByGroup(groupId)
|
||||||
|
.Where(x => users.Any(user => user.UserGuid == x.UserGuid))
|
||||||
|
.Select(presence => new Presence
|
||||||
|
{
|
||||||
|
User = new User
|
||||||
|
{
|
||||||
|
UserGuid = presence.UserGuid,
|
||||||
|
UserGroup = new Group
|
||||||
|
{
|
||||||
|
ID = groupId,
|
||||||
|
Name = _groupRepositoryImpl.GetAllGroups().First(group => group.ID == groupId).Name
|
||||||
|
},
|
||||||
|
UserFIO = users.First(user => user.UserGuid == presence.UserGuid).UserFIO,
|
||||||
|
},
|
||||||
|
ClassNum = presence.LessonNumber,
|
||||||
|
Date = presence.Date,
|
||||||
|
IsAttedance = presence.IsAttedance,
|
||||||
|
}).ToList();
|
||||||
|
return presenceByGroup;
|
||||||
|
}
|
||||||
|
public List<Presence> GetPresenceByGroupAndDate(int groupId, DateOnly date)
|
||||||
|
{
|
||||||
|
var users = _userRepositoryImpl.GetAllUsers.Where(x => x.GroupID == groupId).ToList();
|
||||||
|
|
||||||
|
var presenceByGroup = _presenceRepositoryImpl.GetPresenceByGroup(groupId)
|
||||||
|
.Where(x => users.Any(user => user.UserGuid == x.UserGuid && x.Date == date))
|
||||||
|
.Select(presence => new Presence
|
||||||
|
{
|
||||||
|
User = new User
|
||||||
|
{
|
||||||
|
UserGuid = presence.UserGuid,
|
||||||
|
UserGroup = new Group
|
||||||
|
{
|
||||||
|
ID = groupId,
|
||||||
|
Name = _groupRepositoryImpl.GetAllGroups().First(group => group.ID == groupId).Name
|
||||||
|
},
|
||||||
|
UserFIO = users.First(user => user.UserGuid == presence.UserGuid).UserFIO,
|
||||||
|
},
|
||||||
|
ClassNum = presence.LessonNumber,
|
||||||
|
Date = presence.Date,
|
||||||
|
IsAttedance = presence.IsAttedance,
|
||||||
|
}).ToList();
|
||||||
|
return presenceByGroup;
|
||||||
|
}
|
||||||
|
public bool UnCheckAttendance(int firstClass, int lastClass, DateOnly date, Guid userGuid)
|
||||||
|
{
|
||||||
|
return _presenceRepositoryImpl.UnCheckAttendence(firstClass, lastClass, date, userGuid);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
using System;
|
using _123.Data.LocalData.Entity;
|
||||||
|
using _123.Data.ReportsHistory;
|
||||||
|
using _123.Data.Repository;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -6,8 +9,59 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace _123.Domain.UseCase
|
namespace _123.Domain.UseCase
|
||||||
{
|
{
|
||||||
internal class UseCaseGeneratePresence
|
public class UseCaseGeneratePresence
|
||||||
{
|
{
|
||||||
|
private readonly PresenceRepositoryImpl _presenceRepositoryImpl;
|
||||||
|
private readonly GroupRepositoryImpl _groupRepositoryImpl;
|
||||||
|
private readonly UserRepositoryImpl _userRepositoryImpl;
|
||||||
|
|
||||||
|
public UseCaseGeneratePresence(PresenceRepositoryImpl repositoryImpl,
|
||||||
|
UserRepositoryImpl userRepositoryImpl,
|
||||||
|
GroupRepositoryImpl groupRepositoryImpl)
|
||||||
|
{
|
||||||
|
_presenceRepositoryImpl = repositoryImpl;
|
||||||
|
_userRepositoryImpl = userRepositoryImpl;
|
||||||
|
_groupRepositoryImpl = groupRepositoryImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddPrecence(int firstClass, int lastClass, int groupId, DateOnly date)
|
||||||
|
{
|
||||||
|
var users = _userRepositoryImpl.GetAllUser().Where(x => x.GroupID == groupId).ToList();
|
||||||
|
List<PresenceLocalEntity> presence = new List<PresenceLocalEntity>();
|
||||||
|
for (int i = firstClass; i < lastClass; i++)
|
||||||
|
{
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
PresenceLocalEntity pres = new PresenceLocalEntity { LessonNumber = i, UserGuid = user.UserGuid, Date = date };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddPresenceForWeek(int firstClass, int lastClass, int groupId, DateOnly startDate)
|
||||||
|
{
|
||||||
|
var users = _userRepositoryImpl.GetAllUser().Where(x => x.GroupID == groupId).ToList();
|
||||||
|
List<PresenceLocalEntity> presence = new List<PresenceLocalEntity>();
|
||||||
|
|
||||||
|
for (int dayOffset = 0; dayOffset < 7; dayOffset++)
|
||||||
|
{
|
||||||
|
DateOnly date = startDate.AddDays(dayOffset);
|
||||||
|
|
||||||
|
for (int i = firstClass; i < lastClass; i++)
|
||||||
|
{
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
PresenceLocalEntity pres = new PresenceLocalEntity
|
||||||
|
{
|
||||||
|
LessonNumber = i,
|
||||||
|
UserGuid = user.UserGuid,
|
||||||
|
Date = date
|
||||||
|
};
|
||||||
|
presence.Add(pres);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,56 +13,62 @@ namespace _123.Domain.UseCase
|
|||||||
{
|
{
|
||||||
public class UserUseCase
|
public class UserUseCase
|
||||||
{
|
{
|
||||||
//private readonly UserRepositoryImpl _repositoryUserImpl;
|
private readonly SQLUserRepositoryImpl _repositoryUserImpl;
|
||||||
//private readonly GroupRepositoryImpl _repositoryGroupImpl;
|
private readonly SQLGroupRepositoryImpl _repositoryGroupImpl;
|
||||||
private readonly UserRepositoryImpl _repositoryUserImpl;
|
|
||||||
private readonly IGroupRepository _repositoryGroupImpl;
|
|
||||||
|
|
||||||
public UserUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl)
|
public UserUseCase(SQLUserRepositoryImpl repositoryImpl, SQLGroupRepositoryImpl repositoryGroupImpl)
|
||||||
{
|
{
|
||||||
_repositoryUserImpl = repositoryImpl;
|
_repositoryUserImpl = repositoryImpl;
|
||||||
_repositoryGroupImpl = repositoryGroupImpl;
|
_repositoryGroupImpl = repositoryGroupImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroup()
|
public List<Group> GetAllGroups() => _repositoryGroupImpl.GetAllGroups()
|
||||||
.Select(it => new Group { ID = it.ID, Name = it.Name }).ToList();
|
.Select(it => new Group { ID = it.ID, Name = it.Name }).ToList();
|
||||||
private List<User> GetAllUsers() => _repositoryUserImpl.GetAllUsers
|
|
||||||
.Join(_repositoryGroupImpl.GetAllGroup(),
|
public List<User> GetAllUsers() => _repositoryUserImpl.GetAllUser()
|
||||||
|
.Join(_repositoryGroupImpl.GetAllGroups(),
|
||||||
user => user.GroupID,
|
user => user.GroupID,
|
||||||
group => group.ID,
|
group => group.ID,
|
||||||
(user, group) =>
|
(user, group) =>
|
||||||
new User
|
new User
|
||||||
{
|
{
|
||||||
UserFIO = user.UserFIO,
|
UserFIO = user.UserFIO,
|
||||||
UserGuid = user.UserGuid,
|
UserGuid = user.UserID,
|
||||||
UserGroup = new Group { ID = group.ID, Name = group.Name }
|
UserGroup = new Group { ID = group.ID, Name = group.Name }
|
||||||
}
|
}
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
public bool RemoveUserByGuid(Guid userGuid)
|
public bool RemoveUserByGuid(int userId)
|
||||||
{
|
{
|
||||||
return _repositoryUserImpl.RemoveUserByGuid(userGuid);
|
return _repositoryUserImpl.RemoveUserByGuid(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public User UpdateUser(User user)
|
public User UpdateUser(User user)
|
||||||
{
|
{
|
||||||
UserLocalEntity userLocalEnity = new UserLocalEntity { UserFIO = user.UserFIO, GroupID = user.UserGroup.ID, UserGuid = user.UserGuid };
|
UserDao userDao = new UserDao {
|
||||||
UserLocalEntity? result = _repositoryUserImpl.UpdateUser(userLocalEnity);
|
UserFIO = user.UserFIO,
|
||||||
if (result == null) throw new Exception("");
|
GroupID = user.UserGroup.ID,
|
||||||
Group? group = GetAllGroups().FirstOrDefault(it => it.ID == result!.GroupID);
|
UserID = user.UserGuid
|
||||||
if (group == null) throw new Exception("");
|
};
|
||||||
|
UserDao? result = _repositoryUserImpl.UpdateUser(userDao);
|
||||||
|
if (result == null) throw new Exception("Не удалось обновить пользователя");
|
||||||
|
Group? group = GetAllGroups().FirstOrDefault(it => it.ID == result.GroupID);
|
||||||
|
if (group == null) throw new Exception("Группа не найдена");
|
||||||
return new User { UserFIO = user.UserFIO, UserGuid = user.UserGuid, UserGroup = group };
|
return new User { UserFIO = user.UserFIO, UserGuid = user.UserGuid, UserGroup = group };
|
||||||
}
|
}
|
||||||
public UserLocalEntity FindUserByGuid(Guid userGuid)
|
|
||||||
|
public UserDao FindUserByGuid(int userId)
|
||||||
{
|
{
|
||||||
return _repositoryUserImpl.FindUserByGuid(userGuid);
|
return _repositoryUserImpl.FindUserByGuid(userId);
|
||||||
}
|
}
|
||||||
public UserLocalEntity UpdateUserByGuid(Guid userGuid, String name, String gro)
|
|
||||||
|
public UserDao UpdateUserByGuid(int userId, string name, string groupId)
|
||||||
{
|
{
|
||||||
UserLocalEntity? result = _repositoryUserImpl.UpdateUserByGuid(userGuid);
|
UserDao? result = _repositoryUserImpl.UpdateUserByGuid(userId);
|
||||||
if (result == null) throw new Exception("");
|
if (result == null) throw new Exception("Пользователь не найден");
|
||||||
Group? group = GetAllGroups().FirstOrDefault(it => it.ID == int.Parse(gro));
|
Group? group = GetAllGroups().FirstOrDefault(it => it.ID == int.Parse(groupId));
|
||||||
if (group == null) throw new Exception("");
|
if (group == null) throw new Exception("Группа не найдена");
|
||||||
return new UserLocalEntity { UserFIO = name, GroupID = int.Parse(gro), UserGuid = userGuid};
|
return new UserDao { UserFIO = name, GroupID = int.Parse(groupId), UserID = userId };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using _123.Data.ReportsHistory;
|
using _123.Data.RemoteData.RemoteDatabase;
|
||||||
|
using _123.Data.ReportsHistory;
|
||||||
using _123.Data.Repository;
|
using _123.Data.Repository;
|
||||||
using _123.Domain.UseCase;
|
using _123.Domain.UseCase;
|
||||||
using _123.UI;
|
using _123.UI;
|
||||||
@ -6,14 +7,23 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
IServiceCollection services = new ServiceCollection();
|
IServiceCollection services = new ServiceCollection();
|
||||||
services
|
services
|
||||||
.AddSingleton<IGroupRepository, GroupRepositoryImpl>()
|
.AddSingleton<UserUseCase>()
|
||||||
.AddSingleton<UserUseCase>();
|
.AddSingleton<GroupUseCase>()
|
||||||
|
.AddSingleton<PresenceUseCase>()
|
||||||
|
.AddSingleton<MainMenuUI>()
|
||||||
|
.AddDbContext<RemoteDatabaseContext>()
|
||||||
|
.AddSingleton<IPresenceRepository, SQLPresenceRepositoryImpl>()
|
||||||
|
.AddSingleton<IUserRepository, SQLUserRepositoryImpl>()
|
||||||
|
.AddSingleton<IGroupRepository, SQLGroupRepositoryImpl>()
|
||||||
var serviceProvider = services.BuildServiceProvider ();
|
var serviceProvider = services.BuildServiceProvider ();
|
||||||
|
|
||||||
GroupRepositoryImpl groupRepositoryImpl = new GroupRepositoryImpl();
|
GroupRepositoryImpl groupRepositoryImpl = new GroupRepositoryImpl();
|
||||||
UserRepositoryImpl userRepositoryImpl = new UserRepositoryImpl();
|
UserRepositoryImpl userRepositoryImpl = new UserRepositoryImpl();
|
||||||
UserUseCase userUseCase = new UserUseCase(userRepositoryImpl, groupRepositoryImpl);
|
UserUseCase userUseCase = new UserUseCase(userRepositoryImpl, groupRepositoryImpl);
|
||||||
GroupUseCase groupUseCase = new GroupUseCase(groupRepositoryImpl);
|
GroupUseCase groupUseCase = new GroupUseCase(groupRepositoryImpl);
|
||||||
|
PresenceRepositoryImpl presenceRepositoryImpl = new PresenceRepositoryImpl();
|
||||||
|
PresenceUseCase presenceUseCase = new PresenceUseCase();
|
||||||
|
|
||||||
|
MainMenuUI mainMenuUI = new MainMenuUI(userUseCase, groupUseCase, presenceUseCase);
|
||||||
|
|
||||||
MainMenuUI mainMenuUI = new MainMenuUI(userUseCase, groupUseCase);
|
|
@ -28,19 +28,11 @@ namespace _123.UI
|
|||||||
{
|
{
|
||||||
StringBuilder groupOutput = new StringBuilder();
|
StringBuilder groupOutput = new StringBuilder();
|
||||||
var group = _groupUseCase.UpdateGroupName(name,name1);
|
var group = _groupUseCase.UpdateGroupName(name,name1);
|
||||||
{
|
|
||||||
groupOutput.AppendLine($"{group.Name}\t{group.ID}");
|
|
||||||
}
|
|
||||||
Console.WriteLine(groupOutput);
|
|
||||||
}
|
}
|
||||||
public void AddGroup (String name, String id)
|
public void AddGroup (String name, String id)
|
||||||
{
|
{
|
||||||
StringBuilder groupOutput = new StringBuilder();
|
StringBuilder groupOutput = new StringBuilder();
|
||||||
var group = _groupUseCase.AddGroup(name,id);
|
var group = _groupUseCase.AddGroup(name,id);
|
||||||
{
|
|
||||||
groupOutput.AppendLine($"{group.Name}\t{group.ID}");
|
|
||||||
}
|
|
||||||
Console.WriteLine(groupOutput);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,13 @@ namespace _123.UI
|
|||||||
|
|
||||||
GroupConsoleUI _groupConsoleUI;
|
GroupConsoleUI _groupConsoleUI;
|
||||||
|
|
||||||
public MainMenuUI(UserUseCase userUseCase, GroupUseCase groupUseCase)
|
PresenceConsoleUI _presenceConsoleUI;
|
||||||
|
|
||||||
|
public MainMenuUI(UserUseCase userUseCase, GroupUseCase groupUseCase, PresenceUseCase presenceUseCase)
|
||||||
{
|
{
|
||||||
_userConsoleUI = new UserConsoleUI(userUseCase);
|
_userConsoleUI = new UserConsoleUI(userUseCase);
|
||||||
_groupConsoleUI = new GroupConsoleUI(groupUseCase);
|
_groupConsoleUI = new GroupConsoleUI(groupUseCase);
|
||||||
|
_presenceConsoleUI = new PresenceConsoleUI(presenceUseCase);
|
||||||
|
|
||||||
DisplayMenu();
|
DisplayMenu();
|
||||||
|
|
||||||
@ -32,10 +35,15 @@ namespace _123.UI
|
|||||||
case "1": _userConsoleUI.DisplayAllUsers(); break;
|
case "1": _userConsoleUI.DisplayAllUsers(); break;
|
||||||
case "2": _userConsoleUI.RemoveUserByGuid(Guid.Parse(Console.ReadLine())); break;
|
case "2": _userConsoleUI.RemoveUserByGuid(Guid.Parse(Console.ReadLine())); break;
|
||||||
case "3": _groupConsoleUI.DisplayAllGroups(); break;
|
case "3": _groupConsoleUI.DisplayAllGroups(); break;
|
||||||
case "4": _userConsoleUI.FindUserByGuid(Guid.Parse(Console.ReadLine()));break;
|
case "4": _userConsoleUI.FindUserById(int.Parse(Console.ReadLine())); break;
|
||||||
case "5": _userConsoleUI.UpdateUserByGuid(Guid.Parse(Console.ReadLine()),Console.ReadLine(), Console.ReadLine()); break;
|
case "5": _userConsoleUI.UpdateUserById(int.Parse(Console.ReadLine()), Console.ReadLine(), Console.ReadLine()); break;
|
||||||
case "6": _groupConsoleUI.UpdateGroupName(Console.ReadLine(),Console.ReadLine()); break;
|
case "6": _groupConsoleUI.UpdateGroupName(Console.ReadLine(), Console.ReadLine()); break;
|
||||||
case "7": _groupConsoleUI.AddGroup(Console.ReadLine(), Console.ReadLine());break;
|
case "7": _groupConsoleUI.AddGroup(Console.ReadLine(), Console.ReadLine()); break;
|
||||||
|
case "8": _presenceConsoleUI.GetPresenceByGroup(int.Parse(Console.ReadLine())); break;
|
||||||
|
case "9": _presenceConsoleUI.GetPresenceByGroupAndDAte(int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine())); break;
|
||||||
|
case "10": _presenceConsoleUI.UnCheckAttendence(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine()), Guid.Parse(Console.ReadLine())); break;
|
||||||
|
case "11": _presenceConsoleUI.AddPresence(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine())); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DisplayMenu();
|
DisplayMenu();
|
||||||
break;
|
break;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using _123.Domain.UseCase;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -6,7 +7,79 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace _123.UI
|
namespace _123.UI
|
||||||
{
|
{
|
||||||
internal class PresenceConsole
|
public class PresenceConsoleUI
|
||||||
{
|
{
|
||||||
|
PresenceUseCase _presenceUseCase;
|
||||||
|
UseCaseGeneratePresence _useCaseGeneratePresence;
|
||||||
|
|
||||||
|
public PresenceConsoleUI(PresenceUseCase presenceUseCase, UseCaseGeneratePresence useCaseGeneratePresence)
|
||||||
|
{
|
||||||
|
_presenceUseCase = presenceUseCase;
|
||||||
|
_useCaseGeneratePresence = useCaseGeneratePresence;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetPresenceByGroup(int groupId)
|
||||||
|
{
|
||||||
|
StringBuilder presenceOutput = new StringBuilder();
|
||||||
|
var presence = _presenceUseCase.GetPresenceByGroup(groupId);
|
||||||
|
foreach (var p in presence)
|
||||||
|
{
|
||||||
|
presenceOutput.AppendLine($"{p.LessonNumber}\t{p.UserGuid}\t{p.Date}");
|
||||||
|
}
|
||||||
|
Console.WriteLine(presenceOutput);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetPresenceByGroupAndDAte(int groupId, DateOnly date)
|
||||||
|
{
|
||||||
|
StringBuilder presenceOutput = new StringBuilder();
|
||||||
|
var presence = _presenceUseCase.GetPresenceByGroupAndDate(groupId, date);
|
||||||
|
foreach (var p in presence)
|
||||||
|
{
|
||||||
|
presenceOutput.AppendLine($"{p.LessonNumber}\t{p.UserGuid}\t{p.Date}");
|
||||||
|
}
|
||||||
|
Console.WriteLine(presenceOutput);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnCheckAttendence(int firstClass, int lastClass, DateOnly date, Guid userGuid)
|
||||||
|
{
|
||||||
|
var result = _presenceUseCase.UnCheckAttendance(firstClass, lastClass, date, userGuid);
|
||||||
|
Console.WriteLine(result ? "Посещаемость успешно обновлена" : "Ошибка при обновлении посещаемости");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddPresence(int firstClass, int lastClass, int groupId, DateOnly date)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_useCaseGeneratePresence.AddPrecence(firstClass, lastClass, groupId, date);
|
||||||
|
Console.WriteLine("Посещаемость успешно добавлена");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка при добавлении посещаемости: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void GetGroupAttendanceStats(int groupId)
|
||||||
|
{
|
||||||
|
StringBuilder statsOutput = new StringBuilder();
|
||||||
|
var groupStats = _presenceUseCase.GetGroupStats(groupId);
|
||||||
|
|
||||||
|
statsOutput.AppendLine($"Информация о группе {groupStats.GroupName}:");
|
||||||
|
statsOutput.AppendLine($"Количество студентов: {groupStats.StudentsCount}");
|
||||||
|
statsOutput.AppendLine($"Количество проведенных занятий: {groupStats.TotalLessons}");
|
||||||
|
statsOutput.AppendLine($"Общий процент посещаемости: {groupStats.TotalAttendancePercent:F1}%");
|
||||||
|
statsOutput.AppendLine("\nСтатистика по студентам:");
|
||||||
|
statsOutput.AppendLine("ФИО\tПосещено\tПропущено\tПроцент посещаемости");
|
||||||
|
|
||||||
|
foreach(var student in groupStats.StudentStats)
|
||||||
|
{
|
||||||
|
statsOutput.AppendLine(
|
||||||
|
$"{student.StudentName}\t{student.AttendedLessons}\t" +
|
||||||
|
$"{student.MissedLessons}\t{student.AttendancePercent:F1}%"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine(statsOutput.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,9 @@ namespace _123.UI
|
|||||||
_userUseCase = userUseCase;
|
_userUseCase = userUseCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveUserByGuid(Guid guidUser)
|
public void RemoveUserById(int userId)
|
||||||
{
|
{
|
||||||
|
string output = _userUseCase.RemoveUserByGuid(userId) ? "Пользователь удален" : "Пользователь не удален";
|
||||||
string output = _userUseCase.RemoveUserByGuid(guidUser) ? "Пользователь удален" : "Пользователь не удален";
|
|
||||||
Console.WriteLine(output);
|
Console.WriteLine(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,27 +28,43 @@ namespace _123.UI
|
|||||||
StringBuilder userOutput = new StringBuilder();
|
StringBuilder userOutput = new StringBuilder();
|
||||||
foreach (var user in _userUseCase.GetAllUsers())
|
foreach (var user in _userUseCase.GetAllUsers())
|
||||||
{
|
{
|
||||||
userOutput.AppendLine($"{user.UserGuid}\t{user.UserFIO}\t{user.UserGroup.Name}");
|
userOutput.AppendLine($"{user.UserID}\t{user.UserFIO}\t{user.UserGroup.Name}");
|
||||||
}
|
}
|
||||||
Console.WriteLine(userOutput);
|
Console.WriteLine(userOutput);
|
||||||
}
|
}
|
||||||
public void FindUserByGuid (Guid guidUser)
|
|
||||||
|
public void FindUserById(int userId)
|
||||||
{
|
{
|
||||||
StringBuilder userOutput = new StringBuilder();
|
StringBuilder userOutput = new StringBuilder();
|
||||||
var user = _userUseCase.FindUserByGuid(guidUser);
|
var user = _userUseCase.FindUserByGuid(userId);
|
||||||
{
|
userOutput.AppendLine($"{user.UserID}\t{user.UserFIO}\t{user.GroupID}");
|
||||||
userOutput.AppendLine($"{user.UserGuid}\t{user.UserFIO}\t{user.GroupID}");
|
|
||||||
}
|
|
||||||
Console.WriteLine(userOutput);
|
Console.WriteLine(userOutput);
|
||||||
}
|
}
|
||||||
public void UpdateUserByGuid(Guid userGuid,String name,String group)
|
|
||||||
|
public void UpdateUserById(int userId, String name, String groupId)
|
||||||
{
|
{
|
||||||
StringBuilder userOutput = new StringBuilder();
|
try
|
||||||
var user = _userUseCase.UpdateUserByGuid(userGuid,name,group);
|
|
||||||
{
|
{
|
||||||
userOutput.AppendLine($"{user.UserGuid}\t{user.UserFIO}\t{user.GroupID}");
|
var group = _userUseCase.GetAllGroups().FirstOrDefault(g => g.ID == int.Parse(groupId));
|
||||||
|
if (group == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Группа не найдена");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var updatedUser = _userUseCase.UpdateUser(new User
|
||||||
|
{
|
||||||
|
UserID = userId,
|
||||||
|
UserFIO = name,
|
||||||
|
UserGroup = group
|
||||||
|
});
|
||||||
|
|
||||||
|
Console.WriteLine($"Пользователь обновлен: {updatedUser.UserID}\t{updatedUser.UserFIO}\t{updatedUser.UserGroup.Name}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка при обновлении пользователя: {ex.Message}");
|
||||||
}
|
}
|
||||||
Console.WriteLine(userOutput);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user