-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBasketRepository.cs
26 lines (22 loc) · 905 Bytes
/
BasketRepository.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace Basket.API.Data;
public class BasketRepository(IDocumentSession session)
: IBasketRepository
{
public async Task<ShoppingCart> GetBasket(string userName, CancellationToken cancellationToken = default)
{
var basket = await session.LoadAsync<ShoppingCart>(userName, cancellationToken);
return basket is null ? throw new BasketNotFoundException(userName) : basket;
}
public async Task<ShoppingCart> StoreBasket(ShoppingCart basket, CancellationToken cancellationToken = default)
{
session.Store(basket);
await session.SaveChangesAsync(cancellationToken);
return basket;
}
public async Task<bool> DeleteBasket(string userName, CancellationToken cancellationToken = default)
{
session.Delete<ShoppingCart>(userName);
await session.SaveChangesAsync(cancellationToken);
return true;
}
}