Skip to content

Commit 962416a

Browse files
Merge pull request #6 from EventStore/cqrs_flow/dotnet/refactoring
Refactoring of the CQRS Flow .NET example based on the feedback
2 parents a552bc5 + e16e74f commit 962416a

File tree

43 files changed

+124
-140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+124
-140
lines changed

CQRS_Flow/.NET/Carts/Carts.Api/Controllers/CartsController.cs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Threading;
34
using System.Threading.Tasks;
45
using Carts.Api.Requests.Carts;
56
using Carts.Carts.GettingCartAtVersion;
@@ -32,7 +33,7 @@ public CartsController(
3233
}
3334

3435
[HttpPost]
35-
public async Task<IActionResult> InitializeCart([FromBody] InitializeCartRequest? request)
36+
public async Task<IActionResult> InitializeCart([FromBody] InitializeCartRequest? request, CancellationToken ct)
3637
{
3738
if (request == null)
3839
throw new ArgumentNullException(nameof(request));
@@ -44,13 +45,13 @@ public async Task<IActionResult> InitializeCart([FromBody] InitializeCartRequest
4445
request.ClientId
4546
);
4647

47-
await commandBus.Send(command);
48+
await commandBus.Send(command, ct);
4849

4950
return Created("api/Carts", cartId);
5051
}
5152

5253
[HttpPost("{id}/products")]
53-
public async Task<IActionResult> AddProduct(Guid id, [FromBody] AddProductRequest? request)
54+
public async Task<IActionResult> AddProduct(Guid id, [FromBody] AddProductRequest? request, CancellationToken ct)
5455
{
5556
if (request == null)
5657
throw new ArgumentNullException(nameof(request));
@@ -63,13 +64,13 @@ public async Task<IActionResult> AddProduct(Guid id, [FromBody] AddProductReques
6364
)
6465
);
6566

66-
await commandBus.Send(command);
67+
await commandBus.Send(command, ct);
6768

6869
return Ok();
6970
}
7071

7172
[HttpDelete("{id}/products")]
72-
public async Task<IActionResult> RemoveProduct(Guid id, [FromBody] RemoveProductRequest? request)
73+
public async Task<IActionResult> RemoveProduct(Guid id, [FromBody] RemoveProductRequest? request, CancellationToken ct)
7374
{
7475
if (request == null)
7576
throw new ArgumentNullException(nameof(request));
@@ -83,49 +84,49 @@ public async Task<IActionResult> RemoveProduct(Guid id, [FromBody] RemoveProduct
8384
)
8485
);
8586

86-
await commandBus.Send(command);
87+
await commandBus.Send(command, ct);
8788

8889
return Ok();
8990
}
9091

9192
[HttpPut("{id}/confirmation")]
92-
public async Task<IActionResult> ConfirmCart(Guid id)
93+
public async Task<IActionResult> ConfirmCart(Guid id, CancellationToken ct)
9394
{
9495
var command = Carts.ConfirmingCart.ConfirmCart.Create(
9596
id
9697
);
9798

98-
await commandBus.Send(command);
99+
await commandBus.Send(command, ct);
99100

100101
return Ok();
101102
}
102103

103104
[HttpGet("{id}")]
104-
public Task<CartDetails> Get(Guid id)
105+
public Task<CartDetails> Get(Guid id, CancellationToken ct)
105106
{
106-
return queryBus.Send<GetCartById, CartDetails>(GetCartById.Create(id));
107+
return queryBus.Send<GetCartById, CartDetails>(GetCartById.Create(id), ct);
107108
}
108109

