@@ -2,19 +2,8 @@ namespace SqlStreamStore.FSharp
22
33
44open Insurello.AsyncExtra
5- open SqlStreamStore
65open SqlStreamStore.Streams
76
8- type MessageDetails =
9- { id: Id
10- type_: string
11- jsonData: string
12- jsonMetadata: string }
13-
14- and Id =
15- | Custom of System.Guid
16- | Auto
17-
187module Append =
198 let private stringIdToGuid : Id -> System.Guid =
209 function
@@ -27,26 +16,33 @@ module Append =
2716 | " " -> NewStreamMessage( stringIdToGuid msg.id, msg.type_, msg.jsonData)
2817 | metadata -> NewStreamMessage( stringIdToGuid msg.id, msg.type_, msg.jsonData, metadata)
2918
30- let appendNewMessage : IStreamStore -> AppendStreamDetails -> MessageDetails -> Async < AppendResult > =
19+ let private fromAppendVersion : AppendVersion -> int =
20+ function
21+ | AppendVersion.Any -> SqlStreamStore.Streams.ExpectedVersion.Any
22+ | AppendVersion.EmptyStream -> SqlStreamStore.Streams.ExpectedVersion.EmptyStream
23+ | AppendVersion.NoStream -> SqlStreamStore.Streams.ExpectedVersion.NoStream
24+ | AppendVersion.SpecificVersion version -> version
25+
26+ let appendNewMessage : SqlStreamStore.IStreamStore -> AppendStreamDetails -> MessageDetails -> Async < AppendResult > =
3127 fun store streamDetails messageDetails ->
3228 store.AppendToStream
3329 ( StreamId( streamDetails.streamName),
34- Helpers.getVersion streamDetails.version,
30+ fromAppendVersion streamDetails.version,
3531 [| newStreamMessageFromMessageDetails messageDetails |])
3632 |> Async.AwaitTask
3733
38- let appendNewMessages : IStreamStore -> AppendStreamDetails -> List < MessageDetails > -> Async < AppendResult > =
34+ let appendNewMessages : SqlStreamStore. IStreamStore -> AppendStreamDetails -> List < MessageDetails > -> Async < AppendResult > =
3935 fun store streamDetails messages ->
4036 store.AppendToStream
4137 ( StreamId( streamDetails.streamName),
42- Helpers.getVersion streamDetails.version,
38+ fromAppendVersion streamDetails.version,
4339 messages
4440 |> List.map newStreamMessageFromMessageDetails
4541 |> List.toArray)
4642 |> Async.AwaitTask
4743
4844module AppendExtras =
49- let appendNewMessage : IStreamStore -> AppendStreamDetails -> MessageDetails -> AsyncResult < AppendResult , AppendException > =
45+ let appendNewMessage : SqlStreamStore. IStreamStore -> AppendStreamDetails -> MessageDetails -> AsyncResult < AppendResult , AppendException > =
5046 fun store streamDetails messageDetails ->
5147 Append.appendNewMessage store streamDetails messageDetails
5248 |> Async.Catch
0 commit comments