/// <summary>
        /// Execute order rules from less importatn to the most important rule.
        /// Using Chain of Responsibility design pattern
        /// </summary>
        /// <param name="teamsStats"></param>
        private void ExecuteOrderRules(ref ICollection<TeamInTableViewModel> teamsStats)
        {
            OrderRuleHandler h1 = new DirectMatchRuleHandler();
            OrderRuleHandler h2 = new PointsRuleHandler();
            OrderRuleHandler h3 = new SetsRatioRuleHandler();
            OrderRuleHandler h4 = new SmallPointsRuleHandler();
            OrderRuleHandler h5 = new WinGamesRuleHandler();

            h1.SetSuccessor(h2);
            h2.SetSuccessor(h3);
            h3.SetSuccessor(h4);
            h4.SetSuccessor(h5);

            foreach (var orderRule in tableOrderRules)
            {
                h1.Handle(orderRule, ref teamsStats);
            }
        }
Example #2
0
        /// <summary>
        /// Execute order rules from less importatn to the most important rule.
        /// Using Chain of Responsibility design pattern
        /// </summary>
        /// <param name="teamsStats"></param>
        private void ExecuteOrderRules(ref ICollection <TeamInTableViewModel> teamsStats)
        {
            OrderRuleHandler h1 = new DirectMatchRuleHandler();
            OrderRuleHandler h2 = new PointsRuleHandler();
            OrderRuleHandler h3 = new SetsRatioRuleHandler();
            OrderRuleHandler h4 = new SmallPointsRuleHandler();
            OrderRuleHandler h5 = new WinGamesRuleHandler();

            h1.SetSuccessor(h2);
            h2.SetSuccessor(h3);
            h3.SetSuccessor(h4);
            h4.SetSuccessor(h5);

            foreach (var orderRule in tableOrderRules)
            {
                h1.Handle(orderRule, ref teamsStats);
            }
        }