public IEnumerable <User> MatchWithAge(User.eGender i_gender, string i_single = "false", int i_minAge = 18, int i_maxAge = 70)
        {
            DateTime bornBefore  = DateTime.Now.AddYears(-i_minAge);
            DateTime bornAfter   = DateTime.Now.AddYears(-i_maxAge);
            bool     forceSingle = false;
            bool     single      = false;

            switch (i_single)
            {
            case "false":
                single = false;
                break;

            case "true":
                single = true;
                break;

            case "force":
                single      = true;
                forceSingle = true;
                break;
            }

            UserTest headTest = new UserTest((i_user) => m_logic.GenderFilter(i_user, i_gender));

            headTest.Add((i_user) => m_logic.AgeFilter(i_user, bornBefore, bornAfter));
            headTest.Add((i_user) => single ? m_logic.Single(i_user, forceSingle) : true);
            return(m_logic.ChainFilter(headTest));
        }
        public IEnumerable <User> Match(User.eGender i_gender, string i_single = "False")
        {
            bool single = false;

            switch (i_single)
            {
            case "False":
                single = false;
                break;

            case "True":
                single = true;
                break;

            case "Force":
                single = true;
                break;
            }

            ITestHandler <User> tester = new UserTest((i_user) => m_logic.GenderFilter(i_user, i_gender));

            tester.Add((i_user) => single ? m_logic.GenderFilter(i_user, i_gender) : true);
            return(m_logic.ChainFilter(tester));
        }