44 lines
1.4 KiB
C#
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();
|
|
}
|
|
}
|