first commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user