QUIKSharp icon indicating copy to clipboard operation
QUIKSharp copied to clipboard

Отправка заявки - Поля CLIENT_CODE, Comment и TRANS_ID

Open IFetisov opened this issue 5 years ago • 0 comments

Всем привет Хотел уточнить по этой теме а то когда смотрю код в голове какая то путаница начинается TradingFunctions.cs transaction.TRANS_ID = QuikService.GetUniqueTransactionId(); if (transaction.CLIENT_CODE == null) transaction.CLIENT_CODE = transaction.TRANS_ID.Value.ToString(); Т.е. если клиент не задан туда забиваем TRANS_ID В принципе это роли играть не должно потому что я его всегда задаю т.к. работаю с квиком в котором разрешена работа с несколькими клиентами Потом зачем то это все добавляется в Storage QuikService.Storage.Set(transaction.CLIENT_CODE, transaction); И потом когда идет OnTransReply QuikEvents - код клиента совершенно неожиданно попадает в поле Comment

        if (string.IsNullOrEmpty(reply.Comment)) //"Initialization user successful" transaction doesn't contain comment
            return;

        if (QuikService.Storage.Contains(reply.Comment))
        {
            var tr = QuikService.Storage.Get<Transaction>(reply.Comment);
            lock (tr)
            {
                tr.OnTransReplyCall(reply);
            }
        }

И дальше идет крэш потому что от там ожидается уникальный номер транзакции. Нельзя ли это привести в порядок чтобы каждое поле использовалось по назначению?

я у себя пока так ставлю. удалил - if (transaction.CLIENT_CODE == null) transaction.CLIENT_CODE = transaction.TRANS_ID.Value.ToString(); изменил - QuikService.Storage.Set(transaction.TRANS_ID.Value.ToString(), transaction);

Получается есть 3 поля TRANS_ID , Comment (broker_ref), CLIENT_CODE и они как странно обмениваются значениями друг с другом.

IFetisov avatar Jul 29 '20 10:07 IFetisov