Skip to content

Commit 041a4d2

Browse files
author
Jamil Maqdis Anton
committed
Refactor. Added support for new ReadStreamDetails type.
1 parent 0e8ef91 commit 041a4d2

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

src/Read.fs

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,60 @@
11
namespace SqlStreamStore.FSharp
22

33
open System.Threading
4-
open SqlStreamStore
54
open SqlStreamStore.Streams
65
open Insurello.AsyncExtra
76

8-
[<RequireQualifiedAccessAttribute>]
9-
type ReadingDirection =
10-
| Forward
11-
| Backward
12-
137
module 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

4856
module 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

Comments
 (0)