private static void UpdateEventSourceVersion(EventSourceInformation eventSource, SQLiteTransaction transaction)
 {
     using (var cmd = new SQLiteCommand(Query.UpdateEventSourceVersionQuery, transaction.Connection))
     {
         cmd.SetTransaction(transaction).AddParam("Id", eventSource.Id);
         cmd.ExecuteNonQuery();
     }
 }
        private void SaveEvent(UncommittedEvent evnt, SQLiteTransaction transaction)
        {
            if (evnt == null || transaction == null) throw new ArgumentNullException();
            using (var dataStream = new MemoryStream())
            {
                var bag = _converter.Convert(evnt.Payload);

                var formatter = new BinaryFormatter();
                formatter.Serialize(dataStream, bag);
                var data = dataStream.ToArray();

                using (var cmd = new SQLiteCommand(Query.InsertNewEventQuery, transaction.Connection))
                {
                    cmd.SetTransaction(transaction)
                        .AddParam("SourceId", evnt.EventSourceId)
                        .AddParam("EventId", evnt.EventIdentifier)
                        .AddParam("Name", evnt.Payload.GetType().FullName)
                        .AddParam("Sequence", evnt.EventSequence)                        
                        .AddParam("Timestamp", evnt.EventTimeStamp.Ticks)
                        .AddParam("Data", data);
                    cmd.ExecuteNonQuery();
                }
            }
        }
 private static int? GetVersion(Guid providerId, SQLiteTransaction transaction)
 {
     using (var command = new SQLiteCommand(Query.SelectVersionQuery, transaction.Connection))
     {
         command.SetTransaction(transaction).AddParam("Id", providerId);
         return (int?)command.ExecuteScalar();
     }
 }
 private static void AddEventSource(EventSourceInformation eventSource, SQLiteTransaction transaction)
 {
     using (var cmd = new SQLiteCommand(Query.InsertNewProviderQuery, transaction.Connection))
     {
         //TODO
         var eventSourceType = typeof (object);
         cmd.SetTransaction(transaction)
             .AddParam("Id", eventSource.Id)
             .AddParam("Type", eventSourceType.ToString())
             .AddParam("Version", eventSource.CurrentVersion);
         cmd.ExecuteNonQuery();
     }
 }
 private void AddEventSource(IEventSource eventSource, SQLiteTransaction transaction)
 {
     using (var cmd = new SQLiteCommand(Query.InsertNewProviderQuery, transaction.Connection))
     {
         cmd.SetTransaction(transaction)
             .AddParam("Id", eventSource.EventSourceId)
             .AddParam("Type", eventSource.GetType().ToString())
             .AddParam("Version", eventSource.Version);
         cmd.ExecuteNonQuery();
     }
 }