2024-11-01 14:11:27 +00:00
|
|
|
using Demo.Data.LocalData;
|
|
|
|
using Demo.Data.RemoteData.RemoteDataBase;
|
|
|
|
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
|
|
|
using Demo.Domain.Models;
|
|
|
|
|
|
|
|
namespace Demo.Data.Repository
|
|
|
|
{
|
|
|
|
public class SQLPresenceRepositoryImpl : IPresenceRepository
|
|
|
|
{
|
|
|
|
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
|
|
|
|
|
|
|
public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext){
|
|
|
|
_remoteDatabaseContext = remoteDatabaseContext;
|
|
|
|
GetAllPresence = _remoteDatabaseContext.PresenceDaos.Select(x => new PresenceLocalEntity{UserGuid = x.UserGuid, Date = x.Date, LessonNumber = x.LessonNumber, IsAttedance = x.IsAttedance}).ToList();
|
|
|
|
}
|
|
|
|
public List<PresenceLocalEntity> GetAllPresence = new List<PresenceLocalEntity>{};
|
|
|
|
|
|
|
|
public List<PresenceLocalEntity> GetAllPresences(){
|
|
|
|
return _remoteDatabaseContext.PresenceDaos.Select(x => new PresenceLocalEntity{UserGuid = x.UserGuid, Date = x.Date, LessonNumber = x.LessonNumber, IsAttedance = x.IsAttedance}).ToList();
|
|
|
|
}
|
|
|
|
|
2024-11-08 13:14:43 +00:00
|
|
|
public bool DeletePresence(){
|
|
|
|
var allRecords = _remoteDatabaseContext.PresenceDaos.ToList();
|
|
|
|
_remoteDatabaseContext.PresenceDaos.RemoveRange(allRecords);
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-11-14 12:30:27 +00:00
|
|
|
if (allRecords.Count == 0)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2024-11-08 13:14:43 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2024-11-11 11:49:39 +00:00
|
|
|
public bool DeletePresenceByGroup(int groupID){
|
|
|
|
var allRecords = _remoteDatabaseContext.PresenceDaos.Where(x => x.userDAO.GroupID == groupID).ToList();
|
|
|
|
_remoteDatabaseContext.PresenceDaos.RemoveRange(allRecords);
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-11-14 12:30:27 +00:00
|
|
|
if (allRecords.Count == 0)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2024-11-11 11:49:39 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool DeletePresenceByRange(DateOnly start, DateOnly end)
|
|
|
|
{
|
|
|
|
var allRecords = _remoteDatabaseContext.PresenceDaos.Where(x => x.Date >= start && x.Date <= end).ToList();
|
|
|
|
_remoteDatabaseContext.PresenceDaos.RemoveRange(allRecords);
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-11-14 12:30:27 +00:00
|
|
|
if (allRecords.Count == 0)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2024-11-11 11:49:39 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
public bool DeletePresenceByUser(Guid userGuid){
|
|
|
|
var allRecords = _remoteDatabaseContext.PresenceDaos.Where(x => x.userDAO.Guid == userGuid).ToList();
|
|
|
|
_remoteDatabaseContext.PresenceDaos.RemoveRange(allRecords);
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-11-14 12:30:27 +00:00
|
|
|
if (allRecords.Count == 0)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2024-11-11 11:49:39 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2024-11-01 14:11:27 +00:00
|
|
|
public List<PresenceLocalEntity> GeneratePresence(List<PresenceLocalEntity> presenceLocalEntities)
|
|
|
|
{
|
|
|
|
var presences = presenceLocalEntities.Select(x => new PresenceDAO
|
|
|
|
{
|
|
|
|
UserGuid = x.UserGuid,
|
|
|
|
IsAttedance = x.IsAttedance,
|
|
|
|
LessonNumber = x.LessonNumber,
|
|
|
|
Date = x.Date,
|
|
|
|
userDAO = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == x.UserGuid)
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
_remoteDatabaseContext.PresenceDaos.AddRange(presences);
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
|
|
|
|
|
|
|
return presenceLocalEntities;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void IsAttedance(int firstLesson, int lastLesson, DateOnly date, Guid UserGuid){
|
|
|
|
var presencesToUpdate = _remoteDatabaseContext.PresenceDaos
|
|
|
|
.Where(x => x.LessonNumber >= firstLesson
|
|
|
|
&& x.LessonNumber <= lastLesson
|
|
|
|
&& x.Date == date
|
|
|
|
&& x.UserGuid == UserGuid)
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
foreach(var presence in presencesToUpdate){
|
|
|
|
presence.IsAttedance = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|