public Task <T?> Find(Guid id, CancellationToken cancellationToken)
 {
     return(eventStore.AggregateStream <T>(
                id,
                cancellationToken
                ));
 }
    public async Task <CartDetails> Handle(GetCartAtVersion request, CancellationToken cancellationToken)
    {
        var cart = await eventStore.AggregateStream <CartDetails>(
            request.CartId,
            cancellationToken,
            request.Version
            );

        if (cart == null)
        {
            throw AggregateNotFoundException.For <Cart>(request.CartId);
        }

        return(cart);
    }