using Demo.Data.LocalData; using Demo.Data.RemoteData.RemoteDataBase; using Demo.Data.RemoteData.RemoteDataBase.DAO; 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 class SQLPresenceRepositoryImpl : IPresenceRepository { private readonly RemoteDatabaseContext _remoteDatabaseContext; public SQLPresenceRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) { _remoteDatabaseContext = remoteDatabaseContext; } public List GetPresenceByDateAndGroup(DateTime date, int groupId) { throw new NotImplementedException(); } public List GetPresenceByDateAndGroupDao(DateTime date, int groupId) { return _remoteDatabaseContext.PresenceDaos.Where(p => p.Date == DateOnly.FromDateTime(date) && _remoteDatabaseContext.Users.Any(u => u.GroupId == groupId && u.UserId == p.UserId)).ToList(); } public List GetPresenceByGroup(int groupId) { throw new NotImplementedException(); } // Реализация метода для получения всех данных по группе public List GetPresenceByGroupDao(int groupId) { return _remoteDatabaseContext.PresenceDaos.Where(p => p.GroupId == groupId).ToList(); } public void SavePresence(List presences) { throw new NotImplementedException(); } public void SavePresenceDao(List presences) { foreach (var presence in presences) { var existingPresence = _remoteDatabaseContext.PresenceDaos.FirstOrDefault(p => p.Date == presence.Date && p.UserId == presence.UserId && p.LessonNumber == presence.LessonNumber); if (existingPresence == null) { _remoteDatabaseContext.PresenceDaos.Add(presence); } else { existingPresence.IsAttedance = presence.IsAttedance; } } } } }