11namespace SqlStreamStore.FSharp
22
33open System.Threading
4- open SqlStreamStore
54open SqlStreamStore.Streams
65open Insurello.AsyncExtra
76
8- [<RequireQualifiedAccessAttribute>]
9- type ReadingDirection =
10- | Forward
11- | Backward
12-
137module Read =
14- let readFromAllStreamAsync : IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> Async < ReadAllPage > =
8+ let private fromReadVersion : uint -> int = fun readVersion -> int ( readVersion)
9+
10+ let readFromAllStreamAsync : SqlStreamStore.IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> Async < ReadAllPage > =
1511 fun store readingDirection startPositionInclusive msgCount ->
1612 match readingDirection with
1713 | ReadingDirection.Forward -> store.ReadAllForwards( startPositionInclusive, msgCount)
1814 | ReadingDirection.Backward -> store.ReadAllBackwards( startPositionInclusive, msgCount)
1915 |> Async.AwaitTask
2016
21- let readFromAllStreamAsync ' : IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> CancellationToken -> Async < ReadAllPage > =
22- fun store readingDirection startPositionInclusive msgCount cancellationToken ->
17+ let readFromAllStreamAsync ' : SqlStreamStore. IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> bool -> CancellationToken -> Async < ReadAllPage > =
18+ fun store readingDirection startPositionInclusive msgCount prefetchJson cancellationToken ->
2319 match readingDirection with
24- | ReadingDirection.Forward -> store.ReadAllForwards( startPositionInclusive, msgCount, cancellationToken)
25- | ReadingDirection.Backward -> store.ReadAllBackwards( startPositionInclusive, msgCount, cancellationToken)
20+ | ReadingDirection.Forward ->
21+ store.ReadAllForwards( startPositionInclusive, msgCount, prefetchJson, cancellationToken)
22+ | ReadingDirection.Backward ->
23+ store.ReadAllBackwards( startPositionInclusive, msgCount, prefetchJson, cancellationToken)
2624 |> Async.AwaitTask
2725
28- let readFromStreamAsync : IStreamStore -> ReadingDirection -> StreamDetails -> MessageCount -> Async < ReadStreamPage > =
29- fun store readingDirection streamDetails msgCount ->
26+ let readFromStreamAsync : SqlStreamStore. IStreamStore -> ReadingDirection -> ReadStreamDetails -> MessageCount -> Async < ReadStreamPage > =
27+ fun store readingDirection readStreamDetails msgCount ->
3028 match readingDirection with
3129 | ReadingDirection.Forward ->
32- store.ReadStreamForwards( streamDetails.streamName, Helpers.toVersion streamDetails.version, msgCount)
30+ store.ReadStreamForwards
31+ ( StreamId( readStreamDetails.streamName), fromReadVersion readStreamDetails.version, msgCount)
3332 | ReadingDirection.Backward ->
34- store.ReadStreamBackwards( streamDetails.streamName, Helpers.toVersion streamDetails.version, msgCount)
33+ store.ReadStreamBackwards
34+ ( StreamId( readStreamDetails.streamName), fromReadVersion readStreamDetails.version, msgCount)
3535 |> Async.AwaitTask
3636
37- let readFromStreamAsync ' : IStreamStore -> ReadingDirection -> StreamDetails -> MessageCount -> CancellationToken -> Async < ReadStreamPage > =
38- fun store readingDirection streamDetails msgCount cancellationToken ->
37+ let readFromStreamAsync ' : SqlStreamStore. IStreamStore -> ReadingDirection -> ReadStreamDetails -> MessageCount -> bool -> CancellationToken -> Async < ReadStreamPage > =
38+ fun store readingDirection readStreamDetails msgCount prefetchJson cancellationToken ->
3939 match readingDirection with
4040 | ReadingDirection.Forward ->
4141 store.ReadStreamForwards
42- ( streamDetails.streamName, Helpers.toVersion streamDetails.version, msgCount, cancellationToken)
42+ ( StreamId( readStreamDetails.streamName),
43+ fromReadVersion readStreamDetails.version,
44+ msgCount,
45+ prefetchJson,
46+ cancellationToken)
4347 | ReadingDirection.Backward ->
4448 store.ReadStreamBackwards
45- ( streamDetails.streamName, Helpers.toVersion streamDetails.version, msgCount, cancellationToken)
49+ ( StreamId( readStreamDetails.streamName),
50+ fromReadVersion readStreamDetails.version,
51+ msgCount,
52+ prefetchJson,
53+ cancellationToken)
4654 |> Async.AwaitTask
4755
4856module ReadExtras =
49- let readAllStreamMessages : IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> AsyncResult < List < StreamMessage >, string > =
57+ let readAllStreamMessages : SqlStreamStore. IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> AsyncResult < List < StreamMessage >, string > =
5058 fun store readingDirection startPositionInclusive msgCount ->
5159 Read.readFromAllStreamAsync store readingDirection startPositionInclusive msgCount
5260 |> Async.bind ( fun readAllPage ->
@@ -60,9 +68,9 @@ module ReadExtras =
6068 ( sprintf " Failed to retrieve all messages. Retrieved messages count: %d " messageList.Length)
6169 |> AsyncResult.fromResult)
6270
63- let readStreamMessages : IStreamStore -> ReadingDirection -> StreamDetails -> MessageCount -> AsyncResult < List < StreamMessage >, string > =
64- fun store readingDirection streamDetails msgCount ->
65- Read.readFromStreamAsync store readingDirection streamDetails msgCount
71+ let readStreamMessages : SqlStreamStore. IStreamStore -> ReadingDirection -> ReadStreamDetails -> MessageCount -> AsyncResult < List < StreamMessage >, string > =
72+ fun store readingDirection readStreamDetails msgCount ->
73+ Read.readFromStreamAsync store readingDirection readStreamDetails msgCount
6674 |> Async.bind ( fun readStreamPage ->
6775 readStreamPage.Messages
6876 |> Seq.toList
0 commit comments