Demo/Data/Repository/PresenceRepositoryImpl.cs

66 lines
2.8 KiB
C#
Raw Normal View History

2024-10-24 20:41:31 +00:00
using Data.RemoteData.RemoteDataBase.DAO;
using Demo.Data.RemoteData.RemoteDataBase.DAO;
2024-10-23 19:46:46 +00:00
using Demo.domain.Models;
namespace Demo.Data.Repository
{
2024-10-24 20:41:31 +00:00
public class SQLPresenceRepositoryImpl : IPresenceRepository
2024-10-23 19:46:46 +00:00
{
2024-10-24 20:41:31 +00:00
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>{};
2024-10-23 19:46:46 +00:00
public List<PresenceLocalEntity> GetPresences()
{
2024-10-24 20:41:31 +00:00
return _remoteDatabaseContext.PresenceDaos.Select(x => new PresenceLocalEntity{UserGuid = x.UserGuid, Date = x.Date, LessonNumber = x.LessonNumber, IsAttedance = x.IsAttedance}).ToList();
2024-10-23 19:46:46 +00:00
}
public List<PresenceLocalEntity> GetPresencesByGroup()
{
2024-10-24 20:41:31 +00:00
return _remoteDatabaseContext.PresenceDaos.Select(x => new PresenceLocalEntity{UserGuid = x.UserGuid, Date = x.Date, LessonNumber = x.LessonNumber, IsAttedance = x.IsAttedance}).ToList();
2024-10-23 19:46:46 +00:00
}
public List<PresenceLocalEntity> GetPresencesByGroupAndDate()
{
2024-10-24 20:41:31 +00:00
return _remoteDatabaseContext.PresenceDaos.Select(x => new PresenceLocalEntity{UserGuid = x.UserGuid, Date = x.Date, LessonNumber = x.LessonNumber, IsAttedance = x.IsAttedance}).ToList();
2024-10-23 19:46:46 +00:00
}
2024-10-24 20:41:31 +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();
2024-10-23 19:46:46 +00:00
return presenceLocalEntities;
}
public void UpdateAttedance(int firstLesson, int lastLesson, DateOnly date, Guid UserGuid){
2024-10-24 20:41:31 +00:00
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;
2024-10-23 19:46:46 +00:00
}
2024-10-24 20:41:31 +00:00
_remoteDatabaseContext.SaveChanges();
2024-10-23 19:46:46 +00:00
}
}
}