internal void Process(Protocal.TradingCommand bookCommand, ICommandBroadcast broadcast) { try { if (string.IsNullOrEmpty(bookCommand.Content)) { return; } XElement accountElement = XElement.Parse(bookCommand.Content); Guid accountId = accountElement.AttrToGuid("ID"); var account = (Account)AccountRepository.Default.Get(accountId); if (account == null) { return; } Protocal.Commands.ChangedFund changedFund; var changes = account.Update(accountElement, out changedFund); var tran = (Transaction)changes.Single().Tran; Protocal.Commands.TransactionMapping.Default.Update(account, changes); var affectedOrders = this.CreateAffectedOrders(tran); broadcast.BoardcastBookResult(StateServer.Token, tran.ToXml().ToXmlNode(), account.ToXml().ToXmlNode(), affectedOrders); } catch (Exception ex) { Logger.Error(ex); } }
internal void Initialize(ICommandBroadcast broadcast, string connectionString, TransactionAdaptor transactionAdaptor) { _broadcast = broadcast; _connectionString = connectionString; _transactionAdaptor = transactionAdaptor; _changedContentCommandProcessor = new ChangedContentCommandProcessor(_token, _broadcast); }
internal ChangedContentCommandProcessor(Token token, ICommandBroadcast broadcast) { _broadcast = broadcast; _token = token; _mapper = new Mapper(broadcast); _mapper.Start(); }
internal Mapper(ICommandBroadcast broadcast) { _broadcast = broadcast; }
internal TransactionAdaptor(string systemControllerUrl, string quotationServiceUrl, ICommandBroadcast commandBroadcast, string connectionString) { Logger.InfoFormat("in constructor,systemControllerUrl = {0}", systemControllerUrl); _proxy = new SystemControllerProxy(systemControllerUrl); _outerService = new OuterTransactionService(connectionString, _proxy); _connectionString = connectionString; CommandManager.Default.Initialize(commandBroadcast, connectionString, this); this.InitializeDBData(connectionString); this.RegisterToSystemController(); _quotationManager = new QuotationManager(quotationServiceUrl); DBHelper.Initialize(connectionString); }