示例#1
0
        void UpdateTeamsPredicates()
        {
            Filters.IgnoreEvents = true;
            TeamsPredicate.Clear();

            foreach (var team in new LMTeamVM [] { homeTeamVM, awayTeamVM })
            {
                var teamPredicate = new OrPredicate <TimelineEventVM> {
                    Name = team.Name,
                };
                teamPredicate.Add(new Predicate {
                    Name       = Catalog.GetString("Team"),
                    Expression = ev =>
                                 (ev.Model as LMTimelineEvent).TaggedTeams.Contains(team.Model)
                });
                foreach (var player in team)
                {
                    teamPredicate.Add(new Predicate {
                        Name       = player.Model.Name,
                        Expression = ev =>
                                     (ev.Model as LMTimelineEvent).Players.Contains(player.Model)
                    });
                }
                TeamsPredicate.Add(teamPredicate);
            }
            Filters.IgnoreEvents = false;
            RaisePropertyChanged("Collection", this);
        }
示例#2
0
        public void TestOrContainingAnd()
        {
            var filter = new AndPredicate <string> {
                new Predicate <string> {
                    Expression = (ev) => true
                },
                new Predicate <string> {
                    Expression = (ev) => false
                },
            };

            var filter2 = new AndPredicate <string> {
                new Predicate <string> {
                    Expression = (ev) => true
                },
                new Predicate <string> {
                    Expression = (ev) => true
                },
            };

            var container = new OrPredicate <string> ();

            container.Add(filter);
            container.Add(filter2);

            Assert.IsTrue(container.Filter(""));
        }
示例#3
0
        public void TestOrEvents()
        {
            // Arrange
            string property = "";
            int    count    = 0;
            var    filter   = new OrPredicate <string> ();

            filter.PropertyChanged += (sender, e) => {
                property = e.PropertyName;
                count++;
            };

            // Act
            filter.Add(new Predicate <string> {
                Expression = (ev) => true
            });

            //Assert
            Assert.AreEqual("Collection_Elements", property);
            Assert.AreEqual(1, count);
        }
示例#4
0
        public void TestActiveEvents()
        {
            // Arrange
            string property  = "";
            int    count     = 0;
            var    filter    = new OrPredicate <string> ();
            var    predicate = new Predicate <string> {
                Expression = (ev) => true
            };

            filter.Add(predicate);
            filter.PropertyChanged += (sender, e) => {
                property = e.PropertyName;
                count++;
            };

            // Act
            predicate.Active = false;

            //Assert
            Assert.AreEqual("Active", property);
            Assert.AreEqual(1, count);
        }