/// <summary> /// Обработка сообщения по ГО /// </summary> private void CollateralStatusReceived(AdapterEventArgs <CollateralStatus> args) { args.MarkHandled(); // Ищем счет для MP string accountCode; using (accountsLock.ReadLock()) { if (!accountCodesById.TryGetValue(args.Message.account_id, out accountCode)) { Logger.Error().Print("Unable to process collateral: account is unknown", LogFields.AccountId(args.Message.account_id)); return; } } // Собираем Money Position var moneyPosition = new MoneyPosition { Account = accountCode }; moneyPosition[MoneyPositionPropertyNames.Ote] = (decimal)args.Message.ote; moneyPosition[MoneyPositionPropertyNames.Mvo] = (decimal)args.Message.mvo; moneyPosition[MoneyPositionPropertyNames.PurchasingPower] = (decimal)args.Message.purchasing_power; moneyPosition[MoneyPositionPropertyNames.TotalMargin] = (decimal)args.Message.total_margin; moneyPosition[MoneyPositionPropertyNames.Currency].Value = args.Message.currency; OnMessageReceived(moneyPosition); }
private void Handle(QLMoneyPosition position) { //Logger.Debug("Money position received: {0}", position); var moneyPosition = new MoneyPosition { Account = position.trdaccid, ClientCode = position.trdaccid, [MoneyPositionPropertyNames.OpenLimit] = position.cbplimit, [MoneyPositionPropertyNames.PlannedPurePosition] = position.cbplplanned, [MoneyPositionPropertyNames.Commission] = position.ts_comission, [MoneyPositionPropertyNames.VariationMargin] = position.varmargin }; OnMessageReceived(moneyPosition); }
/// <summary> /// Выплюнуть из раутера сообщение /// </summary> /// <param name="message"> /// Сообщение /// </param> internal void Transmit(MoneyPosition message) { OnMessageReceived(message); }