private void Process(CommonTransaction commonTransaction, bool isExecuted) { if (!this._Transactions.ContainsKey(commonTransaction.Id)) { if (!this._Instruments.ContainsKey(commonTransaction.InstrumentId) || !this._Accounts.ContainsKey(commonTransaction.AccountId)) return; Account account = this._Accounts[commonTransaction.AccountId]; InstrumentClient instrument = this._Instruments[commonTransaction.InstrumentId]; Transaction transaction = new Transaction(commonTransaction, account, instrument); //Set Transaction.ContractSize if (transaction.ContractSize == 0) { TradePolicyDetail tradePolicyDetail = this.SettingsManager.GetTradePolicyDetail(account.TradePolicyId, instrument.Id); if (tradePolicyDetail != null) { transaction.ContractSize = tradePolicyDetail.ContractSize; } } this._Transactions.Add(transaction.Id, transaction); } else { if (isExecuted && commonTransaction.SubType == iExchange.Common.TransactionSubType.Match) { Transaction transaction = this._Transactions[commonTransaction.Id]; if (transaction.Phase == iExchange.Common.OrderPhase.Canceled || transaction.Phase == iExchange.Common.OrderPhase.Executed) { return; } } if (this._Transactions[commonTransaction.Id].Phase == iExchange.Common.OrderPhase.Executed && isExecuted) return; this._Transactions[commonTransaction.Id].Update(commonTransaction); } }
private void ProcessTransaction(string exchangeCode, CommonTransaction commonTransaction, bool isExecuted) { ExchangeSettingManager settingManager = this.GetExchangeSetting(exchangeCode); Dictionary<Guid, InstrumentClient> instruments = this.GetInstruments(exchangeCode); Dictionary<Guid, Account> accounts = this.GetAccount(exchangeCode); if (!this._Transactions.ContainsKey(commonTransaction.Id)) { if (!instruments.ContainsKey(commonTransaction.InstrumentId) || !accounts.ContainsKey(commonTransaction.AccountId)) return; Account account = accounts[commonTransaction.AccountId]; InstrumentClient instrument = instruments[commonTransaction.InstrumentId]; Transaction transaction = new Transaction(commonTransaction, account, instrument); //Set Transaction.ContractSize if (transaction.ContractSize == 0) { TradePolicyDetail tradePolicyDetail = settingManager.GetTradePolicyDetail(account.TradePolicyId, instrument.Id); if (tradePolicyDetail != null) { transaction.ContractSize = tradePolicyDetail.ContractSize; } } this._Transactions.Add(transaction.Id, transaction); } else { if (isExecuted && commonTransaction.SubType == iExchange.Common.TransactionSubType.Match) { Transaction transaction = this._Transactions[commonTransaction.Id]; if (transaction.Phase == iExchange.Common.OrderPhase.Canceled || transaction.Phase == iExchange.Common.OrderPhase.Executed) { return; } } if (this._Transactions[commonTransaction.Id].Phase == iExchange.Common.OrderPhase.Executed && isExecuted) return; this._Transactions[commonTransaction.Id].Update(commonTransaction); } }
private void Process(CommonTransaction commonTransaction) { this.Process(commonTransaction, false); }
private void ProcessTransaction(string exchangeCode,CommonTransaction commonTransaction) { this.ProcessTransaction(exchangeCode, commonTransaction, false); }