private long InsertEventsAndReturnLastVersion(object streamId, SqlCeConnection connection, long nextVersion,
IEnumerable<Tuple<string, string>> serializedEvents)
{
foreach (var @event in serializedEvents)
{
const string insertCommandText = "INSERT INTO EventWrappers (EventId, StreamId, Sequence, TimeStamp, EventType, Body) VALUES (@EventId, @StreamId, @Sequence, @TimeStamp, @EventType, @Body);";
using (var command = new SqlCeCommand(insertCommandText, connection))
{
command.Parameters.AddWithValue("EventId", Guid.NewGuid());
command.Parameters.AddWithValue("StreamId", streamId.ToString());
command.Parameters.AddWithValue("Sequence", ++nextVersion);
command.Parameters.AddWithValue("TimeStamp", DateTime.UtcNow);
command.Parameters.AddWithValue("EventType", @event.Item1);
command.Parameters.AddWithValue("Body", @event.Item2);
command.ExecuteNonQuery();
}
}
return nextVersion;
}