protected T Execute <T>(Func <T> execute) { ModifiedCommandText = null; ModifiedParameters = null; T result; var eventArgs = new EFIngresCommandEventArgs { Command = this, Success = true }; using (new CultureReestablisher()) { EFIngresConnection.OnCommandStarted(eventArgs); try { if (Direct) { result = execute(); eventArgs.Result = result; } else { using (var parser = new CommandParser(this)) { ModifiedCommandText = CommandText; ModifiedParameters = Parameters.Cast <IDbDataParameter>().ToList(); EFIngresConnection.OnCommandModified(eventArgs); EFIngresConnection.CatalogHelpers.CreateCatalogs(parser.CatalogTables); result = execute(); eventArgs.Result = result; } } } catch (Exception ex) { ex = new EFIngresCommandException(this, ex.Message, ex); eventArgs.Success = false; eventArgs.Error = ex; throw ex; } finally { EFIngresConnection.OnCommandExecuted(eventArgs); } } return(result); }
internal void OnCommandExecuted(EFIngresCommandEventArgs e) { OnEvent(CommandExecuted, e); }
internal void OnCommandModified(EFIngresCommandEventArgs e) { OnEvent(CommandModified, e); }