The TournamentViewer is quite ready, just the score-handling is left to wire up
This commit is contained in:
@ -77,6 +77,7 @@
|
|||||||
<Compile Include="ViewModels\CreateTeamViewModel.cs" />
|
<Compile Include="ViewModels\CreateTeamViewModel.cs" />
|
||||||
<Compile Include="ViewModels\CreateTournamentViewModel.cs" />
|
<Compile Include="ViewModels\CreateTournamentViewModel.cs" />
|
||||||
<Compile Include="ViewModels\ShellViewModel.cs" />
|
<Compile Include="ViewModels\ShellViewModel.cs" />
|
||||||
|
<Compile Include="ViewModels\TournamentViewerViewModel.cs" />
|
||||||
<Compile Include="Views\CreatePersonView.xaml.cs">
|
<Compile Include="Views\CreatePersonView.xaml.cs">
|
||||||
<DependentUpon>CreatePersonView.xaml</DependentUpon>
|
<DependentUpon>CreatePersonView.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -96,6 +97,9 @@
|
|||||||
<DependentUpon>App.xaml</DependentUpon>
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Views\TournamentViewerView.xaml.cs">
|
||||||
|
<DependentUpon>TournamentViewerView.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Page Include="Views\CreatePersonView.xaml">
|
<Page Include="Views\CreatePersonView.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
@ -116,6 +120,10 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="Views\TournamentViewerView.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Properties\AssemblyInfo.cs">
|
<Compile Include="Properties\AssemblyInfo.cs">
|
||||||
|
|||||||
@ -29,13 +29,23 @@ namespace TrackerWPFUI.ViewModels
|
|||||||
ActivateItem(new CreateTournamentViewModel());
|
ActivateItem(new CreateTournamentViewModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void LoadTournament()
|
||||||
|
{
|
||||||
|
if (SelectedTournament !=null && !string.IsNullOrWhiteSpace(SelectedTournament.TournamentName))
|
||||||
|
{
|
||||||
|
ActivateItem(new TournamentViewerViewModel(SelectedTournament));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Handle(TournamentModel message)
|
public void Handle(TournamentModel message)
|
||||||
{
|
{
|
||||||
// Open the tournamentViewer to the given tournament
|
// Open the tournamentViewer to the given tournament
|
||||||
throw new NotImplementedException();
|
ExistingTournaments.Add(message);
|
||||||
|
SelectedTournament = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BindableCollection<TournamentModel> _existingTournaments;
|
private BindableCollection<TournamentModel> _existingTournaments;
|
||||||
|
private TournamentModel _SelectedTournament;
|
||||||
|
|
||||||
public BindableCollection<TournamentModel> ExistingTournaments
|
public BindableCollection<TournamentModel> ExistingTournaments
|
||||||
{
|
{
|
||||||
@ -43,7 +53,6 @@ namespace TrackerWPFUI.ViewModels
|
|||||||
set { _existingTournaments = value; }
|
set { _existingTournaments = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private TournamentModel _SelectedTournament;
|
|
||||||
|
|
||||||
public TournamentModel SelectedTournament
|
public TournamentModel SelectedTournament
|
||||||
{
|
{
|
||||||
@ -52,9 +61,8 @@ namespace TrackerWPFUI.ViewModels
|
|||||||
{
|
{
|
||||||
_SelectedTournament = value;
|
_SelectedTournament = value;
|
||||||
NotifyOfPropertyChange(() => SelectedTournament);
|
NotifyOfPropertyChange(() => SelectedTournament);
|
||||||
|
LoadTournament();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
206
TrackerWPFUI/ViewModels/TournamentViewerViewModel.cs
Normal file
206
TrackerWPFUI/ViewModels/TournamentViewerViewModel.cs
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
using Caliburn.Micro;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TrackerLibrary.Models;
|
||||||
|
|
||||||
|
namespace TrackerWPFUI.ViewModels
|
||||||
|
{
|
||||||
|
public class TournamentViewerViewModel : Screen
|
||||||
|
{
|
||||||
|
public TournamentModel Tournament { get; set; }
|
||||||
|
|
||||||
|
private BindableCollection<int> _rounds = new BindableCollection<int>();
|
||||||
|
private BindableCollection<MatchupModel> _matchups = new BindableCollection<MatchupModel>();
|
||||||
|
private bool _unplayedOnly;
|
||||||
|
private string _teamOne;
|
||||||
|
private string _teamTwo;
|
||||||
|
private double _teamOneScore;
|
||||||
|
private double _teamTwoScore;
|
||||||
|
private MatchupModel _selectedMatchup;
|
||||||
|
private int _selectedRound = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public TournamentViewerViewModel(TournamentModel model)
|
||||||
|
{
|
||||||
|
Tournament = model;
|
||||||
|
LoadRounds();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int SelectedRound
|
||||||
|
{
|
||||||
|
get { return _selectedRound; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_selectedRound = value;
|
||||||
|
NotifyOfPropertyChange(() => SelectedRound);
|
||||||
|
LoadMatchups();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MatchupModel SelectedMatchup
|
||||||
|
{
|
||||||
|
get { return _selectedMatchup; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_selectedMatchup = value;
|
||||||
|
NotifyOfPropertyChange(() => SelectedMatchup);
|
||||||
|
LoadMatchup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public double TeamTwoScore
|
||||||
|
{
|
||||||
|
get { return _teamTwoScore; }
|
||||||
|
set { _teamTwoScore = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public double TeamOneScore
|
||||||
|
{
|
||||||
|
get { return _teamOneScore; }
|
||||||
|
set { _teamOneScore = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TeamTwo
|
||||||
|
{
|
||||||
|
get { return _teamTwo; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_teamTwo = value;
|
||||||
|
NotifyOfPropertyChange(() => TeamTwo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TeamOne
|
||||||
|
{
|
||||||
|
get { return _teamOne; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_teamOne = value;
|
||||||
|
NotifyOfPropertyChange(() => TeamOne);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UnplayedOnly
|
||||||
|
{
|
||||||
|
get { return _unplayedOnly; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_unplayedOnly = value;
|
||||||
|
NotifyOfPropertyChange(() => UnplayedOnly);
|
||||||
|
LoadMatchups();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableCollection<MatchupModel> Matchups
|
||||||
|
{
|
||||||
|
get { return _matchups; }
|
||||||
|
set { _matchups = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BindableCollection<int> Rounds
|
||||||
|
{
|
||||||
|
get { return _rounds; }
|
||||||
|
set { _rounds = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void LoadRounds()
|
||||||
|
{
|
||||||
|
Rounds.Clear();
|
||||||
|
|
||||||
|
Rounds.Add(1);
|
||||||
|
int currRound = 1;
|
||||||
|
foreach (List<MatchupModel> matchups in Tournament.Rounds)
|
||||||
|
{
|
||||||
|
if (matchups.First().MatchupRound > currRound)
|
||||||
|
{
|
||||||
|
currRound = matchups.First().MatchupRound;
|
||||||
|
Rounds.Add(currRound);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SelectedRound = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadMatchups()
|
||||||
|
{
|
||||||
|
foreach (List<MatchupModel> matchups in Tournament.Rounds)
|
||||||
|
{
|
||||||
|
if (matchups.First().MatchupRound == SelectedRound)
|
||||||
|
{
|
||||||
|
//loading = true;
|
||||||
|
Matchups.Clear();
|
||||||
|
foreach (MatchupModel mm in matchups)
|
||||||
|
{
|
||||||
|
if (mm.Winner == null || !UnplayedOnly)
|
||||||
|
{
|
||||||
|
Matchups.Add(mm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//loading = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Matchups.Count > 0)
|
||||||
|
{
|
||||||
|
SelectedMatchup = Matchups.First();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadMatchup()
|
||||||
|
{
|
||||||
|
//if (!loading)
|
||||||
|
//{
|
||||||
|
if (SelectedMatchup == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < SelectedMatchup.Entries.Count; i++)
|
||||||
|
{
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
if (SelectedMatchup.Entries[0].TeamCompeting != null)
|
||||||
|
{
|
||||||
|
TeamOne = SelectedMatchup.Entries[0].TeamCompeting.TeamName;
|
||||||
|
TeamOneScore = SelectedMatchup.Entries[0].Score;
|
||||||
|
|
||||||
|
TeamTwo = "<bye>";
|
||||||
|
TeamTwoScore = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TeamOne = "Not Yet Set";
|
||||||
|
TeamOneScore = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == 1)
|
||||||
|
{
|
||||||
|
if (SelectedMatchup.Entries[1].TeamCompeting != null)
|
||||||
|
{
|
||||||
|
TeamTwo = SelectedMatchup.Entries[1].TeamCompeting.TeamName;
|
||||||
|
TeamTwoScore = SelectedMatchup.Entries[1].Score;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TeamTwo = "Not Yet Set";
|
||||||
|
TeamTwoScore = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
68
TrackerWPFUI/Views/TournamentViewerView.xaml
Normal file
68
TrackerWPFUI/Views/TournamentViewerView.xaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<UserControl x:Class="TrackerWPFUI.Views.TournamentViewerView"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:TrackerWPFUI.Views"
|
||||||
|
mc:Ignorable="d" Background="White"
|
||||||
|
d:DesignHeight="300" d:DesignWidth="300">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="auto"/>
|
||||||
|
<ColumnDefinition Width="auto"/>
|
||||||
|
<ColumnDefinition Width="auto"/>
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="auto"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<!--Row 0-->
|
||||||
|
<TextBlock x:Name="TournamentName" FontSize="28" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"/>
|
||||||
|
<!--Row 1-->
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" >
|
||||||
|
<TextBlock Margin="0 10 5 0" >Round</TextBlock>
|
||||||
|
<ComboBox x:Name="Rounds" Margin="5 10 0 0"
|
||||||
|
SelectedItem="{Binding Path=SelectedRound, Mode=TwoWay}"/>
|
||||||
|
</StackPanel>
|
||||||
|
<!--Row 2-->
|
||||||
|
<CheckBox x:Name="UnplayedOnly" Grid.Row="2" Grid.Column="0" Margin="0 10 0 0">
|
||||||
|
Unplayed Only
|
||||||
|
</CheckBox>
|
||||||
|
<!--Row 3-->
|
||||||
|
<ListBox x:Name="Matchups" Grid.Row="3" Grid.Column="0"
|
||||||
|
DisplayMemberPath="DisplayName" Grid.RowSpan="3"
|
||||||
|
Margin="0 0 5 0"
|
||||||
|
SelectedItem="{Binding Path=SelectedMatchup , Mode=TwoWay}"/>
|
||||||
|
<StackPanel Grid.Column="1" Grid.Row="3" Orientation="Vertical" >
|
||||||
|
<TextBlock x:Name="TeamOne" Margin="0 0 0 5"/>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Margin="0 0 5 0">Score</TextBlock>
|
||||||
|
<TextBox x:Name="TeamOneScore" MinWidth="50"/>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
<!--Row 4-->
|
||||||
|
<TextBlock Margin="0 10 0 10" Grid.Row="4" Grid.Column="1"
|
||||||
|
HorizontalAlignment="Center">
|
||||||
|
- VS -
|
||||||
|
</TextBlock>
|
||||||
|
<Button x:Name="ScoreMatch" Grid.Row="4" Grid.Column="2"
|
||||||
|
Margin="10 0 0 0" Padding="15 5" >
|
||||||
|
Score
|
||||||
|
</Button>
|
||||||
|
<!--Row 5-->
|
||||||
|
<StackPanel Grid.Column="1" Grid.Row="5" Orientation="Vertical" >
|
||||||
|
<TextBlock x:Name="TeamTwo" Margin="0 0 0 5"/>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Margin="0 0 5 0">Score</TextBlock>
|
||||||
|
<TextBox x:Name="TeamTwoScore" MinWidth="50"/>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
28
TrackerWPFUI/Views/TournamentViewerView.xaml.cs
Normal file
28
TrackerWPFUI/Views/TournamentViewerView.xaml.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace TrackerWPFUI.Views
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaction logic for TournamentViewerView.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class TournamentViewerView : UserControl
|
||||||
|
{
|
||||||
|
public TournamentViewerView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user