소스 검색

полостью сделан вывод и добавление матчей четвертьфинала

максим карбышев 3 년 전
부모
커밋
f1ee03c1ea

+ 14 - 2
CybersportTournament/AddWindows/AddMatchWindow.xaml.cs

@@ -1,5 +1,6 @@
 using ConnectionClass;
 using System;
+using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Windows;
@@ -14,6 +15,7 @@ namespace CybersportTournament.AddWindows
     public partial class AddMatchWindow : Window
     {
         static int TeamOneID, TeamTwoID;
+        List<int> teams;
         public AddMatchWindow()
         {
             InitializeComponent();
@@ -21,13 +23,22 @@ namespace CybersportTournament.AddWindows
             TeamTwoBox.ItemsSource = Connection.db.Teams.Select(item => item.Name).ToList();
             TournamentBox.ItemsSource = Connection.db.Tournaments.Select(item => item.Name).ToList();
         }
+        public AddMatchWindow(int TournamentID)
+        {
+            InitializeComponent();
+            teams = Connection.db.TeamsList.Where(item => item.IDTournament == TournamentID).Select(item => item.IDTeam).ToList();
+            TeamOneBox.ItemsSource = Connection.db.Teams.Where(item => !teams.Contains(item.ID)).Select(item => item.Name).ToList();
+            TeamTwoBox.ItemsSource = Connection.db.Teams.Where(item => !teams.Contains(item.ID)).Select(item => item.Name).ToList();
+            TournamentBox.ItemsSource = Connection.db.Tournaments.Where(item => item.ID == TournamentID).Select(item => item.Name).ToList();
+            TournamentBox.SelectedIndex = 0;
+        }
 
         private void TeamOneBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
         {
             #region Выбор команд
             TeamOneID = Connection.db.Teams.Where(item => item.Name == TeamOneBox.SelectedItem.ToString()).Select(item => item.ID).FirstOrDefault();
 
-            TeamTwoBox.ItemsSource = Connection.db.Teams.Where(item => item.ID != TeamOneID).Select(item => item.Name).ToList();
+            TeamTwoBox.ItemsSource = Connection.db.Teams.Where(item => item.ID != TeamOneID && !teams.Contains(item.ID)).Select(item => item.Name).ToList();
 
             if (Connection.db.Teams.Where(item => item.ID == TeamOneID).Select(item => item.Logo).SingleOrDefault() == null)
             {
@@ -43,7 +54,7 @@ namespace CybersportTournament.AddWindows
         {
             TeamTwoID = Connection.db.Teams.Where(item => item.Name == TeamTwoBox.SelectedItem.ToString()).Select(item => item.ID).FirstOrDefault();
 
-            TeamOneBox.ItemsSource = Connection.db.Teams.Where(item => item.ID != TeamTwoID).Select(item => item.Name).ToList();
+            TeamOneBox.ItemsSource = Connection.db.Teams.Where(item => item.ID != TeamTwoID && !teams.Contains(item.ID)).Select(item => item.Name).ToList();
 
             if (Connection.db.Teams.Where(item => item.ID == TeamTwoID).Select(item => item.Logo).SingleOrDefault() == null)
             {
@@ -120,6 +131,7 @@ namespace CybersportTournament.AddWindows
             Name += " " + Connection.db.Match.Where(item => item.ID == MatchID).Select(item => item.Time).FirstOrDefault();
 
             var matchUpdate = Connection.db.Match.Where(item => item.ID == MatchID).FirstOrDefault();
+            matchUpdate.Number = NumberTeamList;
             matchUpdate.Name = Name;
             Connection.db.SaveChanges();
 

+ 8 - 8
CybersportTournament/ElementsWindows/TournamentWindow.xaml

@@ -16,28 +16,28 @@
         <Label Name="PrizeFund" HorizontalAlignment="Right" Margin="0,158,183,0" VerticalAlignment="Top" Height="45" Width="450" FontSize="25" Foreground="#FF54E4FF"/>
         <Image Name="Logo" HorizontalAlignment="Left" Margin="984,34,0,0" Width="540" Height="93" VerticalAlignment="Top"/>
         <Label Name="FMatchFTeam" Content="" HorizontalAlignment="Left" Margin="78,270,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-               Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+               Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="FMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,0 75,0 75,30 150,30" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,292,0,0"/>
         <Label Name="FMatchSTeam" Content="" HorizontalAlignment="Left" Margin="78,330,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-               Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+               Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="FMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,30 75,30 75,0 150,0" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,322,0,0"/>
         <Label x:Name="SMatchFTeam" Content="" HorizontalAlignment="Left" Margin="78,390,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="SMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,0, 75,0 75,30, 150,30" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,412,0,0"/>
         <Label x:Name="SMatchSTeam" Content="" HorizontalAlignment="Left" Margin="78,450,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="SMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,30, 75,30 75,0, 150,0" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,442,0,0"/>
         <Label x:Name="TMatchFTeam" Content="" HorizontalAlignment="Left" Margin="78,510,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="TMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,0, 75,0 75,30, 150,30" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,532,0,0"/>
         <Label x:Name="TMatchSTeam" Content="" HorizontalAlignment="Left" Margin="78,570,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="TMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,30, 75,30 75,0 150,0" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,562,0,0"/>
         <Label x:Name="FoMatchFTeam" Content="" HorizontalAlignment="Left" Margin="78,630,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="FoMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,0, 75,0 75,30 150,30" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,652,0,0"/>
         <Label x:Name="FoMatchSTeam" Content="" HorizontalAlignment="Left" Margin="78,690,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
-            Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>
+            Foreground="#FF54E4FF" HorizontalContentAlignment="Center" MouseDoubleClick="FoMatchMouseDoubleClick"/>
         <Polyline Stroke="White" Points="0,30, 75,30 75,0 150,0" Height="30" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="329,682,0,0"/>
         <Label x:Name="FiMatchFTeam" Content="" HorizontalAlignment="Left" Margin="480,300,0,0" VerticalAlignment="Top" Width="250" Height="45" FontSize="25" 
             Foreground="#FF54E4FF" HorizontalContentAlignment="Center"/>

+ 76 - 4
CybersportTournament/ElementsWindows/TournamentWindow.xaml.cs

@@ -4,6 +4,8 @@ using System.Windows;
 using System.Windows.Media.Imaging;
 using ConnectionClass;
 using CybersportTournament.ListWindows;
+using CybersportTournament.AddWindows;
+using System.Windows.Controls;
 
 namespace CybersportTournament.ElementsWindows
 {
@@ -21,14 +23,16 @@ namespace CybersportTournament.ElementsWindows
             Game.Content = tournament.Games.Name;
             PrizeFund.Content = tournament.PrizeFund;
             Logo.Source = NewImage(tournament);
+            Label[,] labels = new Label[8, 2] { { FMatchFTeam, FMatchSTeam }, {SMatchFTeam, SMatchSTeam }, { TMatchFTeam, TMatchSTeam },
+                { FoMatchFTeam, FoMatchSTeam }, { FiMatchFTeam, FiMatchSTeam }, { SiMatchFTeam, SiMatchSTeam }, { SeMatchFTeam, SeMatchSTeam }, { Winner, Winner } };
             for (int i = 1; i < 8; i++)
             {
                 if (Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID).Select(item => item.NumberTeamList).Contains(i))
                 {
-                    FMatchFTeam.Content = Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID && item.NumberTeamList == i).Select(item => item.Teams.Name).FirstOrDefault();
+                    labels[i - 1, 0].Content = Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID && item.NumberTeamList == i).Select(item => item.Teams.Name).FirstOrDefault();
                     int firstTeamID = Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID && item.NumberTeamList == i).Select(item => item.IDTeam).FirstOrDefault();
-                    FMatchSTeam.Content = Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID && item.NumberTeamList == i
-                                                                        && item.IDTeam != firstTeamID).Select(item => item.Teams.Name).FirstOrDefault();
+                    labels[i - 1, 1].Content = Connection.db.TeamsList.Where(item => item.IDTournament == tournament.ID && item.NumberTeamList == i
+                                                                         && item.IDTeam != firstTeamID).Select(item => item.Teams.Name).FirstOrDefault();
 
                 }
             }
@@ -52,5 +56,73 @@ namespace CybersportTournament.ElementsWindows
             return image;
             #endregion
         }
