using Zurnal.Date.LocalDate; using Zurnal.domain.Models; using Zurnal.RemaDateBase.DateDao; namespace Data.Repository { public class SQLGroupRepositoryImpl:IGroupRepository { private readonly RemoteDateBaseContext _remoteDataBaseContext; public SQLGroupRepositoryImpl(RemoteDateBaseContext remoteDataBaseContext) { _remoteDataBaseContext = remoteDataBaseContext; } public List AllGroup => throw new NotImplementedException(); public bool AddGroup(GroupLocalEntity newGroup) { GroupDao groupDao = new GroupDao { GroupName = newGroup.Name }; var result = _remoteDataBaseContext.Group.Add(groupDao); if (result != null) { _remoteDataBaseContext.SaveChanges(); return true; } return false; } public List GetAllGroup() { return _remoteDataBaseContext.Group.Select(group => new GroupLocalEntity{ Id = group.Id, Name = group.GroupName} ).ToList(); } public List GetAllGroups() => LocalStaticData.groups; public GroupLocalEntity GetGroupById(int groupID) { throw new NotImplementedException(); } public bool RemoveGroupById(int groupID) { throw new NotImplementedException(); } public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) { throw new NotImplementedException(); } } public class SQLPresenceRepositoryImpl: IPresenceRepository { private readonly RemoteDateBaseContext _remoteDatabaseContext; public SQLPresenceRepositoryImpl(RemoteDateBaseContext remoteDatabaseContext) { _remoteDatabaseContext = remoteDatabaseContext; } public DateOnly? GetLastDateByGroupId(int groupId) { var lastDate = _remoteDatabaseContext.Presence .Where(p => p.GroupId == groupId) .OrderByDescending(p => p.Date) .Select(p => p.Date) .FirstOrDefault(); return lastDate == default ? (DateOnly?)null : lastDate; } } }