using LCU.API.Internal.MemberPreferencesApiLib.Persistence; using LCU.Library.Internal.MemberPreferencesApiModels.Entities; using Microsoft.EntityFrameworkCore; namespace LCU.API.Internal.MemberPreferencesApiLib.Repositories; public class UnifiedOptInRepository : BaseRepository, IUnifiedOptInRepository { public UnifiedOptInRepository(IApplicationDbContext context) : base(context) { } public async Task GetMemberOptInSettings(string userId) { return await _context.MemberOptInSettings.Where(x => x.UserId == userId).FirstOrDefaultAsync(); } public async Task GetMemberOptInSettingsNoTracking(string userId) { return await _context.MemberOptInSettings.Where(x => x.UserId.Equals(userId)).AsNoTracking().FirstOrDefaultAsync(); } public async Task GetOrCreateMemberOptinSettings(string userId) { var settings = await GetMemberOptInSettings(userId); if (settings == null) { settings = new MemberOptInSettings { UserId = userId }; await _context.MemberOptInSettings.AddAsync(settings); } return settings; } public async Task> GetAllMemberOptInSettings(List userNumbers) { return await _context.MemberOptInSettings.Where(entry => userNumbers.Contains(entry.UserId)).ToListAsync(); } }