public UnitOfWork( IQueryProcessor queryProcessor, IValidatableCommandHandler <CreateEntityCommand <TModel> > createHandler, IValidatableCommandHandler <UpdateEntityCommand <TModel> > updateHandler, IValidatableCommandHandler <DeleteEntityCommand <TModel> > deleteHandler) { this.queryProcessor = queryProcessor; this.createHandler = createHandler; this.updateHandler = updateHandler; this.deleteHandler = deleteHandler; }
private WorkResult Handle <TCommand>(IValidatableCommandHandler <TCommand> handler, TCommand command) { WorkResult result = null; handler.Handle(command, validationErrorAction: exception => { result = new WorkResult(exception.ValidationResults); }); return(result ?? new WorkResult()); }