Files
monorepo/LCU.API.Internal.MemberPreferencesApi/LCU.API.Internal.MemberPreferencesApiLib/Repositories/UnifiedOptInRepository.cs
T
2026-03-31 16:43:12 -05:00

44 lines
1.4 KiB
C#

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<MemberOptInSettings> GetMemberOptInSettings(string userId)
{
return await _context.MemberOptInSettings.Where(x => x.UserId == userId).FirstOrDefaultAsync();
}
public async Task<MemberOptInSettings> GetMemberOptInSettingsNoTracking(string userId)
{
return await _context.MemberOptInSettings.Where(x => x.UserId.Equals(userId)).AsNoTracking().FirstOrDefaultAsync();
}
public async Task<MemberOptInSettings> 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<List<MemberOptInSettings>> GetAllMemberOptInSettings(List<string> userNumbers)
{
return await _context.MemberOptInSettings.Where(entry => userNumbers.Contains(entry.UserId)).ToListAsync();
}
}