示例#1
0
 public void fromAdmin(Message message, SessionID sessionID)
 {
     if (!isTimerAdjusted)
     {
         SendingTime sendingTime = new SendingTime();
         message.getHeader().getField(sendingTime);
         Utils.AdjustTime(sendingTime.getValue());
         isTimerAdjusted = true;
     }
 }
示例#2
0
        public int GetHeaderSize()  //  подсчет длины строки заголовка без первых двух полей
        {
            string tmpString = String.Format("35={0}\u000156={1}\u000149={2}\u000134={3}\u000152={4}\u0001",
                                             MsgType,
                                             SenderCompID,
                                             TargetCompID,
                                             MsgSeqNum.ToString(),
                                             SendingTime.AddHours(-3).ToString("yyyyMMdd-HH:mm:ss.fff")
                                             );

            return(tmpString.Length);
        }
示例#3
0
 public override string ToString()   //  формирование строки заголовка
 {
     MessageString = String.Format("8={0}\u00019={1}\u000135={2}\u000134={3}\u000149={4}\u000152={5}\u000156={6}\u0001",
                                   BeginString,
                                   BodyLength.ToString(),
                                   MsgType,
                                   MsgSeqNum.ToString(),
                                   SenderCompID,
                                   SendingTime.AddHours(-3).ToString("yyyyMMdd-HH:mm:ss.fff"),
                                   TargetCompID
                                   );
     MessageSize = MessageString.Length; //  для HeaderMessage MessageSize не использовать!
     return(MessageString);
 }
