From 01b79047cd6607db6ffb1b4315af7c022c13858b Mon Sep 17 00:00:00 2001
From: Michal Cikatricis <xcikatr@mail.muni.cz>
Date: Mon, 7 Jun 2021 19:47:11 +0200
Subject: [PATCH] reworked OnParticipantSubmitted event

---
 .../DesignTimeBuild/.dtbcache.v2              | Bin 73135 -> 73414 bytes
 .vs/TournamentManager/v16/.suo                | Bin 41472 -> 41472 bytes
 ...amentManager.csprojAssemblyReference.cache | Bin 102912 -> 102912 bytes
 src/AddEntrantControl.cs                      |  10 +-
 src/GroupControl.cs                           |   2 +-
 src/ManageTournamentForm.cs                   |  97 +++++++++++-------
 src/ParticipantAddedEventArgs.cs              |  14 +++
 src/TournamentData.cs                         |  12 +++
 8 files changed, 93 insertions(+), 42 deletions(-)
 create mode 100644 src/ParticipantAddedEventArgs.cs
 create mode 100644 src/TournamentData.cs

diff --git a/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2 b/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2
index e8e73d6227136f7bddc4bc618f9e9c0060654904..14abc66a026db82af534a2a836c1efea4dfa1f23 100644
GIT binary patch
delta 1281
zcmb`E*-sNu6vppND^U}pNMunXpgw4fjb&-64~i5tJW!0SBqV*{cILKDoX(J0j69X_
zq|p~LFa7~8xS}@3C@v_(#JKPK?xRXk62T|GTNaDUn@xT_bI&>7Ip3Y>?Q>td=oUYU
z-C}5yuQD#hsh?F=#b|X!rH}f(zBRJ1Dpp-pS;43*S5qm#ymAc-NZy$2_p`Xa!b_>_
z4@j&g9wS9{wxU|yy%Fc#zE#ektH9YH6l7yUD4t{3nx!O}q-${{;p`O}(N*Gn5!Pp8
zck@E0O$@lg@^+_33@yoTQY1q+^|<8;HAFl}lbIfi8VP2ZM03hr>TFddZp*M)_E?+U
z**4@B7C51y!iD(}-8M9uWSZ4PHJV@saeHJ)TA^*l+SXJ@aBXz6p(hNQEZeB4%q&~6
zv&OeFI<>j1MKNuvmW3@_R`h7a8gC#P)RReDQ>>0?Q<z^@js|VRz?Nv8qWzM3c%QC$
zCW<Z0FclmpFR%rxQ~!B4DV;L@_w8g^P*+tZSzFs9dOe+CvEVkA?whguQ)-E6NYP-d
z(PGIk<1I{X*nvxJFcPLmGRcB$T~D^#5b2s_=qgW-%ciI6nW-c+X7GAZj%?bz0$$+n
zJcKW_QBUvsY6^?9)0(IyZ42A6q+;coaK3+QC@trz=Js}7gEjLHqfX7px>VNbW|ej{
z$K$^{{VkpAbU7bAQ6IPPx7RQ~rz>JG#_w1-EtkhwNS9f<Yoy%m42%}%ofZj6i%$7i
zq30YP=Mh5ABOU{N;5aw|dcjF>3jC6+=8_UfE+Ae6m%wGv54ijaxC#cqprej0O5MQI
zO>hR>0=K~(a2MPI_rctWi4XA1r#u9F!gcTnJO)p|Q;@5BhVyeEK+k)4e1Ygf<XY@Z
zWd%I(ay&s^A?D%y8j&x119<aWz=zL5jT`xwiAe)!A@A__9`MB<cmltj%LvJku8fco
pGp<aU{@7D0jGp~mBJ{hK4(}IhhYx^*;1K8mhrtnWRIKgn{0Xo(npFS*

delta 1072
zcma*k$xjne90%~3X{ms$itLM34<4ir?F=JclpqH}K-9)SLPEyrOsSTcW@a#QFjNmF
z9$^mp2e>OSu_{7EafxwP+?RtFj~-qGP0)+qM_Y}?ZIVx4e(!zXo8Rl)nsT2_y15n1
z2-n#sH}VaFAn_9K7Zg#^b~H(fze(gn4T2aF#gL>ayw;$G0(?l6q)<Q<c%c!c;FtV?
zfV7TTyGgYoVO=%14(fJfKy4d{Mb!aSw`DtG=p%=M4)0pyPiK4~HD>vCT87T73L1l^
zF4JU(tjl55#A52Cg_P6A)|UP>!(^p)_Be#=ar)dnY`-&;U+%=oN@o{WT9IjF+h8na
zn6}TB&9G`)OiLyuq-T1WnvRHK8kV8izRuR5@0XoS_V>L9SiCGcoN3HV-BB@gEfP+3
zQ~#HH{3gEof8$JUaH0P$+3t6OpOb7iI@###o-ZHfnADSxp#+veDU?AuR6r$EK{eDs
zE!4qsV8ILYX$QjWCoJKJi@5iZtWkE9c$&!~;vv~2hvbsQBySc)J}DrDq=*z(H<Kl#
z7>i3Yi^ZA6cs!BJI{3j`Vwp;B>mK?US`6Jbji^ttn3^B6&X(DV#KgzFth0Tt*_oVM
zpI1N^yQ1>YW=%^Bee$}!M{v)ha14&a2{;L-;53|Z-p!ZQ7vTcuP|<V({<))r{ypcB
zyZ{$r94-OfJpq%Dgv&4mSKum4!!@`LH{d3WIUBxI4Hu?QyoVWj%6*_G(DVa%2#??~
z+=e@F7iQoI&<{d0bbN}@g^}(Z1DdDxvvmC&qX+d1jPzYEIi_<V{0apP=U|aG@~0*;
i4Isk2#?Kp|FMdlW@N_5IzaFk*$@u$9cG|_o<KF=4Su`sE

diff --git a/.vs/TournamentManager/v16/.suo b/.vs/TournamentManager/v16/.suo
index 879509338c32a17b7c9cd17b59ff62d149c10d69..fa0a33aac9d84d09ff11f04e77f6c36a0cb279c7 100644
GIT binary patch
delta 1776
zcmb_c|4&<06o2>i3lDjvG!<4@SH6{R4z~ANzGYPRpdDaAK*5YGz$j4A2!YV*AZUDz
zB%4|ic<0x}3C?LUO*UR)O#G!}{l&!y{$TtQOpJ+%=@RA->N%yAI!*8gZ~A%Xo^#K=
z=X1`vw`!7Cll-QS+3r7U<yjt7^5vGLAHOdBYV-%@<v31-Rep_a!z1%B^cFR;TkyK!
zZPPQj(g=?YXXU4H_6Lr9lm&=Bgn;-RZB~@DW=2_tC`PzoPq5og<E#+jNAw`<XzkdV
zbig;p_C_ZfXj=efcV-?$*^77{F@Ufj&LBX_KhXI83~{ya;S<E~{5$cy)5RsYo1)Ml
zvXqEG<X*^9H)cGt)E%gwLQtx9L^*;Ic?yv}Ci5ZQl?W<D&rxDRI<e9m$82I1Xv<BE
z&Zt70F69?7<2KG9P}p2boIXT_<POS@5VsK@L&$n-YqB0j3w{=9FV&hP#O!X<8Y(GR
zEn0(=I3n;lOAxgTS{OBiDw*8?Da*Pk9qQ;<-~V$gThSlc3V5wP2}#MP)kPuN5Z7FO
zc)-i1d5mv_RacNS^8#wa2Kdbt6scNrF1cuVT=NA)8`|jZ{6#t{4O-G#wqcaJp7M!I
zEAt<%H0Ai~(dIbYb^7_^@cOFjx@qSekH6gu0VYycse{KMI^voqDVoqG=Gs#p3{Cx~
z2XXA}jqkes4E)71L~G(&S+9_N3TbLYK$Cifle2)7??5E-=W@?aIh;`Bm;t5B2rI4q
zkaXOGXdCvkHsh6LBGOf**GL1lApwaor6>}5BfJ#(vh=4<Di1sF)-E6?NgOtC9Fa6}
zW)8+DszKUv!%VE3y#o^yRj3&?<$;AYq6?i)gK`1&k`WG-KJbTIV5PIq!f2%?<3%1?
zwULSNxET9umO%+1<&u7p-jplH3sNORB0VU&`<cV*ArTNjJ%v52M{C{jid%dQmH(6&
zDB}rGs=a5XUs+t7A6tHPCcM0~y#DC`OF55Apby3GG0l;_k(sh$D)dK0K{9;YkZRpO
zsmPsU74T5A!nIgENX~rte!N0gCsd}rhs9S_P~vsqoakg5a5vTuZ*ADn^Q=|&yxAR^
zkA$ydw3?SAy5dYQVr}^wYq%d%@`mO^tAn$%un_Z@TACYW58RH8!Nscr2u>M(z3c|*
zs@aZSPv!`nk>}vs4G+kp4SGXwpA(|Wex`3Xv{`(V7Y_b$^Y!RlKhqOk`NrB=&(w@3
z+}6@0d%e?5&5|TFg+eoJO;e%P_V#dSy1iX)<vA_5t#9_s6|hM-d})ur$>99J4f_(e
z%q?<r_ziIjc$ufU2y~5H);}K^Ho<o<2KAu&g<<zf!psDHZ}KABiSs*CJXH3S!1?!W
qun%7S%H|ytT)Nhw4Oq#WXP-g&)Vr`e?Z!X<U#iwmZm?nJ1LL2fM0~OU

delta 2385
zcmbuAe{54#6vy9v>l+<=9h>W5Klr%}9AhPYYv~WAP`at3)ctTXjL9FcZe?Q-1zTiH
zvM!pSrjqR)h+_CT5Cwn2(}{{$+?1aphz3OyNi_NoF&MWPf?<AdS?4n*{^MOfz4xAb
z?m6$Ad+uFyP>c?WJ@eVbBc2H&%b^+KG}A@-hO)fj3bP4<5T_2YlU=1@v06^WJRgjp
z(WUGn_7z1^x}-%A<<iZRIZFEIVj21=;6Y#nx3OUYdcM&-+NYsUrP?Xky(?ttE=)4+
zOkBpPm?(hG8(eN52IasH`1S`z`%3hSK^0g60>A|B1JxjtTcaB3PbTx2(lR%i#Ad`a
zog!it4VV?S2Qk&rX>%#tg)kB_sRTO_%D95IJdC(M-uUP9R-lu4N5{#~l6lG1=@>B1
z23cSdm<)J2rhz*aM@Gie=AucoZF(tNcqjg1DG>&rWc@2xF4bIVMn>KYtHgcprrz<V
zdRI)QhV<()-^mY&8|Mckbz<V94%u%K7=}5zH5!uZjT7~Pu&LT4WI)2dJ86Q3Oiy?1
zfnYD#2l~K%Z~(jv4uV&}tKbkg3|<4TgEzpN;4SbrI0B9W4ZH*11^wVXa16W;J^&wr
z<KQEJAnApotYrfj4}wp@XW$e#4bFhG;2by)J_i@T7vLhe1il290Z-W1qx}{1-+*tC
zz&)y5NtG$3(kBq`e08#uG%VK{c@}s}RC}BvrfQidi064s{INEil`g8KVU|si(k_-s
z!}y&*5lffEm5p@M>8AlvA@6DfZFB`>UIV<ylO|}$RU`9BvcTZ3nBuFA6m^%ISTR&f
zb?Q<(Ca|h>G80A0Mp!yUY;{InyGe^|JPljwj26A<1V!>kQo|61GiX!6CKl9&3#vpD
zyBngJI!$Q}CaGG-)GgA{(sGvg^sptSng>h?2eM9=hRjjsrASVfv=Cx5-ON5GOQQ<O
zuYppHEJDaHz?d+c6H`mVYym||>Wut~Bv+V+hD)kUY&>LzIyr^sMDzIbF_o{N@#9Ql
zpkCag%pxQ1dv8&8CO61mmE=0r6jf;3rmtarvqUww(l`!lNrx29t;Un!QS-`qN71~f
zS~4i>uQD$H8Y-#2^Hs?UoREg+#MHSJGIyrWw-(NiF}18h<}U+(49C2ATTupO0UFF-
zK%(uWNtlIIeV`J58*#un{{K207|+x)i|tJ2CqF~)Av`;#=2j$1N*^a{qDU?h%fCc_
z$F-qcnW-)WuPai1UjL&=(-TDs8)(`{umWXdRw&#OJKB22FssGsvIpHEo5f*mvRmw-
z;5^I9GR19~=WbDgEjD||p(vuD`uAx)YgeUfe>}7~iy0}>+{Gjsc09!b)X{Q_rBS5#
zf+_Kw>ciK<s{(9s0FL>a$BS{x?RD#)TXAUh!n2BRabA4OFW<*f4j)&12W}fK--_MX
zJ=CxG9$R_+$$s-syG~>L<1?Pr->)5eq89oBrL{TLHZMinqU3G$s_j0yzjY$6rx|!h
z`&{bT-b&u~N)mUtDBix6Dp!}`!kZsy4qEJXo897eI#*hh<|bQcWzcGMyUPs19#(OW
z6@Q&pm(O8$`dqxQZ>0!AQOFhyIhvXkOH+&0ZLvFD%@$Wk30Z<pm!l~daysTIZVCAb
zQpZj=?X^qnMPmNt)Y#*pp0zuWIQ9|*O^M~%mFtpf21%$$F4WS&CHbjygO8W60y23D
zXsgFV@m&RfTa{^&CtqYUu{u*6Q}T}aS}L+BRMTsw?;6uYX2!6dd#5#Op7#7=2gA;c
z?FICMKP`p($k@J$ehU;LK7ncr=Nqp5iig!uHD3+n&_Mkh@&=R%>xH1OT)0=L7akQN
z!g?(lh>xR7wSLVX?N1?ZeFH6OEM@{N?4F5W^ZOnawfOQlQ<rWqyBv!wR)@XJWeelk
z<^Ojjfvn3^T04IMU0w7ub=!-0{AWm6)<E9wcwbEH+bPnFwG-(CRcMVp2PI;$P$G$q
o4X3g9BIC-vu;8Y`WqZ-*vwrHH{4Du>8~$N$zqgxd-kovjFPvmR>i_@%

diff --git a/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache b/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache
index 00161d28bfa36275773cb5aeeabaddba6590f309..f94750e91f627e3ae7e8de71ee1c7ef20d9246b5 100644
GIT binary patch
delta 12504
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

delta 12608
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
Yxy()H+)zpV=gT^n%d+Sei`m8h0h!tFhyVZp

diff --git a/src/AddEntrantControl.cs b/src/AddEntrantControl.cs
index 06abf17..ec259b7 100644
--- a/src/AddEntrantControl.cs
+++ b/src/AddEntrantControl.cs
@@ -17,7 +17,13 @@ namespace TournamentManager
 
         public Participant NewParticipant { get; private set; }
 
-        public event EventHandler SubmitParticipantClicked;
+        public delegate void ParticipantAddedDelegate(object sender, ParticipantAddedEventArgs e);
+        
+        public event ParticipantAddedDelegate SubmitParticipantClicked;
+
+        protected void OnSubmitParticipantClicked(ParticipantAddedEventArgs e) =>
+            SubmitParticipantClicked?.Invoke(this, e);
+        
         public AddEntrantControl()
         {
             InitializeComponent();
@@ -51,7 +57,7 @@ namespace TournamentManager
                 Rating = int.TryParse(tbRating.Text, out int rating) ? rating : 0
             };
             
-            SubmitParticipantClicked?.Invoke(this, e);
+            OnSubmitParticipantClicked(new ParticipantAddedEventArgs(NewParticipant));
         }
 
         private void btnReset_Click(object sender, EventArgs e)
diff --git a/src/GroupControl.cs b/src/GroupControl.cs
index fd57822..898b63c 100644
--- a/src/GroupControl.cs
+++ b/src/GroupControl.cs
@@ -84,7 +84,7 @@ namespace TournamentManager.src
                 cbSecondOpponent.SelectedItem.ToString(), (firstScore, secondScore), index - 1));
         }
         
-        protected void OnOpponentsSelected()
+        private void OnOpponentsSelected()
         {
             ClearTextBoxes();
             if (cbFirstOpponent.SelectedItem == null || cbSecondOpponent.SelectedItem == null)
diff --git a/src/ManageTournamentForm.cs b/src/ManageTournamentForm.cs
index fbc7fc9..90ffc83 100644
--- a/src/ManageTournamentForm.cs
+++ b/src/ManageTournamentForm.cs
@@ -2,7 +2,9 @@
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Collections.Specialized;
+using System.IO;
 using System.Linq;
+using System.Text.Json;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -13,16 +15,36 @@ namespace TournamentManager
         private const string RemoveParticipantError = "Participant with this name is already signed in competition";
         private const string EditParticipantError = "Participant with this name is already signed in competition";
         private const string ErrorCaption = "Error";
-        private readonly ObservableCollection<Participant> _participants = new();
-        private List<Group> _groups;
-        private PlayOffTree _playOff;
+        private TournamentData _data;
+        private readonly string _path;
+
+        // private readonly ObservableCollection<Participant> _data.Participants = new();
+        // private List<Group> _data.Groups;
+        // private PlayOffTree _data.PlayOff;
         
         public ManageTournamentForm(string path)
         {
             InitializeComponent();
+            _path = path;
             
+            AsignEventHandlers();
+            AsignSaves();
+
+            foreach (var p in _data.Participants)
+            {
+                manageParticipantsControl.CbAddParticipant($"{p.FirstName} {p.Surname}");
+            }
+        }
+
+        private void AsignSaves()
+        {
+            enterantCntrl.SubmitParticipantClicked += OnSubmitParticipantClicked;
+
+        }
+
+        private void AsignEventHandlers()
+        {
             enterantCntrl.SubmitParticipantClicked += OnSubmitParticipantClicked;
-            _participants.CollectionChanged += HandleParticipantsChanged;
             manageParticipantsControl.ParticipantsModified += HandleOnParticipantRemovedClicked;
             computeControl.ComputeGroups += HandleOnComputeGroupsClicked;
             computeControl.ComputePlayOff += HandleOnComputePlayOffClicked;
@@ -32,37 +54,34 @@ namespace TournamentManager
             playOffControl.RoundSelected += HandleOnRoundSelected;
             playOffControl.MatchSelected += HandleOnMatchSelected;
             playOffControl.SubmitPlayOffMatchClicked += HandleOnSubmitPlayOffMatchClicked;
-            
-            foreach (var p in _participants)
+        }
+
+        private async Task Save()
+        {
+            var options = new JsonSerializerOptions
             {
-                manageParticipantsControl.CbAddParticipant($"{p.FirstName} {p.Surname}");
-            }
+                WriteIndented = true,
+            };
+            using var stream = File.Create(_path);
+            await JsonSerializer.SerializeAsync(stream, _data, options);
+            await stream.DisposeAsync();
+            
         }
         
         #region eventHandlers
         
-        private void OnSubmitParticipantClicked(object sender, EventArgs e)
+        private void OnSubmitParticipantClicked(object sender, ParticipantAddedEventArgs e)
         {
-            if (_participants.Any(x =>
+            if (_data.Participants.Any(x =>
                 x.FirstName.Equals(enterantCntrl.NewParticipant.FirstName) &&
                 x.Surname.Equals(enterantCntrl.NewParticipant.Surname))) 
             {
                 MessageBox.Show(RemoveParticipantError, ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 return;
             }
-            _participants.Add(enterantCntrl.NewParticipant);
+            _data.Participants.Add(enterantCntrl.NewParticipant);
             enterantCntrl.ResetControl();
-        }
-
-        private void HandleParticipantsChanged(object sender, NotifyCollectionChangedEventArgs e)
-        {
-            if (e.Action == NotifyCollectionChangedAction.Add)
-            {
-                foreach (Participant p in e.NewItems ?? new List<Participant>())
-                {
-                    manageParticipantsControl.CbAddParticipant($"{p.FirstName} {p.Surname}");
-                }
-            }
+            manageParticipantsControl.CbAddParticipant($"{e.Participant.FirstName} {e.Participant.Surname}");
         }
 
         private void HandleOnParticipantRemovedClicked(object sender, ParticipantsModifiedEventArgs e)
@@ -72,7 +91,7 @@ namespace TournamentManager
 
             var name = e.ParticipantName.Split();
 
-            _participants.Remove(_participants.FirstOrDefault(x => 
+            _data.Participants.Remove(_data.Participants.FirstOrDefault(x => 
                 x.FirstName.Equals(name[0]) && x.Surname.Equals(name[1])));
         }
         
@@ -89,15 +108,15 @@ namespace TournamentManager
         private void HandleOnComputeGroupsClicked(object sender, ComputeEventArgs e)
         {
             groupControl.ClearInputData();
-            var numberOfGroups = (_participants.Count - 1) / e.Amount + 1;
+            var numberOfGroups = (_data.Participants.Count - 1) / e.Amount + 1;
             var groupIndex = 0;
-            var orderedParticipants = _participants.OrderBy(x => x.Rating);
+            var orderedParticipants = _data.Participants.OrderBy(x => x.Rating);
 
             groupControl.AddGroups(numberOfGroups);
-            _groups = new List<Group>();
+            _data.Groups = new List<Group>();
             for (int i = 0; i < numberOfGroups; i++)
             {
-                _groups.Add(new Group());
+                _data.Groups.Add(new Group());
             }
             
             foreach (var participant in orderedParticipants)
@@ -107,10 +126,10 @@ namespace TournamentManager
                 {
                     groupIndex = 0;
                 }
-                _groups[groupIndex].Members.Add(participant);
+                _data.Groups[groupIndex].Members.Add(participant);
             }
 
-            foreach (var group in _groups)
+            foreach (var group in _data.Groups)
             {
                 var memberCount = group.Members.Count;
                 group.Matches = new int[memberCount, memberCount];
@@ -122,10 +141,10 @@ namespace TournamentManager
             playOffControl.ResetInput();
             try
             {
-                var toKeep = (int)Math.Round(((double)_participants.Count / (double)100) * (double)(100 - e.Amount), 0);
+                var toKeep = (int)Math.Round(((double)_data.Participants.Count / (double)100) * (double)(100 - e.Amount), 0);
                 var sortedParticipants = (await ComputeAllGroupOrders()).Take(toKeep).ToList();
-                _playOff = new PlayOffTree(sortedParticipants);
-                playOffControl.SetRounds(_playOff.Depth);
+                _data.PlayOff = new PlayOffTree(sortedParticipants);
+                playOffControl.SetRounds(_data.PlayOff.Depth);
             }
             catch (Exception ex)
             {
@@ -144,7 +163,7 @@ namespace TournamentManager
                 return;
             }
 
-            var groupMembers = _groups[result - 1].Members
+            var groupMembers = _data.Groups[result - 1].Members
                 .Select(x => $"{x.FirstName} {x.Surname}").ToArray();
             groupControl.AddToFirstOpponentList(groupMembers);
             groupControl.AddToSecondOpponentList(groupMembers);
@@ -158,7 +177,7 @@ namespace TournamentManager
                 return;
             }
 
-            var group = _groups[e.Index];
+            var group = _data.Groups[e.Index];
             var firstOpponent = group.ExtractGroupMember(e.FirstOpponent);
             var secondOpponent = group.ExtractGroupMember(e.SecondOpponent);
             
@@ -172,7 +191,7 @@ namespace TournamentManager
                 //TODO:ERROR MESSAGE
                 return;
             }
-            var group = _groups[e.Index];
+            var group = _data.Groups[e.Index];
             Func<string[], Participant> matchOpponent = x => group.Members
                 .FirstOrDefault(p => p.FirstName.Equals(x[0]) && p.Surname.Equals(x[1]));
             
@@ -189,7 +208,7 @@ namespace TournamentManager
             {
                 throw new Exception();
             }
-            var matches = _playOff.GetRoundMatches(round);
+            var matches = _data.PlayOff.GetRoundMatches(round);
             playOffControl.SetMatches(matches);
         }
         
@@ -200,14 +219,14 @@ namespace TournamentManager
                 throw new Exception();
             }
 
-            var match = _playOff.GetMatch(round, e.SelectedMatch);
+            var match = _data.PlayOff.GetMatch(round, e.SelectedMatch);
 
             playOffControl.SetMatch(match);
         }
         
         private void HandleOnSubmitPlayOffMatchClicked(object sender, MatchSubmittedEventArgs e)
         {
-            var matchNode = _playOff.GetMatchNode(e.FirstOpponent, e.SecondOpponent, e.Index);
+            var matchNode = _data.PlayOff.GetMatchNode(e.FirstOpponent, e.SecondOpponent, e.Index);
             matchNode.TreeMatch.Scores = e.Score;
 
             if (matchNode.IsRoot())
@@ -235,7 +254,7 @@ namespace TournamentManager
         {
             return Task.Factory.StartNew(() =>
             {
-                return _groups.AsParallel().SelectMany(x => ComputeGroupOrder(x))
+                return _data.Groups.AsParallel().SelectMany(x => ComputeGroupOrder(x))
                     .OrderByDescending(x => x.Item2)
                     .ThenByDescending(x => x.Item3)
                     .Select(x => x.Item1)
diff --git a/src/ParticipantAddedEventArgs.cs b/src/ParticipantAddedEventArgs.cs
new file mode 100644
index 0000000..eb4b32b
--- /dev/null
+++ b/src/ParticipantAddedEventArgs.cs
@@ -0,0 +1,14 @@
+using System;
+
+namespace TournamentManager
+{
+    public class ParticipantAddedEventArgs : EventArgs
+    {
+        public Participant Participant { get; }
+
+        public ParticipantAddedEventArgs(Participant participant)
+        {
+            Participant = participant;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/TournamentData.cs b/src/TournamentData.cs
new file mode 100644
index 0000000..361bd35
--- /dev/null
+++ b/src/TournamentData.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace TournamentManager
+{
+    public class TournamentData
+    {
+        public readonly ObservableCollection<Participant> Participants = new();
+        public List<Group> Groups { get; set; }
+        public PlayOffTree PlayOff { get; set; }
+    }
+}
\ No newline at end of file
-- 
GitLab