profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
TripInvitationRepository.cs 1,299 bytes
1 using App.Domain;
2 using App.Domain.Contracts;
3 using Microsoft.EntityFrameworkCore;
4
5 namespace App.DAL.EF.Repositories;
6
7 public class TripInvitationRepository : BaseRepository<TripInvitation>, ITripInvitationRepository
8 {
9 public TripInvitationRepository(AppDbContext dbContext) : base(dbContext)
10 {
11 }
12
13 public override async Task<IEnumerable<TripInvitation>> GetAllAsync()
14 {
15 return await DbContext.TripInvitations
16 .Include(i => i.Trip)
17 .Include(i => i.InvitedByUser)
18 .ToListAsync();
19 }
20
21 public override async Task<TripInvitation?> GetByIdAsync(Guid id)
22 {
23 return await DbContext.TripInvitations
24 .Include(i => i.Trip)
25 .Include(i => i.InvitedByUser)
26 .FirstOrDefaultAsync(i => i.Id == id);
27 }
28
29 public async Task<TripInvitation?> GetByTokenAsync(string token)
30 {
31 return await DbContext.TripInvitations
32 .FirstOrDefaultAsync(i => i.Token == token);
33 }
34
35 public async Task<IEnumerable<TripInvitation>> GetPendingByTripIdAsync(Guid tripId)
36 {
37 return await DbContext.TripInvitations
38 .Where(i => i.TripId == tripId && i.Status == EInvitationStatus.Pending)
39 .Include(i => i.InvitedByUser)
40 .ToListAsync();
41 }
42 }
43