+
+        private void FMatchMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            if (FMatchFTeam.Content.ToString() != "" && FMatchSTeam.Content.ToString() != "")
+            {
+                int MatchID = Connection.db.MatchList.Where(item => item.Tournaments.ID == tournament.ID && item.Match.Number == 1).Select(item => item.IDMatch).FirstOrDefault();
+                MatchWindow mw = new MatchWindow(MatchID);
+                mw.Show();
+                this.Close();
+            }
+            else if (FMatchFTeam.Content.ToString() == "" || FMatchSTeam.Content.ToString() == "")
+            {
+                AddMatchWindow amw = new AddMatchWindow(tournament.ID);
+                amw.Show();
+                this.Close();
+            }
+        }
+
+        private void SMatchMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            if (SMatchFTeam.Content.ToString() != "" && SMatchSTeam.Content.ToString() != "")
+            {
+                int MatchID = Connection.db.MatchList.Where(item => item.Tournaments.ID == tournament.ID && item.Match.Number == 2).Select(item => item.IDMatch).FirstOrDefault();
+                MatchWindow mw = new MatchWindow(MatchID);
+                mw.Show();
+                this.Close();
+            }
+            else if (SMatchFTeam.Content.ToString() == "" || SMatchSTeam.Content.ToString() == "")
+            {
+                AddMatchWindow amw = new AddMatchWindow(tournament.ID);
+                amw.Show();
+                this.Close();
+            }
+        }
+
+        private void TMatchMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            if (TMatchFTeam.Content.ToString() != "" && TMatchSTeam.Content.ToString() != "")
+            {
+                int MatchID = Connection.db.MatchList.Where(item => item.Tournaments.ID == tournament.ID && item.Match.Number == 3).Select(item => item.IDMatch).FirstOrDefault();
+                MatchWindow mw = new MatchWindow(MatchID);
+                mw.Show();
+                this.Close();
+            }
+            else if (TMatchFTeam.Content.ToString() == "" || TMatchSTeam.Content.ToString() == "")
+            {
+                AddMatchWindow amw = new AddMatchWindow(tournament.ID);
+                amw.Show();
+                this.Close();
+            }
+        }
+
+        private void FoMatchMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            if (FoMatchFTeam.Content.ToString() != "" && FoMatchFTeam.Content.ToString() != "")
+            {
+                int MatchID = Connection.db.MatchList.Where(item => item.Tournaments.ID == tournament.ID && item.Match.Number == 4).Select(item => item.IDMatch).FirstOrDefault();
+                MatchWindow mw = new MatchWindow(MatchID);
+                mw.Show();
+                this.Close();
+            }
+            else if (FoMatchFTeam.Content.ToString() == "" || FoMatchFTeam.Content.ToString() == "")
+            {
+                AddMatchWindow amw = new AddMatchWindow(tournament.ID);
+                amw.Show();
+                this.Close();
+            }
+        }
     }
-}
+}