From 0e740143f38c9224830249097e1c5598bbe2a0e1 Mon Sep 17 00:00:00 2001 From: Michal Cikatricis <xcikatr@mail.muni.cz> Date: Tue, 1 Jun 2021 17:30:34 +0200 Subject: [PATCH] WIP: group management --- .../DesignTimeBuild/.dtbcache.v2 | Bin 272 -> 73135 bytes .vs/TournamentManager/v16/.suo | Bin 33280 -> 44032 bytes TournamentManager.csproj.user | 3 + ...mentManager.csproj.CoreCompileInputs.cache | 2 +- ...rnamentManager.csproj.FileListAbsolute.txt | 2 + ...amentManager.csproj.GenerateResource.cache | Bin 2076 -> 2219 bytes ...amentManager.csprojAssemblyReference.cache | Bin 424 -> 424 bytes .../net5.0-windows/TournamentManager.dll | Bin 33280 -> 37376 bytes .../net5.0-windows/TournamentManager.pdb | Bin 20112 -> 21512 bytes ...mentManager.src.CalculateControl.resources | Bin 0 -> 180 bytes ...rnamentManager.src.ExportControl.resources | Bin 0 -> 180 bytes .../net5.0-windows/ref/TournamentManager.dll | Bin 8704 -> 9728 bytes ...TournamentManager.csproj.nuget.dgspec.json | 2 +- obj/TournamentManager.csproj.nuget.g.props | 5 +- obj/project.assets.json | 2 +- obj/project.nuget.cache | 2 +- obj/rider.project.restore.info | 2 +- src/CalculateControl.Designer.cs | 126 ++++++++++++++++++ src/CalculateControl.cs | 47 +++++++ src/CalculateControl.resx | 60 +++++++++ src/CalculateGroupsEventArgs.cs | 12 ++ src/CbItemSelectedEventArgs.cs | 12 ++ src/Group.cs | 6 +- src/GroupControl.Designer.cs | 103 +++++++------- src/GroupControl.cs | 69 ++++++++++ src/GroupControl.resx | 62 +-------- src/ManageTournamentForm.Designer.cs | 60 +++------ src/ManageTournamentForm.cs | 37 ++++- src/Match.cs | 10 ++ 29 files changed, 470 insertions(+), 154 deletions(-) create mode 100644 obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources create mode 100644 obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources create mode 100644 src/CalculateControl.Designer.cs create mode 100644 src/CalculateControl.cs create mode 100644 src/CalculateControl.resx create mode 100644 src/CalculateGroupsEventArgs.cs create mode 100644 src/CbItemSelectedEventArgs.cs create mode 100644 src/Match.cs diff --git a/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2 b/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2 index 7ea6d93c7cf94b40bf6de3e00371a34c2d9b775f..e5076c70ac9cda529afde7927fc1dff71499ceb4 100644 GIT binary patch literal 73135 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 P5BeJDhTTp&@4Wv5;qg^L delta 124 zcmZ3#n`HtM6C1-sCVxj0b4zn`gH)rWRMR9QGqc1*OVbq7B#X3E^F(vQG()2_bED)$ zgG7@QL!+d`RMQmWWCIfm0|QIr)MU#vQ*(xh$sd>;CfEOvP-A3(01(XzW%B{)4-8Eo P7(Xz5VE(|;(9i$?`Vk-B diff --git a/.vs/TournamentManager/v16/.suo b/.vs/TournamentManager/v16/.suo index 2aa9fa15e9c58f4b1ad0d70da046d7c428c48a90..99bee51a68bf15ba9fd68d62c8344795d85ad1c2 100644 GIT binary patch literal 44032 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 Bih%$C delta 3730 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 diff --git a/TournamentManager.csproj.user b/TournamentManager.csproj.user index bb8a556..d81df0b 100644 --- a/TournamentManager.csproj.user +++ b/TournamentManager.csproj.user @@ -4,6 +4,9 @@ <ShowAllFiles>false</ShowAllFiles> </PropertyGroup> <ItemGroup> + <Compile Update="src\CalculateControl.cs"> + <SubType>UserControl</SubType> + </Compile> <Compile Update="src\ExportControl.cs"> <SubType>UserControl</SubType> </Compile> diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache b/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache index ba67ddc..de3e3dc 100644 --- a/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -6e5ca88c712bf3b5a92f367155b7ffc624cd7a70 +6dbd88745d59fa151ec2b15eaaf1ea837c62dd6e diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt b/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt index 9cbe3b1..66ce1be 100644 --- a/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt +++ b/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt @@ -51,3 +51,5 @@ C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0 C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.pdb C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.genruntimeconfig.cache C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.GroupControl.resources +C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.ExportControl.resources +C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.CalculateControl.resources diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.GenerateResource.cache b/obj/Debug/net5.0-windows/TournamentManager.csproj.GenerateResource.cache index f2447ad0d2ed0b89a8b9586784d6572d2b64271a..e254cb66747a75cdef819599c1502b7666335de9 100644 GIT binary patch delta 1000 zcmZY7KWtJ#90zcY2h>N!_C%;q{z!$kD7Gb{NE&0bEu>XyNJDgJG=ySO3p{*K)4_-i z{ux}%)uqwJwTqL3yCxbPbTcvCoE(hN7)^}v_dUEQ=?%Z!<MZzB_wLKX{!RYmmX%!= zx2>6DZi~g@=%wOon&ri*QnkEVEww6BM!jVk)iJZuTyyLscI8XU^{i>sIzPF@bL&uh z7l8-s&KRYo>~gh|HO#*+^bz@+Wpi=1)-cQ#uxrnLaxa$7tiijCt8H_pvD)aO-9#MA z@|F6knA4ohEgso?x?>MPkU+e)4l<8;s)Ykyxec|jy}JSNMf0Zjsu$4Re5v+d`#wo@ z&UW&PqqY$?C@$E-EFiAiLM$kR7IF0Npfzss!Zy$KLp0ULP{vUv1h;$bA(|!yV_tE} zexscP;NlxMzdP))_jef!(-U6O52N7Lue^0${T+nuqbF%cXrjBQ+=+ksu@!<vl%-(^ z<!8Hae?1HvQkH=sm8HqKS1jBH?pHVoL?p?L!o5pTSX9|@7$W)lD`Bokizzz+LngUR z&DA+@SlLM!{$AscN6&qfjgBZwTiS%k?BBvsg)=nKJyfRi>#2nZnu#mR!4Pa_BRQ<g zFFc@Z7B)cTjrE=DgFNt{vePi+t*p&hLZQ4iB>rIKWx4Ye2vA=4S(@m6Dyd?i@4RdV zxk@X*2C3L%#bQG?gSe$Fzyegh#p2gA+02BpB27|ykm}arMW@W3<L`jMkv#@S&=?%; dVepK2){_vQd!kWvg~8DR2FH0A9GheG{sA_t#3TR! delta 767 zcmZY7K}#D!6bJB~-A%|ES9dkGaZR#Kny9f_3Dtv$NQsS9NkAkh)QiMbf+o>TEj<)+ zYV|5Fy+}{JdTBp^;-!Zc3bo)tC<PCmdKJ`5@x9Se#DV-XlOJ#2>`ZpdPsW$`GFyNT z@{re*B+2WCGdac@!BQ-y!=PfbCRkIfU^AjwbqjM@r@Wr2xTUAAQ+?|-U{8rL6LPA> zTHu!&mA$QSj8y?(s+DP@s!Vak$<3FX+o}inb6d6G&fTYnNP2d@SkAbW>mETUs$Hxd zwp5#0@KufUbcp(V)p666@@u!UlHwaOeAE#?T8JVHXKF5BXgH@~G+cd4o)DBg+qFJi zYJQB3<iGR3k)ut<!noq4{bY?87qzLax=j`lmLk(J7KSH&FmAT6XJkzn=ezr}i*c%Z zge(5cL7ZrGlH)syUbkz6QGvXnaf4*BJ4Ubdart}UYBP_84dX;>!8n}ycHJ;8Y=o>8 zV=P-An2ypj6T(KN8e#yKL))oNjlV^wz~?y8==Offzx6--WV(c<$><7ity|a&GP=XH zgN8T%!_+V-Y@95JF^~^6&*Em580!)ElCT}algQ^+`DUI7n<TR^P7}#@3g1kxuq+w< jANoIc&zz8%bgMK>I#C*6`a&@3i?cMm^7U#|Lc@Ov&dG~N diff --git a/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache b/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache index 480d75008485368cdf5c5f62d4027881bfeccf9f..548aebadef402014a6cfe8edc074acecb859d308 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO<9``{Y2zZ~!8L1VR7+ delta 14 VcmZ3%yn=ayKO@sR$H{?=;Q%BQ1cU$p diff --git a/obj/Debug/net5.0-windows/TournamentManager.dll b/obj/Debug/net5.0-windows/TournamentManager.dll index 00178bf05622154bc9922fe8a7df38df28008ccd..78fa5521844df9e3162bd1306b99a113c2fc37ea 100644 GIT binary patch literal 37376 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 literal 33280 zcmeHwdwg71b?!cAW{yUqhozA$*|D8Denz%z`TYuZVp+BmC4R+HOcD(CNE*wNNOR;f zBio8lkRYTah2TK*fRK`uhLTbqp%6%0An7lG2CjLu&|6v_36C~Fxj@USmtURxeQTd{ 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 diff --git a/obj/Debug/net5.0-windows/TournamentManager.pdb b/obj/Debug/net5.0-windows/TournamentManager.pdb index 9efe8c8148972fe962870c784266434fa82bb499..4821a48d2ebe34c5fa11a61df2481eae986fafe0 100644 GIT binary patch delta 4150 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 W<_9G8!clJ<btjAI3zo}sEdK#@C!yv5 delta 2884 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 diff --git a/obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources b/obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY<Q6CA7v*Fo=_rJy z78Pga=h>R*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources b/obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY<Q6CA7v*Fo=_rJy z78Pga=h>R*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/net5.0-windows/ref/TournamentManager.dll b/obj/Debug/net5.0-windows/ref/TournamentManager.dll index 7c4f2845e90bf8100d890eb42e7dc3e796fc884e..83052901726b04117b977803cd68016e9b3efa9a 100644 GIT binary patch delta 3704 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 delta 2757 zcmZXWX>3$g7>3{PE@!3#OlPK@u0x&DqN5ZAAsQlT3j`>rKugg^2*rjd3Y7|IjmsS) zHZIXfZVbjmB^ofU2*o8vjT&RDB!=h@jWOCkYN94C@s9+f@A+<TJL<IOx!?OOXS?U# zner9o6_4IO=dO1?IEu;71m<9dEC6chNJY-3-UBaeN`Kq~th0^*;E;cywPt1+m`VK- z1BI~F=?ME}U8-0^S0`I-cwFX5Q}~UXBgHY}oR-WbzrC3H<CZncj{miASKT|eJwBH8 zevu}eVF&iJn$3Zajh(<XIY8Ly#o>BW3d%{K?QY;_UQZd?y?bxjF?9VNTlID|;PKkl z*NgXPXRN)duX_crr>O6DsF&@$`8sO*p_Hp<pO7jVI4z4%M+eQ>Y<ad;w)t%BY-u+3 z7od@b&9{x?Bf&O<%@$gpodB@gv)X1<yMOuycPbY<-}}{QWSPNg^=x&Hx(0*pWz6~2 zv3yziiSh#VuU7jp%?w6(N#U@!))+kK|Lz$yI(C2oW9>Dt+@M^<$r>zVP6{2q&0nfH z_leEPIF<?J?ds2azw6w$>%@f%60Z15Z^XY;ZQ+Vu3(Sb$&ow7BX#5d>3%4dxTd2CJ zQW~q7jLm>8JR-I(%|F}eVfNCE?4&ADZ9@~PHTIlqV@=3u-3hI0LXE~A_kt&IDeq4t zN4-epHTWmh7PO#2)iI5=pjlPPk7BJTO9nqO*3HazxUCu7!Szlm#_VD5=AEAlhtuB9 z9ofa_;A~aj3AfbB^RTJ>l)pqam0wnlE8kLnrd&@NGlZqgxyZkqJg6Kp*1iUoT}mP2 z%)Mqg{fFG;Vz5Wp1MX5DGplHS?k<(U;7xX6FfMD!_l-@u6_$e)LoSw8>}UzeGFc}V zVH<j-4(H-(GKH=5mu07{@3c32H2IX-&ASw<4sTzDT1Dl=v7ljshs}*8PVx}N>O;IQ zcSx*8lYhBo@#0L@W%z7FLqwT=Ma=N1P7be`vD%L_*e{8xy1))mRgr4Ant0w%%0n`( z)=7C<vC~KYr3_zK(*sVcXlhfj<X2q8tm({vtB+-r8mrM{CkISVr*gfqiZZL?Sn^dI z<WY;KJx-OKRQvHAo|If1)7`F#6&^N0hG#!2j5@82gSy@MSm`FlD$1;@h#A!XN7-}W zVw82yO1%|SAIW^46Z^u8R7su>WLmb!F=?I*Muml`)cNv;v`ndzyeq{iW$WxKRq%v6 z&2hDVQbu-$51(Mzx9`=%lm5WE2Ki(<c$*YNssAso>^dqgSL9a?b3I?j4(c`9#vvV8 zk6=_;8Rb+0hF5AJnwPa**fMXbtO^sp@a<-wltwbe$IjXd$qbe#yOiC^4a$DyHsucG zu<`-Y@FaOShYXU~%*#wXL}u^`S&MJU24p0OBAUr|6v-0ik{vjYT!0J6#aK)()tpYv z*{Sw!+C}Uk&*xX!7i0}4$Y%UawyA#}lFs>96yP#mE<qo;90TN9>>_*Bf30#5BlO%v zc50^s%87_#hk;|cTsf$OYdr(Xva;w|kHZ^L%{>RM^18_22W+GiZij;^Zv8C&N=WnN zk<l;WXUw?0kKU)`8}b?1E7tzTwOpaLjV4*`u*TJ^@S5amJ$ee-bAr7(95|s_Rb-w! z<Dg*^2Xy%LPz|qa4@u=`geR5%Q=dE@(S%B03)b?)fZuKoH`(y!rP+0L*p)5G#o>+F z=2`tW@7sIB)`b^h<-Vc8@JO~4ex3a!JdwL+th?qa36IyF4DZdq8}`)ogvaYPhx6*| z!~Xh{;jWs-u&?2)@acvPVOwMC*}#8)V!<nlB;6v!r;*KCIX2XIp#%ljWINclyC%1T zZFR!rb5}aa^h{nixXENb*C%P$%uahn<chXD*JaBc_Leq9M+&)Z3}p+}PG<|6u~FIX z+i*jo=;VfT`=ZEjRMMU*db#03F4xY0S7Og@327SHLil>~v9Mey<bLg$+D@c;X?GrI bt#i)wjD1un$XL4NwC@xa>5s<)3ljeTLO7aa diff --git a/obj/TournamentManager.csproj.nuget.dgspec.json b/obj/TournamentManager.csproj.nuget.dgspec.json index e77d8e9..8193c42 100644 --- a/obj/TournamentManager.csproj.nuget.dgspec.json +++ b/obj/TournamentManager.csproj.nuget.dgspec.json @@ -22,7 +22,7 @@ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ - "net5.0-windows" + "net5.0-windows7.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, diff --git a/obj/TournamentManager.csproj.nuget.g.props b/obj/TournamentManager.csproj.nuget.g.props index 4411bfa..fd44c97 100644 --- a/obj/TournamentManager.csproj.nuget.g.props +++ b/obj/TournamentManager.csproj.nuget.g.props @@ -7,10 +7,11 @@ <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\micha\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> - <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.0</NuGetToolVersion> + <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion> </PropertyGroup> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> - <SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" /> + <SourceRoot Include="C:\Users\micha\.nuget\packages\" /> + <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" /> </ItemGroup> <PropertyGroup> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> diff --git a/obj/project.assets.json b/obj/project.assets.json index 9e36234..ee56346 100644 --- a/obj/project.assets.json +++ b/obj/project.assets.json @@ -74,7 +74,7 @@ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ - "net5.0-windows" + "net5.0-windows7.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache index b2ac104..f18c7ee 100644 --- a/obj/project.nuget.cache +++ b/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "H71bVF2tvvTKiX1pmF6aHb9K3KX+isneTQJ5VfOpVIgT/zpQhwsdigl9to5pbHKJjGW9eAmRAA+cQgirv1ofvA==", + "dgSpecHash": "umcWTwWm5FWSLXrCLi1hAiSKMk34e+8HmDyYsi0ix1KwxZS3E/m1Qv9UliO6bACM5E/u5fBHvrSo9PIkJD0wTA==", "success": true, "projectFilePath": "C:\\Users\\micha\\School\\RiderProjects\\c-sharp-semestral-project-1\\TournamentManager.csproj", "expectedPackageFiles": [ diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info index f365a93..c114ea2 100644 --- a/obj/rider.project.restore.info +++ b/obj/rider.project.restore.info @@ -1 +1 @@ -16225451119597750 \ No newline at end of file +16225471957581258 \ No newline at end of file diff --git a/src/CalculateControl.Designer.cs b/src/CalculateControl.Designer.cs new file mode 100644 index 0000000..e7c195f --- /dev/null +++ b/src/CalculateControl.Designer.cs @@ -0,0 +1,126 @@ + +namespace TournamentManager.src +{ + partial class CalculateControl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.btnGroups = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.cbGroupSize = new System.Windows.Forms.ComboBox(); + this.btnPlayOff = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.cbEliminate = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnGroups + // + this.btnGroups.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.btnGroups.Location = new System.Drawing.Point(0, 0); + this.btnGroups.Name = "btnGroups"; + this.btnGroups.Size = new System.Drawing.Size(200, 57); + this.btnGroups.TabIndex = 0; + this.btnGroups.Text = "Calculate Groups"; + this.btnGroups.UseVisualStyleBackColor = true; + this.btnGroups.Click += new System.EventHandler(this.btnGroups_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label1.Location = new System.Drawing.Point(0, 60); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(78, 21); + this.label1.TabIndex = 1; + this.label1.Text = "Max Size:"; + // + // cbGroupSize + // + this.cbGroupSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupSize.FormattingEnabled = true; + this.cbGroupSize.Location = new System.Drawing.Point(84, 60); + this.cbGroupSize.Name = "cbGroupSize"; + this.cbGroupSize.Size = new System.Drawing.Size(80, 23); + this.cbGroupSize.TabIndex = 2; + // + // btnPlayOff + // + this.btnPlayOff.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.btnPlayOff.Location = new System.Drawing.Point(290, 0); + this.btnPlayOff.Name = "btnPlayOff"; + this.btnPlayOff.Size = new System.Drawing.Size(200, 57); + this.btnPlayOff.TabIndex = 3; + this.btnPlayOff.Text = "Calculate PlayOff"; + this.btnPlayOff.UseVisualStyleBackColor = true; + this.btnPlayOff.Click += new System.EventHandler(this.btnPlayOff_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label2.Location = new System.Drawing.Point(286, 60); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(118, 21); + this.label2.TabIndex = 4; + this.label2.Text = "% to eliminate:"; + // + // cbEliminate + // + this.cbEliminate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbEliminate.FormattingEnabled = true; + this.cbEliminate.Location = new System.Drawing.Point(410, 60); + this.cbEliminate.Name = "cbEliminate"; + this.cbEliminate.Size = new System.Drawing.Size(80, 23); + this.cbEliminate.TabIndex = 5; + // + // CalculateControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.cbEliminate); + this.Controls.Add(this.label2); + this.Controls.Add(this.btnPlayOff); + this.Controls.Add(this.cbGroupSize); + this.Controls.Add(this.label1); + this.Controls.Add(this.btnGroups); + this.Name = "CalculateControl"; + this.Size = new System.Drawing.Size(490, 92); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnGroups; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox cbGroupSize; + private System.Windows.Forms.Button btnPlayOff; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox cbEliminate; + } +} diff --git a/src/CalculateControl.cs b/src/CalculateControl.cs new file mode 100644 index 0000000..f8f1bd7 --- /dev/null +++ b/src/CalculateControl.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TournamentManager.src +{ + public partial class CalculateControl : UserControl + { + public event CalculateGroupsEventArgsDelegate CalculateGroups; + + public delegate void CalculateGroupsEventArgsDelegate(object sender, CalculateGroupsEventArgs e); + protected void OnCalculateGroups(CalculateGroupsEventArgs args) => CalculateGroups?.Invoke(this, args); + + public CalculateControl() + { + InitializeComponent(); + Func<int, int, int, IEnumerable<string> > createRange = (x, y, z) => + Enumerable.Range(x, y).Select(n => (n*z).ToString()); + cbGroupSize.Items.AddRange( (string[])createRange(4, 4, 1) + .ToArray() ); + cbEliminate.Items.AddRange( (string[])createRange(0, 5, 10) + .ToArray() ); + } + + private void btnGroups_Click(object sender, EventArgs e) + { + if (cbGroupSize.SelectedItem == null) + { + //TODO: throw some message + return; + } + OnCalculateGroups(new CalculateGroupsEventArgs(int.Parse(cbGroupSize.SelectedItem.ToString()!))); + } + + private void btnPlayOff_Click(object sender, EventArgs e) + { + //TODO: Calculate playoff + } + } +} diff --git a/src/CalculateControl.resx b/src/CalculateControl.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/src/CalculateControl.resx @@ -0,0 +1,60 @@ +<root> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/src/CalculateGroupsEventArgs.cs b/src/CalculateGroupsEventArgs.cs new file mode 100644 index 0000000..2a16a29 --- /dev/null +++ b/src/CalculateGroupsEventArgs.cs @@ -0,0 +1,12 @@ +namespace TournamentManager +{ + public class CalculateGroupsEventArgs + { + public int GroupSize { get; } + + public CalculateGroupsEventArgs(int groupSize) + { + GroupSize = groupSize; + } + } +} \ No newline at end of file diff --git a/src/CbItemSelectedEventArgs.cs b/src/CbItemSelectedEventArgs.cs new file mode 100644 index 0000000..2340e71 --- /dev/null +++ b/src/CbItemSelectedEventArgs.cs @@ -0,0 +1,12 @@ +namespace TournamentManager +{ + public class CbItemSelectedEventArgs + { + public string ItemName { get; } + + public CbItemSelectedEventArgs(string itemName) + { + ItemName = itemName; + } + } +} \ No newline at end of file diff --git a/src/Group.cs b/src/Group.cs index e3b61bb..a3d1c75 100644 --- a/src/Group.cs +++ b/src/Group.cs @@ -1,9 +1,13 @@ -using System.Runtime.Serialization; +using System.Collections.Generic; +using System.Runtime.Serialization; namespace TournamentManager { public class Group : ISerializable { + public List<Participant> Members { get; set; } + public List<Match> Matches { get; set; } + public void GetObjectData(SerializationInfo info, StreamingContext context) { throw new System.NotImplementedException(); diff --git a/src/GroupControl.Designer.cs b/src/GroupControl.Designer.cs index 3e4cc76..4816a30 100644 --- a/src/GroupControl.Designer.cs +++ b/src/GroupControl.Designer.cs @@ -30,10 +30,10 @@ namespace TournamentManager.src private void InitializeComponent() { this.cbGroup = new System.Windows.Forms.ComboBox(); - this.cbParticipant1 = new System.Windows.Forms.ComboBox(); - this.cbParticipant2 = new System.Windows.Forms.ComboBox(); - this.tbParticipant2 = new System.Windows.Forms.TextBox(); - this.tbParticipant1 = new System.Windows.Forms.TextBox(); + this.cbFirstOpponent = new System.Windows.Forms.ComboBox(); + this.cbSecondOpponent = new System.Windows.Forms.ComboBox(); + this.tbSecondOpponentScore = new System.Windows.Forms.TextBox(); + this.tbFirstOpponentScore = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.btnSubmit = new System.Windows.Forms.Button(); @@ -42,46 +42,55 @@ namespace TournamentManager.src // cbGroup // this.cbGroup.FormattingEnabled = true; - this.cbGroup.Location = new System.Drawing.Point(53, 8); + this.cbGroup.Location = new System.Drawing.Point(62, 9); + this.cbGroup.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.cbGroup.Name = "cbGroup"; - this.cbGroup.Size = new System.Drawing.Size(128, 21); + this.cbGroup.Size = new System.Drawing.Size(149, 23); this.cbGroup.TabIndex = 0; + this.cbGroup.SelectedIndexChanged += new System.EventHandler(this.cbGroup_SelectedIndexChanged); // - // cbParticipant1 + // cbFirstOpponent // - this.cbParticipant1.FormattingEnabled = true; - this.cbParticipant1.Location = new System.Drawing.Point(0, 42); - this.cbParticipant1.Name = "cbParticipant1"; - this.cbParticipant1.Size = new System.Drawing.Size(115, 21); - this.cbParticipant1.TabIndex = 1; + this.cbFirstOpponent.FormattingEnabled = true; + this.cbFirstOpponent.Location = new System.Drawing.Point(0, 48); + this.cbFirstOpponent.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.cbFirstOpponent.Name = "cbFirstOpponent"; + this.cbFirstOpponent.Size = new System.Drawing.Size(134, 23); + this.cbFirstOpponent.TabIndex = 1; + this.cbFirstOpponent.SelectedIndexChanged += new System.EventHandler(this.cbFirstOpponent_SelectedIndexChanged); // - // cbParticipant2 + // cbSecondOpponent // - this.cbParticipant2.FormattingEnabled = true; - this.cbParticipant2.Location = new System.Drawing.Point(303, 42); - this.cbParticipant2.Name = "cbParticipant2"; - this.cbParticipant2.Size = new System.Drawing.Size(118, 21); - this.cbParticipant2.TabIndex = 2; + this.cbSecondOpponent.FormattingEnabled = true; + this.cbSecondOpponent.Location = new System.Drawing.Point(354, 48); + this.cbSecondOpponent.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.cbSecondOpponent.Name = "cbSecondOpponent"; + this.cbSecondOpponent.Size = new System.Drawing.Size(137, 23); + this.cbSecondOpponent.TabIndex = 2; + this.cbSecondOpponent.SelectedIndexChanged += new System.EventHandler(this.cbSecondOpponent_SelectedIndexChanged); // - // tbParticipant2 + // tbSecondOpponentScore // - this.tbParticipant2.Location = new System.Drawing.Point(244, 42); - this.tbParticipant2.Name = "tbParticipant2"; - this.tbParticipant2.Size = new System.Drawing.Size(54, 20); - this.tbParticipant2.TabIndex = 3; + this.tbSecondOpponentScore.Location = new System.Drawing.Point(285, 48); + this.tbSecondOpponentScore.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.tbSecondOpponentScore.Name = "tbSecondOpponentScore"; + this.tbSecondOpponentScore.Size = new System.Drawing.Size(62, 23); + this.tbSecondOpponentScore.TabIndex = 3; // - // tbParticipant1 + // tbFirstOpponentScore // - this.tbParticipant1.Location = new System.Drawing.Point(120, 42); - this.tbParticipant1.Name = "tbParticipant1"; - this.tbParticipant1.Size = new System.Drawing.Size(54, 20); - this.tbParticipant1.TabIndex = 4; + this.tbFirstOpponentScore.Location = new System.Drawing.Point(140, 48); + this.tbFirstOpponentScore.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.tbFirstOpponentScore.Name = "tbFirstOpponentScore"; + this.tbFirstOpponentScore.Size = new System.Drawing.Size(62, 23); + this.tbFirstOpponentScore.TabIndex = 4; // // label1 // this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold); - this.label1.Location = new System.Drawing.Point(197, 44); + this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label1.Location = new System.Drawing.Point(230, 51); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(27, 20); this.label1.TabIndex = 5; @@ -90,8 +99,9 @@ namespace TournamentManager.src // label2 // this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold); - this.label2.Location = new System.Drawing.Point(0, 8); + this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label2.Location = new System.Drawing.Point(0, 9); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(56, 20); this.label2.TabIndex = 6; @@ -99,42 +109,45 @@ namespace TournamentManager.src // // btnSubmit // - this.btnSubmit.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold); - this.btnSubmit.Location = new System.Drawing.Point(294, 75); + this.btnSubmit.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.btnSubmit.Location = new System.Drawing.Point(343, 87); + this.btnSubmit.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.btnSubmit.Name = "btnSubmit"; - this.btnSubmit.Size = new System.Drawing.Size(118, 29); + this.btnSubmit.Size = new System.Drawing.Size(138, 33); this.btnSubmit.TabIndex = 7; this.btnSubmit.Text = "Submit"; this.btnSubmit.UseVisualStyleBackColor = true; // // GroupControl // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.btnSubmit); this.Controls.Add(this.label2); this.Controls.Add(this.label1); - this.Controls.Add(this.tbParticipant1); - this.Controls.Add(this.tbParticipant2); - this.Controls.Add(this.cbParticipant2); - this.Controls.Add(this.cbParticipant1); + this.Controls.Add(this.tbFirstOpponentScore); + this.Controls.Add(this.tbSecondOpponentScore); + this.Controls.Add(this.cbSecondOpponent); + this.Controls.Add(this.cbFirstOpponent); this.Controls.Add(this.cbGroup); + this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.Name = "GroupControl"; - this.Size = new System.Drawing.Size(423, 111); + this.Size = new System.Drawing.Size(493, 128); this.ResumeLayout(false); this.PerformLayout(); + } #endregion private System.Windows.Forms.ComboBox cbGroup; - private System.Windows.Forms.ComboBox cbParticipant1; + private System.Windows.Forms.ComboBox cbFirstOpponent; private System.Windows.Forms.ComboBox comboBox3; - private System.Windows.Forms.TextBox tbParticipant2; - private System.Windows.Forms.TextBox tbParticipant1; + private System.Windows.Forms.TextBox tbSecondOpponentScore; + private System.Windows.Forms.TextBox tbFirstOpponentScore; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox cbParticipant2; + private System.Windows.Forms.ComboBox cbSecondOpponent; private System.Windows.Forms.Button btnSubmit; } } diff --git a/src/GroupControl.cs b/src/GroupControl.cs index ac6f144..2a785a3 100644 --- a/src/GroupControl.cs +++ b/src/GroupControl.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; using System.Drawing; @@ -7,14 +8,82 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; namespace TournamentManager.src { public partial class GroupControl : UserControl { + public delegate void CbItemSelectedDelegate(object sender, CbItemSelectedEventArgs e); + + public event CbItemSelectedDelegate CbGroupItemSelected; + public event CbItemSelectedDelegate CbFirstOpponentSelected; + public event CbItemSelectedDelegate CbSecondOpponentSelected; + + protected void OnGroupSelected(CbItemSelectedEventArgs e) => CbGroupItemSelected?.Invoke(this, e); + protected void OnFirstOpponentSelected(CbItemSelectedEventArgs e) => + CbFirstOpponentSelected?.Invoke(this, e); + protected void OnSecondOpponentSelected(CbItemSelectedEventArgs e) => + CbSecondOpponentSelected?.Invoke(this, e); + public GroupControl() { InitializeComponent(); } + + public void AddGroups(int groupCount) + { + for (int i = 0; i < groupCount; i++) + { + cbGroup.Items.Add($"Group {i + 1}"); + } + } + + public void AddToFirstOpponentList(string[] itemNames) + { + cbFirstOpponent.Items.AddRange((string[])itemNames); + } + + public void AddToSecondOpponentList(string[] itemNames) + { + cbFirstOpponent.Items.AddRange((string[])itemNames); + } + + private void cbGroup_SelectedIndexChanged(object sender, EventArgs e) + { + ClearComboBox(ref cbFirstOpponent); + ClearComboBox(ref cbSecondOpponent); + ClearTextBoxes(); + OnGroupSelected(new CbItemSelectedEventArgs(cbGroup.SelectedItem.ToString())); + } + + private void cbFirstOpponent_SelectedIndexChanged(object sender, EventArgs e) + { + ClearComboBox(ref cbSecondOpponent); + ClearTextBoxes(); + OnFirstOpponentSelected(new CbItemSelectedEventArgs(cbFirstOpponent.SelectedItem.ToString())); + } + + private void cbSecondOpponent_SelectedIndexChanged(object sender, EventArgs e) + { + ClearTextBoxes(); + OnSecondOpponentSelected(new CbItemSelectedEventArgs(cbSecondOpponent.SelectedItem.ToString())); + } + + #region HelperFunctions + + private void ClearComboBox(ref ComboBox comboBox) + { + comboBox.Items.Clear(); + comboBox.Text = String.Empty; + } + + private void ClearTextBoxes() + { + tbFirstOpponentScore.Clear(); + tbSecondOpponentScore.Clear(); + } + + #endregion } } diff --git a/src/GroupControl.resx b/src/GroupControl.resx index 1af7de1..f298a7b 100644 --- a/src/GroupControl.resx +++ b/src/GroupControl.resx @@ -1,64 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> +<root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:element name="root" msdata:IsDataSet="true"> diff --git a/src/ManageTournamentForm.Designer.cs b/src/ManageTournamentForm.Designer.cs index be8cb40..5fad2fd 100644 --- a/src/ManageTournamentForm.Designer.cs +++ b/src/ManageTournamentForm.Designer.cs @@ -36,11 +36,10 @@ namespace TournamentManager this.groupBox2 = new System.Windows.Forms.GroupBox(); this.manageParticipantsControl = new TournamentManager.src.ManageParticipantsControl(); this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.groupControl1 = new TournamentManager.src.GroupControl(); + this.groupControl = new TournamentManager.src.GroupControl(); this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.calculateControl = new TournamentManager.src.CalculateControl(); this.groupBox5 = new System.Windows.Forms.GroupBox(); - this.btnGroups = new System.Windows.Forms.Button(); - this.btnPlayOff = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); @@ -83,7 +82,7 @@ namespace TournamentManager // // groupBox3 // - this.groupBox3.Controls.Add(this.groupControl1); + this.groupBox3.Controls.Add(this.groupControl); this.groupBox3.Location = new System.Drawing.Point(394, 12); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(502, 154); @@ -91,54 +90,40 @@ namespace TournamentManager this.groupBox3.TabStop = false; this.groupBox3.Text = "Manage Group"; // - // groupControl1 + // groupControl // - this.groupControl1.Location = new System.Drawing.Point(6, 22); - this.groupControl1.Name = "groupControl1"; - this.groupControl1.Size = new System.Drawing.Size(491, 123); - this.groupControl1.TabIndex = 0; + this.groupControl.Location = new System.Drawing.Point(6, 22); + this.groupControl.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.groupControl.Name = "groupControl"; + this.groupControl.Size = new System.Drawing.Size(491, 123); + this.groupControl.TabIndex = 0; // // groupBox4 // - this.groupBox4.Controls.Add(this.btnPlayOff); - this.groupBox4.Controls.Add(this.btnGroups); + this.groupBox4.Controls.Add(this.calculateControl); this.groupBox4.Location = new System.Drawing.Point(395, 172); this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(501, 93); + this.groupBox4.Size = new System.Drawing.Size(501, 138); this.groupBox4.TabIndex = 3; this.groupBox4.TabStop = false; this.groupBox4.Text = "Calculate"; // + // calculateControl + // + this.calculateControl.Location = new System.Drawing.Point(5, 22); + this.calculateControl.Name = "calculateControl"; + this.calculateControl.Size = new System.Drawing.Size(491, 111); + this.calculateControl.TabIndex = 0; + // // groupBox5 // - this.groupBox5.Location = new System.Drawing.Point(394, 271); + this.groupBox5.Location = new System.Drawing.Point(394, 316); this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(502, 285); + this.groupBox5.Size = new System.Drawing.Size(502, 240); this.groupBox5.TabIndex = 4; this.groupBox5.TabStop = false; this.groupBox5.Text = "Export Data"; // - // btnGroups - // - this.btnGroups.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); - this.btnGroups.Location = new System.Drawing.Point(6, 22); - this.btnGroups.Name = "btnGroups"; - this.btnGroups.Size = new System.Drawing.Size(194, 56); - this.btnGroups.TabIndex = 0; - this.btnGroups.Text = "Calculate Groups"; - this.btnGroups.UseVisualStyleBackColor = true; - this.btnGroups.Click += new System.EventHandler(this.btnGroups_Click); - // - // btnPlayOff - // - this.btnPlayOff.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); - this.btnPlayOff.Location = new System.Drawing.Point(301, 22); - this.btnPlayOff.Name = "btnPlayOff"; - this.btnPlayOff.Size = new System.Drawing.Size(194, 56); - this.btnPlayOff.TabIndex = 1; - this.btnPlayOff.Text = "Calculate Play Off"; - this.btnPlayOff.UseVisualStyleBackColor = true; - // // ManageTournamentForm // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); @@ -166,10 +151,9 @@ namespace TournamentManager private System.Windows.Forms.GroupBox groupBox2; private src.ManageParticipantsControl manageParticipantsControl; private System.Windows.Forms.GroupBox groupBox3; - private src.GroupControl groupControl1; + private src.GroupControl groupControl; private System.Windows.Forms.GroupBox groupBox4; - private System.Windows.Forms.Button btnPlayOff; - private System.Windows.Forms.Button btnGroups; private System.Windows.Forms.GroupBox groupBox5; + private src.CalculateControl calculateControl; } } \ No newline at end of file diff --git a/src/ManageTournamentForm.cs b/src/ManageTournamentForm.cs index 41d8e5d..807adbb 100644 --- a/src/ManageTournamentForm.cs +++ b/src/ManageTournamentForm.cs @@ -12,7 +12,8 @@ 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 readonly ObservableCollection<Participant> _participants = new(); + private readonly ObservableCollection<Group> _groups = new(); public ManageTournamentForm(string path) { @@ -20,6 +21,8 @@ namespace TournamentManager enterantCntrl.SubmitParticipantClick += OnSubmitParticipantClicked; _participants.CollectionChanged += HandleParticipantsChanged; manageParticipantsControl.ParticipantsModified += HandleParticipantRemoved; + calculateControl.CalculateGroups += HandleCalculateGroups; + groupControl.CbGroupItemSelected += HandleGroupItemSelected; foreach (var p in _participants) { manageParticipantsControl.CbAddParticipant($"{p.FirstName} {p.Surname}"); @@ -71,9 +74,39 @@ namespace TournamentManager } - private void btnGroups_Click(object sender, EventArgs e) + private void HandleCalculateGroups(object sender, CalculateGroupsEventArgs e) { + var numberOfGroups = (_participants.Count - 1) / e.GroupSize + 1; + var groupIndex = 0; + var orderedParticipants = _participants.OrderBy(x => x.Rating); + groupControl.AddGroups(numberOfGroups); + + for (int i = 0; i < numberOfGroups; i++) + { + _groups.Add(new Group()); + } + + foreach (var participant in orderedParticipants) + { + + if (groupIndex >= numberOfGroups) + { + groupIndex = 0; + } + _groups[groupIndex].Members.Add(participant); + + } + } + + private void HandleGroupItemSelected(object sender, CbItemSelectedEventArgs e) + { + if (!int.TryParse(e.ItemName.Split(" ")[1], out var result)) + { + return; + } + groupControl.AddToFirstOpponentList(_groups[result - 1].Members + .Select(x => $"{x.FirstName} {x.Surname}").ToArray()); } } } \ No newline at end of file diff --git a/src/Match.cs b/src/Match.cs new file mode 100644 index 0000000..44f2140 --- /dev/null +++ b/src/Match.cs @@ -0,0 +1,10 @@ +using System; + +namespace TournamentManager +{ + public class Match + { + public Tuple<Participant, Participant> Opponent { get; set; } + public (int first, int second) Score { get; set; } + } +} \ No newline at end of file -- GitLab