Files
Core_Be/Repos/TermsRepository.cs
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

58 lines
1.8 KiB
C#

using Fitness_core_BE.Interfaces;
using Fitness_core_BE.Models;
using Microsoft.EntityFrameworkCore;
namespace Fitness_core_BE.Repos
{
public class TermsRepository : ITermsRepository
{
private readonly TenantDbContext _context;
public TermsRepository(TenantDbContext context)
{
_context = context;
}
public async Task<ClientTerms?> GetActiveByClientIdAsync(Guid clientId)
{
return await _context.ClientTerms
.AsNoTracking()
.Where(t => t.FKClientId == clientId && t.IsActive)
.OrderByDescending(t => t.Version)
.FirstOrDefaultAsync();
}
public Task<List<ClientTerms>> GetActiveForUpdateAsync(Guid clientId)
{
return _context.ClientTerms
.Where(t => t.FKClientId == clientId && t.IsActive)
.ToListAsync();
}
public async Task<int> GetLatestVersionAsync(Guid clientId)
{
return (await _context.ClientTerms
.Where(t => t.FKClientId == clientId)
.Select(t => (int?)t.Version)
.MaxAsync()) ?? 0;
}
public async Task AddTermsAsync(ClientTerms terms)
{
await _context.ClientTerms.AddAsync(terms);
}
public async Task AddAcceptanceAsync(CustomerTermsAcceptance acceptance)
{
await _context.CustomerTermsAcceptances.AddAsync(acceptance);
}
public async Task<CustomerTermsAcceptance?> GetAcceptanceAsync(Guid cusId, Guid clientId, int version)
{
return await _context.CustomerTermsAcceptances
.AsNoTracking()
.FirstOrDefaultAsync(a => a.FKCusId == cusId && a.FKClientId == clientId && a.Version == version);
}
}
}