using Govor.Domain; using Govor.Domain.Common; using Govor.Domain.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace Govor.Application.Infrastructure.AdminsStuff; public class InvitationGetter : IInvitationGetter { private readonly ILogger _logger; private readonly GovorDbContext _context; public InvitationGetter(ILogger logger, GovorDbContext context) { _logger = logger; _context = context; } public async Task> GetAllAsync() { return await _context.Invitations .AsNoTracking() .Where(iv => iv.IsActive) .ToListAsync(); } public async Task> FindByIdAsync(Guid id) { var res = await _context.Invitations.AsNoTracking() .FirstOrDefaultAsync(iv => iv.Id == id); if (res is null) return Result.Failure(new Error( nameof(InvalidOperationException), "Invitation not found.") ); return res; } }