Пример #1
0
        private void ConfigureCondition()
        {
            filter.RemoveAllFilters();
            dataGridViewFilterConditions.Rows.Clear();

            object propertyValueA;
            object propertyValueB;
            string propertyName;
            foreach (FilterConditionUserControl condition in filterConditionsList.FilterConditions)
            {
                if (condition.Operation == nameof(Operations.EqualTo))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndEqualTo(propertyName, propertyValueA);
                }
                if (condition.Operation == nameof(Operations.GreaterThan))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndGreaterThan(propertyName, propertyValueA);
                }
                if (condition.Operation == nameof(Operations.GreaterTHanOrEqual))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndGreaterThanOrEqual(propertyName, propertyValueA);
                }
                if (condition.Operation == nameof(Operations.LessThan))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndLessThan(propertyName, propertyValueA);
                }
                if (condition.Operation == nameof(Operations.LessThanOrEqual))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndLessThanOrEqual(propertyName, propertyValueA);
                }
                if (condition.Operation == nameof(Operations.Contains))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndContains(propertyName, (string)propertyValueA);
                }
                if (condition.Operation == nameof(Operations.IsMatch))
                {
                    propertyName = GetProperty(condition, out propertyValueA);
                    filter.AndIsMatch(propertyName, new Regex((string)propertyValueA));
                }
                if (condition.Operation == nameof(Operations.IntoRange))
                {
                    propertyName = GetProperty(condition, out propertyValueA, out propertyValueB);
                    filter.AndIntoRange(propertyName, propertyValueA, propertyValueB);
                }

                UpdateVisualization(condition);
            }
        }
Пример #2
0
        public void TestDateTimeAndIntoRange(IEnumerable <StudentTestResult> testResults)
        {
            Filter <StudentTestResult> filters       = new Filter <StudentTestResult>();
            const string propertyName                = "TestDate";
            DateTime     propertyValueMax            = new DateTime(2021, 01, 04);
            DateTime     propertyValueMin            = new DateTime(2021, 03, 04);
            IEnumerable <StudentTestResult> expected = testResults
                                                       .Where(test => test.TestDate <propertyValueMax && test.TestDate> propertyValueMin).ToArray();

            filters.AndIntoRange(propertyName, propertyValueMin, propertyValueMax);
            IEnumerable <StudentTestResult> actual = filters.ApplyFilterSettings(testResults).ToArray();

            Assert.AreEqual(expected, actual);
        }
Пример #3
0
        public void TestIntAndIntoRange(IEnumerable <StudentTestResult> testResults)
        {
            Filter <StudentTestResult> filters       = new Filter <StudentTestResult>();
            const string propertyName                = "Score";
            const byte   propertyValueMax            = 5;
            const byte   propertyValueMin            = 5;
            IEnumerable <StudentTestResult> expected = testResults
                                                       .Where(test => test.Score <propertyValueMax && test.Score> propertyValueMin).ToArray();

            filters.AndIntoRange(propertyName, propertyValueMin, propertyValueMax);
            IEnumerable <StudentTestResult> actual = filters.ApplyFilterSettings(testResults).ToArray();

            Assert.AreEqual(expected, actual);
        }