Пример #1
0
        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);
        }
Пример #2
0
 internal void OnCommandExecuted(EFIngresCommandEventArgs e)
 {
     OnEvent(CommandExecuted, e);
 }
Пример #3
0
 internal void OnCommandModified(EFIngresCommandEventArgs e)
 {
     OnEvent(CommandModified, e);
 }