示例#4
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (MsgType.Length != 0)
            {
                hash ^= MsgType.GetHashCode();
            }
            if (HeartBtInt != 0)
            {
                hash ^= HeartBtInt.GetHashCode();
            }
            if (RejectText.Length != 0)
            {
                hash ^= RejectText.GetHashCode();
            }
            hash ^= account_.GetHashCode();
            if (SendingTime != 0L)
            {
                hash ^= SendingTime.GetHashCode();
            }
            if (CstmApplVerId.Length != 0)
            {
                hash ^= CstmApplVerId.GetHashCode();
            }
            if (Username.Length != 0)
            {
                hash ^= Username.GetHashCode();
            }
            if (Password.Length != 0)
            {
                hash ^= Password.GetHashCode();
            }
            if (RawData.Length != 0)
            {
                hash ^= RawData.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
示例#5
0
        public override void onMessage(QuickFix44.MarketDataSnapshotFullRefresh message, SessionID session)
        {
            // getting attributes

            Symbol      symbol      = message.getSymbol();
            SendingTime sendingTime = new SendingTime(message.getHeader().getUtcTimeStamp(SendingTime.FIELD));
            NoMDEntries noMDEntries = message.getNoMDEntries();

            decimal ask     = 0m;
            decimal bid     = 0m;
            decimal askSize = 0m;
            decimal bidSize = 0m;

            for (int i = 0; i < noMDEntries.getValue(); i++)
            {
                QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries group = new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries();
                message.getGroup((uint)i + 1, group);
                MDEntryType mdEntryType = group.getMDEntryType();
                MDEntryPx   mdEntryPx   = group.getMDEntryPx();
                MDEntrySize mdEntrySize = group.getMDEntrySize();

                if (mdEntryType.getValue() == MDEntryType.BID)
                {
                    bid     = (decimal)mdEntryPx.getValue();
                    bidSize = (decimal)mdEntrySize.getValue();
                }
                else if (mdEntryType.getValue() == MDEntryType.OFFER)
                {
                    ask     = (decimal)mdEntryPx.getValue();
                    askSize = (decimal)mdEntrySize.getValue();
                }
            }

            // firing event

            Console.WriteLine("QuickFix44.MarketDataSnapshotFullRefresh: {0}, {1}/{2}, {3}/{4}, {5}", symbol, ask, bid, askSize, bidSize, sendingTime);

            this.fixServices.NotifyQuote(Counterpart.Dukascopy, symbol.getValue(), ask, askSize, bid, bidSize, sendingTime.getValue());
        }
示例#6
0
        public void fromAdmin(Message message, SessionID sessionID)
        {
            if(!isTimerAdjusted)
            {
                SendingTime sendingTime = new SendingTime();
                message.getHeader().getField(sendingTime);
                Utils.AdjustTime(sendingTime.getValue());
                isTimerAdjusted = true;
            }

            //AddText("fromAdmin " + message + Environment.NewLine);
        }
示例#7
0
    public override int GetHashCode()
    {
        int hash = 1;

        if (Price != 0F)
        {
            hash ^= Price.GetHashCode();
        }
        if (Date.Length != 0)
        {
            hash ^= Date.GetHashCode();
        }
        if (Datetime.Length != 0)
        {
            hash ^= Datetime.GetHashCode();
        }
        if (SendingTime.Length != 0)
        {
            hash ^= SendingTime.GetHashCode();
        }
        if (TransactTime.Length != 0)
        {
            hash ^= TransactTime.GetHashCode();
        }
        if (Amount != 0F)
        {
            hash ^= Amount.GetHashCode();
        }
        if (Towards != 0L)
        {
            hash ^= Towards.GetHashCode();
        }
        if (Code.Length != 0)
        {
            hash ^= Code.GetHashCode();
        }
        if (User.Length != 0)
        {
            hash ^= User.GetHashCode();
        }
        if (Strategy.Length != 0)
        {
            hash ^= Strategy.GetHashCode();
        }
        if (Type.Length != 0)
        {
            hash ^= Type.GetHashCode();
        }
        if (BidModel.Length != 0)
        {
            hash ^= BidModel.GetHashCode();
        }
        if (AmountModel.Length != 0)
        {
            hash ^= AmountModel.GetHashCode();
        }
        if (OrderId.Length != 0)
        {
            hash ^= OrderId.GetHashCode();
        }
        if (TradeId.Length != 0)
        {
            hash ^= TradeId.GetHashCode();
        }
        if (Status.Length != 0)
        {
            hash ^= Status.GetHashCode();
        }
        return(hash);
    }
示例#8
0
        public Fsm(long chatId, Message msg, TelegramBotClient bot, Context db)
        {
            User state;

            lock (Locker)
            {
                state = db.Users.FirstOrDefault(x => x.ChatId == chatId);
            }

            if (state == null)
            {
                User user = new User
                {
                    ChatId = chatId,
                    State  = StateChatEnum.StartMain
                };
                db.Users.Add(user);
                db.SaveChanges();
            }

            if (state != null)
            {
                IUpdateState updateState;

                switch (state.State)
                {
                case StateChatEnum.StartMain:
                    var uid = db.Users.FirstOrDefault(x => x.ChatId == chatId);
                    if (uid == null)
                    {
                        User user = new User
                        {
                            ChatId = chatId,
                            State  = StateChatEnum.StartText
                        };

                        db.Users.Add(user);
                        db.SaveChanges();
                    }

                    updateState = new StartMain();
                    break;

                case StateChatEnum.EndAddress:
                    updateState = new EndAddress();
                    break;

                case StateChatEnum.StartText:
                    updateState = new StartText();
                    break;

                case StateChatEnum.SendingTime:
                    updateState = new SendingTime();
                    break;

                case StateChatEnum.SendingNumberPhone:
                    updateState = new SendingNumberPhone();
                    break;

                case StateChatEnum.PaymentMethod:
                    updateState = new PaymentMethod();
                    break;

                case StateChatEnum.CarSearch:
                    updateState = new CarSearch();
                    break;

                //case StateChatEnum.CarSearch:
                //	updateState = new CarSearch();
                //	break;

                default:
                    throw new AggregateException();
                }

                updateState.UpdateAsync(msg, bot, chatId, db);
            }
        }