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;
     }
 }
Example #2
0
    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;
        }
    }