@@ -33,8 +33,18 @@ public override async Task<Empty> AddItem(AddItemRequest request, ServerCallCont
33
33
activity ? . SetTag ( "app.product.id" , request . Item . ProductId ) ;
34
34
activity ? . SetTag ( "app.product.quantity" , request . Item . Quantity ) ;
35
35
36
- await _cartStore . AddItemAsync ( request . UserId , request . Item . ProductId , request . Item . Quantity ) ;
37
- return Empty ;
36
+ try
37
+ {
38
+ await _cartStore . AddItemAsync ( request . UserId , request . Item . ProductId , request . Item . Quantity ) ;
39
+
40
+ return Empty ;
41
+ }
42
+ catch ( RpcException ex )
43
+ {
44
+ activity ? . RecordException ( ex ) ;
45
+ activity ? . SetStatus ( ActivityStatusCode . Error , ex . Message ) ;
46
+ throw ;
47
+ }
38
48
}
39
49
40
50
public override async Task < Cart > GetCart ( GetCartRequest request , ServerCallContext context )
@@ -43,15 +53,24 @@ public override async Task<Cart> GetCart(GetCartRequest request, ServerCallConte
43
53
activity ? . SetTag ( "app.user.id" , request . UserId ) ;
44
54
activity ? . AddEvent ( new ( "Fetch cart" ) ) ;
45
55
46
- var cart = await _cartStore . GetCartAsync ( request . UserId ) ;
47
- var totalCart = 0 ;
48
- foreach ( var item in cart . Items )
56
+ try
49
57
{
50
- totalCart += item . Quantity ;
51
- }
52
- activity ? . SetTag ( "app.cart.items.count" , totalCart ) ;
58
+ var cart = await _cartStore . GetCartAsync ( request . UserId ) ;
59
+ var totalCart = 0 ;
60
+ foreach ( var item in cart . Items )
61
+ {
62
+ totalCart += item . Quantity ;
63
+ }
64
+ activity ? . SetTag ( "app.cart.items.count" , totalCart ) ;
53
65
54
- return cart ;
66
+ return cart ;
67
+ }
68
+ catch ( RpcException ex )
69
+ {
70
+ activity ? . RecordException ( ex ) ;
71
+ activity ? . SetStatus ( ActivityStatusCode . Error , ex . Message ) ;
72
+ throw ;
73
+ }
55
74
}
56
75
57
76
public override async Task < Empty > EmptyCart ( EmptyCartRequest request , ServerCallContext context )
@@ -62,8 +81,7 @@ public override async Task<Empty> EmptyCart(EmptyCartRequest request, ServerCall
62
81
63
82
try
64
83
{
65
- // Throw 1/10 of the time to simulate a failure when the feature flag is enabled
66
- if ( await _featureFlagHelper . GetBooleanValue ( "cartServiceFailure" , false ) && random . Next ( 10 ) == 0 )
84
+ if ( await _featureFlagHelper . GetBooleanValueAsync ( "cartServiceFailure" , false ) )
67
85
{
68
86
await _badCartStore . EmptyCartAsync ( request . UserId ) ;
69
87
}
0 commit comments