public SubstitutionsEditorVM() { SaveCommand = new AsyncCommand(Save); TeamTagger = new LMTeamTaggerVM(); TeamTagger.ShowSubstitutionButtons = false; InPlayer = new LMPlayerVM(); OutPlayer = new LMPlayerVM(); }
/// <summary> /// Method to click a LMPlayerVM /// </summary> /// <param name="player">Player.</param> /// <param name="modifier">Modifier.</param> public void PlayerClick(LMPlayerVM player, ButtonModifier modifier) { App.Current.EventsBroker.Publish(new TagPlayerEvent { Player = player, Team = GetTeam(player), Modifier = modifier, Sender = player }); }
public async Task ClickPlayer_FirstHomePlayer_PlayerTagged() { // Arrange await SetUpState(); LMPlayerVM clickedPlayer = (LMPlayerVM)viewModel.TeamTagger.HomeTeam.First(); // Act viewModel.TeamTagger.PlayerClick(clickedPlayer, ButtonModifier.None); // Assert Assert.AreEqual(1, viewModel.TeamTagger.HomeTeam.Selection.Count()); Assert.AreEqual(clickedPlayer, viewModel.TeamTagger.HomeTeam.Selection.First()); Assert.IsTrue(clickedPlayer.Tagged); }
public async Task ClickPlayer_AlreadyTagged_PlayerUntagged() { // Arrange await SetUpState(); LMPlayerVM clickedPlayer = (LMPlayerVM)viewModel.TeamTagger.HomeTeam.First(); viewModel.TeamTagger.PlayerClick(clickedPlayer, ButtonModifier.None); // Act viewModel.TeamTagger.PlayerClick(clickedPlayer, ButtonModifier.None); // Assert Assert.IsFalse(viewModel.TeamTagger.HomeTeam.Selection.Any()); Assert.IsFalse(clickedPlayer.Tagged); }
LMTeamVM GetTeam(LMPlayerVM player) { if (HomeTeam != null) { if (HomeTeam.ViewModels.Contains(player)) { return(HomeTeam); } } if (AwayTeam != null) { if (AwayTeam.ViewModels.Contains(player)) { return(AwayTeam); } } return(null); }
void EmitSubstitutionEvent(LMPlayerVM player1, LMPlayerVM player2, LMTeamVM team) { if (isAnalysis) { SubstitutionReason reason; var player1Model = player1.Model; var player2Model = player2.Model; if (team.BenchPlayersList.Contains(player1) && team.BenchPlayersList.Contains(player2)) { reason = SubstitutionReason.BenchPositionChange; } else if (!team.BenchPlayersList.Contains(player1) && !team.BenchPlayersList.Contains(player2)) { reason = SubstitutionReason.PositionChange; } else if (team.BenchPlayersList.Contains(player1)) { reason = SubstitutionReason.PlayersSubstitution; } else { player1Model = player2.Model; player2Model = player1.Model; reason = SubstitutionReason.PlayersSubstitution; } App.Current.EventsBroker.Publish(new PlayerSubstitutionEvent { Team = team.Model, Player1 = player1Model, Player2 = player2Model, SubstitutionReason = reason, Time = teamTagger.CurrentTime }); UpdateLineup(); } else { team.SubViewModel.ViewModels.Swap(player1, player2); ChangeLineUp(team); } ClearSelection(); }
void SwitchPlayers() { LMPlayerVM inOutPlayer = null; if (substitutionEditor.InPlayer.Tagged) { inOutPlayer = substitutionEditor.InPlayer; } else if (substitutionEditor.OutPlayer.Tagged) { inOutPlayer = substitutionEditor.OutPlayer; } if (inOutPlayer != null && taggedPlayer != null) { inOutPlayer.Tagged = false; taggedPlayer.Tagged = false; inOutPlayer.Model = taggedPlayer.Model; taggedPlayer = null; } }
void HandleViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) { if (!substitutionEditor.LineupMode) { if (e.PropertyName == "Tagged") { var player = sender as LMPlayerVM; if (player != null) { if (player.Tagged) { if (player == substitutionEditor.InPlayer) { substitutionEditor.OutPlayer.Tagged = false; } else if (player == substitutionEditor.OutPlayer) { substitutionEditor.InPlayer.Tagged = false; } else { taggedPlayer = player; } SwitchPlayers(); } else { if (player == taggedPlayer) { taggedPlayer = null; } } } } } }