private TransactionError InnerExecute(OrderExecuteEventArgs e) { TransactionError error = TransactionError.OK; try { var account = TradingSetting.Default.GetAccount(e.AccountId); var tran = account.GetTran(e.TranId); if (e.TranId == null) { return(TransactionError.TransactionNotExists); } if (e.ExecutingLot != null) { this.PartialExecute(e.ExecutingLot.Value, tran); } if (!tran.CanExecute) { if (tran.IsExecuted) { return(TransactionError.OK); } else { return(TransactionError.TransactionCannotBeExecuted); } } _executeStrategy.Execute(e); //if (!SettingFacade.Default.SettingManager.SystemParameter.NeedsFillCheck(e.Transaction.OrderType)) //{ // Trace.WriteLine("ready to book"); // error = this.Book(e); //} //else //{ // Trace.WriteLine("executeStrategy.Execute"); // _executeStrategy.Execute(e); //} } catch (TransactionException tranEx) { error = tranEx.ErrorCode; Logger.Warn(tranEx.Message); Trace.WriteLine(tranEx.Message); } catch (Exception ex) { error = TransactionError.RuntimeError; Logger.Error(ex); Trace.WriteLine(ex.ToString()); } return(error); }
public bool Execute(OrderExecuteEventArgs e) { _executeStrategy.Execute(e); return(true); }