Example #1
0
        /// <summary>
        /// Builds the xml message body from the raw feed message (instance)
        /// </summary>
        /// <param name="message">The message to be serialized</param>
        /// <returns>Returns xml message body</returns>
        private string BuildMessageBody(TestFeedMessage message)
        {
            if (message is alive aliveMsg)
            {
                return(Helper.Serialize(aliveMsg));
            }
            if (message is odds_change oddsChange)
            {
                return(Helper.Serialize(oddsChange));
            }
            if (message is bet_stop betStop)
            {
                return(Helper.Serialize(betStop));
            }
            if (message is fixture_change fixtureChange)
            {
                return(Helper.Serialize(fixtureChange));
            }
            if (message is snapshot_complete snapshotComplete)
            {
                return(Helper.Serialize(snapshotComplete));
            }
            if (message is bet_settlement betSettlement)
            {
                return(Helper.Serialize(betSettlement));
            }

            return(Helper.Serialize(message));
        }
Example #2
0
        /// <summary>
        /// Sends the message
        /// </summary>
        /// <param name="message">The message to be send</param>
        /// <param name="routingKey">The routing key to be applied or it will be generated based on message type</param>
        /// <param name="timestamp">The timestamp  to be applied or Now</param>
        public void Send(TestFeedMessage message, string routingKey = null, long timestamp = 0)
        {
            var msgBody = BuildMessageBody(message);

            if (routingKey.IsNullOrEmpty())
            {
                routingKey = BuildRoutingKey(message);
            }

            Send(msgBody, routingKey, timestamp);
        }
Example #3
0
        /// <summary>
        /// Builds the routing key from the message type
        /// </summary>
        /// <param name="message">The message</param>
        /// <returns>Returns the appropriate routing key</returns>
        private string BuildRoutingKey(TestFeedMessage message)
        {
            if (message.GetType() == typeof(alive))
            {
                return("-.-.-.alive.-.-.-.-");
            }
            else if (message.GetType() == typeof(odds_change))
            {
                var oddsChange = (odds_change)message;
                var sportId    = 1; //oddsChange
                var urn        = URN.Parse(oddsChange.event_id);
                return($"hi.{BuildSessionPartOfRoutingKey(oddsChange.product)}.odds_change.{sportId}.{urn.Prefix}:{urn.Type}.{urn.Id}.-");
            }
            else if (message.GetType() == typeof(bet_stop))
            {
                var betStop = (bet_stop)message;
                var sportId = 1;
                var urn     = URN.Parse(betStop.event_id);
                return($"hi.{BuildSessionPartOfRoutingKey(betStop.product)}.bet_stop.{sportId}.{urn.Prefix}:{urn.Type}.{urn.Id}.-");
            }
            else if (message.GetType() == typeof(fixture_change))
            {
                var fixtureChange = (fixture_change)message;
                var sportId       = 1;
                var urn           = URN.Parse(fixtureChange.event_id);
                return($"hi.pre.live.fixture_change.{sportId}.{urn.Prefix}:{urn.Type}.{urn.Id}.-");
            }
            else if (message.GetType() == typeof(snapshot_complete))
            {
                return("-.-.-.snapshot_complete.-.-.-.-");
            }
            else if (message.GetType() == typeof(bet_settlement))
            {
                var betSettlement = (bet_settlement)message;
                var sportId       = 1;
                var urn           = URN.Parse(betSettlement.event_id);
                return($"lo.{BuildSessionPartOfRoutingKey(betSettlement.product)}.bet_settlement.{sportId}.{urn.Prefix}:{urn.Type}.{urn.Id}.-");
            }

            return(string.Empty);
        }