Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit 7f7fe7c

Browse files
Merge pull request #9 from martijnburgers/master
Small improvements
2 parents 4590354 + 316874e commit 7f7fe7c

2 files changed

Lines changed: 29 additions & 16 deletions

File tree

src/SqlStreamStore.HAL.DevServer/Program.cs

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
System.Func<
1616
System.Collections.Generic.IDictionary<string, object>,
1717
System.Threading.Tasks.Task>>;
18+
1819
using BuildFunc = System.Action<
1920
System.Func<
2021
System.Func<
@@ -44,24 +45,24 @@ public static async Task<int> Main(string[] args)
4445
using(var server = new KestrelOwinServer(options))
4546
using(var streamStore = new InMemoryStreamStore())
4647
{
47-
await server.Start(new UriBuilder
48-
{
49-
Port = port
50-
}.Uri.ToString(), Configure(streamStore), CancellationToken.None);
48+
var url = new UriBuilder { Port = port }.Uri.ToString();
49+
var owinPipeline = Configure(streamStore);
50+
51+
await server.Start(url, owinPipeline, CancellationToken.None);
5152

52-
DisplayMenu(streamStore);
53+
DisplayMenu(streamStore, url);
5354
}
5455

5556
return 0;
5657
}
5758

5859
private static Action<BuildFunc> Configure(IStreamStore streamStore)
5960
=> builder => builder
60-
.Use(DisplayErrors)
61+
.Use(CatchAndDisplayErrors)
6162
.Use(AllowAllOrigins)
6263
.Use(SqlStreamStoreHalMiddleware.UseSqlStreamStoreHal(streamStore));
6364

64-
private static MidFunc DisplayErrors => next => async env =>
65+
private static MidFunc CatchAndDisplayErrors => next => async env =>
6566
{
6667
try
6768
{
@@ -87,10 +88,11 @@ private static Action<BuildFunc> Configure(IStreamStore streamStore)
8788
return next(env);
8889
};
8990

90-
private static void DisplayMenu(IStreamStore streamStore)
91+
private static void DisplayMenu(IStreamStore streamStore, string url)
9192
{
9293
while(true)
9394
{
95+
Console.WriteLine("Using stream store: {0}", streamStore.GetType().Name);
9496
Console.WriteLine("Press w to write 10 messages each to 100 streams");
9597
Console.WriteLine("Press t to write 100 messages each to 10 streams");
9698
Console.WriteLine("Press ESC to exit");
@@ -102,10 +104,10 @@ private static void DisplayMenu(IStreamStore streamStore)
102104
case ConsoleKey.Escape:
103105
return;
104106
case ConsoleKey.W:
105-
Write(streamStore, 10, 100);
107+
Write(streamStore, url, 10, 100);
106108
break;
107109
case ConsoleKey.T:
108-
Write(streamStore, 100, 10);
110+
Write(streamStore, url, 100, 10);
109111
break;
110112
default:
111113
Console.WriteLine("Computer says no");
@@ -114,21 +116,32 @@ private static void DisplayMenu(IStreamStore streamStore)
114116
}
115117
}
116118

117-
private static void Write(IStreamStore streamStore, int messageCount, int streamCount)
118-
=> Task.Run(() => Task.WhenAll(
119-
from streamId in Enumerable.Range(0, streamCount).Select(_ => $"test-{Guid.NewGuid():n}")
119+
private static void Write(IStreamStore streamStore, string url, int messageCount, int streamCount)
120+
{
121+
var streams = Enumerable.Range(0, streamCount).Select(_ => $"test-{Guid.NewGuid():n}").ToList();
122+
123+
var streamIds = string.Join("\n", streams.Select(streamid => $"{url}streams/{streamid}"));
124+
125+
Console.WriteLine("\nAbout to create the following streams: ");
126+
Console.WriteLine(streamIds);
127+
128+
Task.Run(() => Task.WhenAll(
129+
from streamId in streams
120130
select streamStore.AppendToStream(streamId,
121131
ExpectedVersion.NoStream,
122132
GenerateMessages(messageCount))));
133+
}
123134

124135
private static NewStreamMessage[] GenerateMessages(int messageCount)
125-
=> Enumerable.Range(0, messageCount)
136+
{
137+
return Enumerable.Range(0, messageCount)
126138
.Select(_ => new NewStreamMessage(
127139
Guid.NewGuid(),
128140
"test",
129141
$@"{{ ""foo"": ""{Guid.NewGuid()}"", ""baz"": {{ }}, ""qux"": [ {string.Join(", ", Enumerable
130142
.Range(0, messageCount).Select(max => s_random.Next(max)))} ] }}",
131143
"{}"))
132144
.ToArray();
145+
}
133146
}
134147
}

src/SqlStreamStore.HAL/DeleteStreamMiddleware.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ internal static class DeleteStreamMiddleware
1515
public static MidFunc UseStreamStore(IStreamStore streamStore)
1616
{
1717
var streams = new StreamResource(streamStore);
18-
var streamMessaages = new StreamMessageResource(streamStore);
18+
var streamMessages = new StreamMessageResource(streamStore);
1919

2020
var builder = new AppBuilder()
2121
.MapWhen(IsStream, inner => inner.Use(DeleteStream(streams)))
22-
.MapWhen(IsStreamMessage, inner => inner.Use(DeleteStreamMessage(streamMessaages)));
22+
.MapWhen(IsStreamMessage, inner => inner.Use(DeleteStreamMessage(streamMessages)));
2323

2424
return next =>
2525
{

0 commit comments

Comments
 (0)