Esempio n. 1
0
        private static void ProcessCreditLimitUpdateRequest(string[] param)
        {
            if (param.Length == 6)
            {
                TimeSpan elapsed = DateTime.Now - new DateTime(1970, 1, 1);
                FirmsCreditLimitUpdateRequest firmsCreditLimitUpdReq = new FirmsCreditLimitUpdateRequest()
                {
                    Msg               = "FirmsCreditLimitUpdateRequest",
                    AvailableCredit   = Convert.ToDouble(param[3]),
                    UsedCredit        = Convert.ToDouble(param[4]),
                    PotentialExposure = 0,
                    MaxNotional       = Convert.ToDouble(param[5]),
                    MaxQuantity       = Convert.ToDouble(param[5]) / 7000,//We use BTC price as reference
                    cTradingStatus    = Convert.ToChar(param[2]),
                    FirmId            = param[1],
                    Time              = Convert.ToInt64(elapsed.TotalSeconds),
                    SettlementAgentId = SettlementAgentDict.ContainsKey(param[1]) ? SettlementAgentDict[param[1]] : null,
                    JsonWebToken      = Token,
                    Uuid              = UUID
                };

                FirmId = firmsCreditLimitUpdReq.FirmId;

                DoSend <FirmsCreditLimitUpdateRequest>(firmsCreditLimitUpdReq);
            }
            else
            {
                DoLog(string.Format("Missing mandatory parameters for FirmsCreditLimitUpdateRequest message"));
            }
        }
Esempio n. 2
0
        private static void ProcessEvent(WebSocketMessageV2 msg)
        {
            if (msg is ClientLoginResponse)
            {
                ClientLoginResponse loginResp = (ClientLoginResponse)msg;

                if (loginResp.JsonWebToken != null)
                {
                    UUID   = loginResp.Uuid;
                    UserId = loginResp.UserId;
                    Token  = loginResp.JsonWebToken;
                    FirmId = null;
                }

                ProcessJsonMessage <ClientLoginResponse>(loginResp);
            }
            else if (msg is TokenResponse)
            {
                ProcessTokenResponse(msg);
            }
            else if (msg is ClientLogout)
            {
                ClientLogout logoutResp = (ClientLogout)msg;

                Token  = null;
                UserId = UserId;
                FirmId = null;
                UUID   = null;

                ProcessJsonMessage <ClientLogout>((ClientLogout)msg);
            }
            else if (msg is ClientHeartbeat)
            {
                ClientHeartbeat heartBeat = (ClientHeartbeat)msg;
                ProcessJsonMessage <ClientHeartbeat>((ClientHeartbeat)msg);
                ProcessHeartbeat(heartBeat);
            }
            else if (msg is SubscriptionResponse)
            {
                ProcessJsonMessage <SubscriptionResponse>((SubscriptionResponse)msg);
            }
            else if (msg is ClientAccountRecord)
            {
                ProcessJsonMessage <ClientAccountRecord>((ClientAccountRecord)msg);
            }
            else if (msg is ClientLastSale)
            {
                ProcessJsonMessage <ClientLastSale>((ClientLastSale)msg);
            }
            else if (msg is FirmsTradingStatusUpdateResponse)
            {
                ProcessJsonMessage <FirmsTradingStatusUpdateResponse>((FirmsTradingStatusUpdateResponse)msg);
            }
            else if (msg is ClientBestBidOffer)
            {
                ProcessJsonMessage <ClientBestBidOffer>((ClientBestBidOffer)msg);
            }
            else if (msg is ClientMarketState)
            {
                ProcessJsonMessage <ClientMarketState>((ClientMarketState)msg);
            }
            else if (msg is ClientInstrument)
            {
                ProcessJsonMessage <ClientInstrument>((ClientInstrument)msg);
            }
            else if (msg is ClientOrderAck)
            {
                ProcessJsonMessage <ClientOrderAck>((ClientOrderAck)msg);
            }
            else if (msg is ClientOrderRej)
            {
                ProcessJsonMessage <ClientOrderRej>((ClientOrderRej)msg);
            }
            else if (msg is ClientMassCancelResponse)
            {
                ProcessJsonMessage <ClientMassCancelResponse>((ClientMassCancelResponse)msg);
            }
            else if (msg is ClientOrderReq)
            {
                ProcessJsonMessage <ClientOrderReq>((ClientOrderReq)msg);
            }
            else if (msg is ClientDSP)
            {
                ProcessJsonMessage <ClientDSP>((ClientDSP)msg);
            }
            else if (msg is FirmsListResponse)
            {
                FirmsListResponse resp = (FirmsListResponse)msg;
                resp.Firms.ToList().ForEach(x => SettlementAgentDict.Add(x.FirmId.ToString(), resp.SettlementAgentId));
                ProcessJsonMessage <FirmsListResponse>(resp);
            }
            else if (msg is FirmsCreditLimitUpdateResponse)
            {
                ProcessJsonMessage <FirmsCreditLimitUpdateResponse>((FirmsCreditLimitUpdateResponse)msg);
            }
            else if (msg is FirmsTradingStatusUpdateResponse)
            {
                ProcessJsonMessage <FirmsTradingStatusUpdateResponse>((FirmsTradingStatusUpdateResponse)msg);
            }
            else if (msg is EmailNotificationsListResponse)
            {
                ProcessJsonMessage <EmailNotificationsListResponse>((EmailNotificationsListResponse)msg);
            }
            else if (msg is EmailNotificationsCreateResponse)
            {
                ProcessJsonMessage <EmailNotificationsCreateResponse>((EmailNotificationsCreateResponse)msg);
            }
            else if (msg is EmailNotificationsUpdateResponse)
            {
                ProcessJsonMessage <EmailNotificationsUpdateResponse>((EmailNotificationsUpdateResponse)msg);
            }
            else if (msg is EmailNotificationsDeleteResponse)
            {
                ProcessJsonMessage <EmailNotificationsDeleteResponse>((EmailNotificationsDeleteResponse)msg);
            }
            else if (msg is UnknownMessageV2)
            {
                UnknownMessageV2 unknownMsg = (UnknownMessageV2)msg;

                DoLog(string.Format("<<unknown {0}", unknownMsg.Resp));
            }
            else if (msg is ErrorMessageV2)
            {
                ErrorMessageV2 errorMsg = (ErrorMessageV2)msg;

                DoLog(string.Format("<<unknown {0}", errorMsg.Error));
            }
            else
            {
                DoLog(string.Format("<<Unknown message type {0}", msg.ToString()));
            }

            Console.WriteLine();
        }