예제 #1
0
        protected override void UpdateTeamsPredicates()
        {
            bool oldIgnoreEvents = ViewModel.Filters.IgnoreEvents;

            ViewModel.Filters.IgnoreEvents = true;
            ViewModel.TeamsPredicate.Clear();
            var teamsPredicates = new List <IPredicate <TimelineEventVM> > ();

            LMTimelineVM lmTimeline = (LMTimelineVM)ViewModel;
            LMTeamVM     homeTeamVM = (LMTeamVM)lmTimeline.HomeTeamTimelineVM.Team;
            LMTeamVM     awayTeamVM = (LMTeamVM)lmTimeline.AwayTeamTimelineVM.Team;

            teamsPredicates.Add(new Predicate {
                Name       = Catalog.GetString("No team / player tagged"),
                Expression = ev =>
                             (!(ev.Model as LMTimelineEvent).Teams.Any() &&
                              !(ev.Model as LMTimelineEvent).Players.Any())
            });

            foreach (var team in new LMTeamVM [] { homeTeamVM, awayTeamVM })
            {
                var playersPredicates = new List <IPredicate <TimelineEventVM> > ();
                var teamPredicate     = new OrPredicate <TimelineEventVM> {
                    Name = team.Name,
                };
                playersPredicates.Add(new Predicate {
                    Name       = Catalog.GetString("Team tagged"),
                    Expression = ev =>
                                 (ev.Model as LMTimelineEvent).Teams.Contains(team.Model)
                });
                foreach (var player in team)
                {
                    playersPredicates.Add(new Predicate {
                        Name       = player.Model.Name,
                        Expression = ev =>
                                     (ev.Model as LMTimelineEvent).Players.Contains(player.Model)
                    });
                }
                teamPredicate.AddRange(playersPredicates);
                teamsPredicates.Add(teamPredicate);
            }
            ViewModel.TeamsPredicate.AddRange(teamsPredicates);
            ViewModel.Filters.IgnoreEvents = oldIgnoreEvents;
            if (!ViewModel.Filters.IgnoreEvents)
            {
                ViewModel.Filters.EmitPredicateChanged();
            }
        }
예제 #2
0
        public async Task SetUp()
        {
            timelineVM = new LMTimelineVM(homeTeam, awayTeam);
            timelineVM.CreateTeamsTimelines(new List <TeamVM> {
                homeTeam, awayTeam
            });
            var dealer    = new DummyProjectDealer();
            var projectvm = new LMProjectVM {
                Model = Utils.CreateProject()
            };

            timelineVM.CreateEventTypeTimelines(projectvm.EventTypes);
            dealer.Project  = projectvm;
            dealer.Timeline = timelineVM;

            eventsFilterController.SetViewModel(dealer);

            CreateEvents();

            await eventsFilterController.Start();
        }