Exemple #1
0
        public void DoHandle(ProtocolIdType pid, Thrift.Protocol.TProtocol tProtocol)
        {
            System.Action <Thrift.Protocol.TProtocol> handler = null;
            if (true == m_handlers.TryGetValue(pid, out handler))
            {
                handler(tProtocol);
                return;
            }

            throw new ArgumentException();
        }
Exemple #2
0
        public override void Read(Thrift.Protocol.TProtocol proto)
        {
            base.Read(proto);
            if (modified_flag == true)
            {
                output_msg.set_from((ContestsType)this);                 // clones by value with additional sensitivity to delta-state w.r.t. previous 'output_msg' contents

                HashSet <string> rejected_contests;
                var contests = output_msg.get_contest_as_fragile();
                if (contests != null)
                {
                    rejected_contests = new HashSet <string>(contests.Keys);
                }
                else
                {
                    rejected_contests = new HashSet <string>();
                }
                var meetings = output_msg.get_meeting_as_fragile();
                if (meetings != null)
                {
                    foreach (var meeting in meetings.ToList())
                    {
                        MeetingType msg_meeting = null;
                        var         markets     = meeting.Value.get_markets_as_fragile();
                        if (markets != null)
                        {
                            foreach (var market in markets.ToList())
                            {
                                var type = market.Value.get_type();
                                if (type != null && type.Value == BetTypeEnum.BetTypeEnum_WIN)
                                {
                                    var legs = market.Value.get_legs();
                                    if (legs != null)
                                    {
                                        foreach (var leg in legs)
                                        {
                                            rejected_contests.Remove(leg.Value);
                                        }
                                    }
                                }
                                else
                                {
                                    meeting.Value.set_markets_element(market.Key, null);
                                    if (msg_meeting == null)
                                    {
                                        msg_meeting = base.get_meeting_element(meeting.Key);
                                    }
                                    msg_meeting.get_markets_element(market.Key).skip_on_read_flag = true;
                                }
                            }
                        }
                        if (meeting.Value.get_markets() == null)
                        {
                            output_msg.set_meeting_element(meeting.Key, null);
                            if (msg_meeting == null)
                            {
                                msg_meeting = base.get_meeting_element(meeting.Key);
                            }
                            msg_meeting.skip_on_read_flag = true;
                        }
                    }
                }
                foreach (var rc in rejected_contests)
                {
                    output_msg.set_contest_element(rc, null);
                    base.get_contest_element(rc).skip_on_read_flag = true;
                }
                contests = output_msg.get_contest_as_fragile();
                if (contests != null)
                {
                    foreach (var contest in contests.ToList())
                    {
                        ContestType msg_contest = null;
                        var         markets     = contest.Value.get_markets_as_fragile();
                        if (markets != null)
                        {
                            foreach (var market in markets.ToList())
                            {
                                var type = market.Value.get_type();
                                if (type == null || type.Value != BetTypeEnum.BetTypeEnum_WIN)
                                {
                                    contest.Value.set_markets_element(market.Key, null);
                                    if (msg_contest == null)
                                    {
                                        msg_contest = base.get_contest_element(contest.Key);
                                    }
                                    msg_contest.get_markets_element(market.Key).skip_on_read_flag = true;
                                }
                            }
                        }
                        if (contest.Value.get_markets() == null)
                        {
                            output_msg.set_contest_element(contest.Key, null);
                            if (msg_contest == null)
                            {
                                msg_contest = base.get_contest_element(contest.Key);
                            }
                            msg_contest.skip_on_read_flag = true;
                        }
                    }
                }
            }
        }