private void InitHandlers() { if (CanHandle()) { InsertedHandler = delegate(EntityEventArgs <T> args) { var values = args.Entity.ToDictionary(); if (values != null && values.Count > 0) { indexer.AddDocument(values); indexer.Save(); } }; UpdatedHandler = delegate(EntityEventArgs <T> args) { var values = args.Entity.ToDictionary(); if (values != null && values.Count > 0) { indexer.UpdateDocument(values); indexer.Save(); } }; DeletedHandler = delegate(EntityEventArgs <T> args) { var values = args.OriginalEntity.ToDictionary(); if (values != null && values.Count > 0) { indexer.RemoveDocument(values); indexer.Save(); } }; BatchInsertedHandler = delegate(EntitiesEventArgs <T> args) { foreach (var entity in args.Entities) { var values = entity.ToDictionary(); if (values != null && values.Count > 0) { indexer.AddDocument(values); } } indexer.Save(); }; BatchUpdatedHandler = delegate(EntitiesEventArgs <T> args) { foreach (var entity in args.Entities) { var values = entity.ToDictionary(); if (values != null && values.Count > 0) { indexer.UpdateDocument(values); } } indexer.Save(); }; BatchDeletedHandler = delegate(EntitiesEventArgs <T> args) { foreach (var entity in args.Entities) { var values = entity.ToDictionary(); if (values != null && values.Count > 0) { indexer.RemoveDocument(values); } } indexer.Save(); }; } }