109110
[HttpGet]
110-
public Task<IReadOnlyList<CartShortInfo>> Get([FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
111+
public Task<IReadOnlyList<CartShortInfo>> Get(CancellationToken ct, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
111112
{
112-
return queryBus.Send<GetCarts, IReadOnlyList<CartShortInfo>>(GetCarts.Create(pageNumber, pageSize));
113+
return queryBus.Send<GetCarts, IReadOnlyList<CartShortInfo>>(GetCarts.Create(pageNumber, pageSize), ct);
113114
}
114115

115116

116117
[HttpGet("{id}/history")]
117-
public Task<IReadOnlyList<CartHistory>> GetHistory(Guid id)
118+
public Task<IReadOnlyList<CartHistory>> GetHistory(Guid id, CancellationToken ct)
118119
{
119-
return queryBus.Send<GetCartHistory, IReadOnlyList<CartHistory>>(GetCartHistory.Create(id));
120+
return queryBus.Send<GetCartHistory, IReadOnlyList<CartHistory>>(GetCartHistory.Create(id), ct);
120121
}
121122

122123
[HttpGet("{id}/versions")]
123-
public Task<CartDetails> GetVersion(Guid id, [FromQuery] GetCartAtVersion? query)
124+
public Task<CartDetails> GetVersion(Guid id, [FromQuery] GetCartAtVersion? query, CancellationToken ct)
124125
{
125126
if (query == null)
126127
throw new ArgumentNullException(nameof(query));
127128

128-
return queryBus.Send<GetCartAtVersion, CartDetails>(GetCartAtVersion.Create(id, query.Version));
129+
return queryBus.Send<GetCartAtVersion, CartDetails>(GetCartAtVersion.Create(id, query.Version), ct);
129130
}
130131
}
131132
}

CQRS_Flow/.NET/Carts/Carts.Tests/Builders/CartBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Carts.Tests.Builders
99
{
1010
internal class CartBuilder
1111
{
12-
private readonly Queue<IEvent> eventsToApply = new();
12+
private readonly Queue<object> eventsToApply = new();
1313

1414
public CartBuilder Initialized()
1515
{

CQRS_Flow/.NET/Carts/Carts/Carts/AddingProduct/AddProduct.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
using Carts.Pricing;
66
using Core.Commands;
77
using Core.Repositories;
8-
using MediatR;
98

109
namespace Carts.Carts.AddingProduct
1110
{
12-
public class AddProduct: ICommand
11+
public class AddProduct
1312
{
1413
public Guid CartId { get; }
1514

@@ -44,7 +43,7 @@ IProductPriceCalculator productPriceCalculator
4443
this.productPriceCalculator = productPriceCalculator;
4544
}
4645

47-
public Task<Unit> Handle(AddProduct command, CancellationToken cancellationToken)
46+
public Task Handle(AddProduct command, CancellationToken cancellationToken)
4847
{
4948
return cartRepository.GetAndUpdate(
5049
command.CartId,

CQRS_Flow/.NET/Carts/Carts/Carts/AddingProduct/ProductAdded.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Carts.Carts.AddingProduct
66
{
7-
public class ProductAdded: IEvent
7+
public class ProductAdded
88
{
99
public Guid CartId { get; }
1010

CQRS_Flow/.NET/Carts/Carts/Carts/Config.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
using Core.EventStoreDB.Repository;
1414
using Core.Queries;
1515
using Core.Repositories;
16-
using MediatR;
1716
using Microsoft.Extensions.DependencyInjection;
1817

1918
namespace Carts.Carts

CQRS_Flow/.NET/Carts/Carts/Carts/ConfirmingCart/CartConfirmed.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace Carts.Carts.ConfirmingCart
55
{
6-
public class CartConfirmed: IEvent
6+
public class CartConfirmed
77
{
88
public Guid CartId { get; }
99

CQRS_Flow/.NET/Carts/Carts/Carts/ConfirmingCart/ConfirmCart.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
using System.Threading.Tasks;
44
using Core.Commands;
55
using Core.Repositories;
6-
using MediatR;
76

87
namespace Carts.Carts.ConfirmingCart
98
{
10-
public class ConfirmCart: ICommand
9+
public class ConfirmCart
1110
{
1211
public Guid CartId { get; }
1312

@@ -37,7 +36,7 @@ IRepository<Cart> cartRepository
3736
this.cartRepository = cartRepository;
3837
}
3938

40-
public Task<Unit> Handle(ConfirmCart command, CancellationToken cancellationToken)
39+
public Task Handle(ConfirmCart command, CancellationToken cancellationToken)
4140
{
4241
return cartRepository.GetAndUpdate(
4342
command.CartId,

CQRS_Flow/.NET/Carts/Carts/Carts/GettingCartAtVersion/GetCartAtVersion.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Carts.Carts.GettingCartAtVersion
1111
{
12-
public class GetCartAtVersion : IQuery<CartDetails>
12+
public class GetCartAtVersion
1313
{
1414
public Guid CartId { get; }
1515
public ulong Version { get; }

CQRS_Flow/.NET/Carts/Carts/Carts/GettingCartById/GetCartById.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace Carts.Carts.GettingCartById
1010
{
11-
public class GetCartById : IQuery<CartDetails>
11+
public class GetCartById
1212
{
1313
public Guid CartId { get; }
1414

CQRS_Flow/.NET/Carts/Carts/Carts/GettingCartHistory/GetCartHistory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace Carts.Carts.GettingCartHistory
1010
{
11-
public class GetCartHistory: IQuery<IReadOnlyList<CartHistory>>
11+
public class GetCartHistory
1212
{
1313
public Guid CartId { get; }
1414
public int PageNumber { get; }

0 commit comments

Comments
 (0)