public virtual void DbActionExecutor(EventStreamElement <TE> element, Action <SqlConnection, EventStreamElement <TE> > action) { try { using (var con = ReadSideConnectionFactory.Invoke()) action(con, element); } catch (Exception ex) { throw; } }
void HandleChangeGreeting(SqlConnection con, EventStreamElement <HelloEvent> eventBase) { var e = eventBase.Event as HelloEvent.GreetingUpdatedEvent; try { con.Execute(@" update greetings set message=@message where name=@name IF @@ROWCOUNT=0 insert into greetings(message, name) values(@message, @name);", new { name = eventBase.EntityId, message = e.Message } ); } catch (Exception ex) { // TODO: Catch this from the parent caller Console.WriteLine(ex.Message); throw; } }