private void ProcessEvents() { using (var client = redisManager.GetClient()) { // incoming events are JSON, so deserialize each one to IDictionary<>. var events = client.GetTypedClient<IDictionary<string, object>>().Lists["urn:events"]; while (true) { // wait for next event, then convert it to an ExpandoObject; dynamic @event = events.BlockingDequeue(null).ToExpando(); if (@event.Name == "User.ForgotPassword") SendForgottenPasswordEmail(@event.Email); } } }