diff --git a/CS/Starter_assignment.zip b/CS/CS0 Starter_assignment.zip
similarity index 100%
rename from CS/Starter_assignment.zip
rename to CS/CS0 Starter_assignment.zip
diff --git a/CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/.gitignore b/CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/.gitignore
similarity index 100%
rename from CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/.gitignore
rename to CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/.gitignore
diff --git a/CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/encodings.xml b/CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/encodings.xml
similarity index 100%
rename from CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/encodings.xml
rename to CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/encodings.xml
diff --git a/CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/indexLayout.xml b/CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/indexLayout.xml
similarity index 100%
rename from CS/Starter_assignment/.idea/.idea.Starter_assignment/.idea/indexLayout.xml
rename to CS/CS0 Starter_assignment/.idea/.idea.Starter_assignment/.idea/indexLayout.xml
diff --git a/CS/Starter_assignment/Archive.zip b/CS/CS0 Starter_assignment/Archive.zip
similarity index 100%
rename from CS/Starter_assignment/Archive.zip
rename to CS/CS0 Starter_assignment/Archive.zip
diff --git a/CS/Starter_assignment/Course.cs b/CS/CS0 Starter_assignment/Course.cs
similarity index 100%
rename from CS/Starter_assignment/Course.cs
rename to CS/CS0 Starter_assignment/Course.cs
diff --git a/CS/Starter_assignment/Program.cs b/CS/CS0 Starter_assignment/Program.cs
similarity index 100%
rename from CS/Starter_assignment/Program.cs
rename to CS/CS0 Starter_assignment/Program.cs
diff --git a/CS/Starter_assignment/Starter_assignment.csproj b/CS/CS0 Starter_assignment/Starter_assignment.csproj
similarity index 100%
rename from CS/Starter_assignment/Starter_assignment.csproj
rename to CS/CS0 Starter_assignment/Starter_assignment.csproj
diff --git a/CS/Starter_assignment/Starter_assignment.dll b/CS/CS0 Starter_assignment/Starter_assignment.dll
similarity index 100%
rename from CS/Starter_assignment/Starter_assignment.dll
rename to CS/CS0 Starter_assignment/Starter_assignment.dll
diff --git a/CS/Starter_assignment/Starter_assignment.sln b/CS/CS0 Starter_assignment/Starter_assignment.sln
similarity index 100%
rename from CS/Starter_assignment/Starter_assignment.sln
rename to CS/CS0 Starter_assignment/Starter_assignment.sln
diff --git a/CS/Starter_assignment/Starter_assignment.sln.DotSettings.user b/CS/CS0 Starter_assignment/Starter_assignment.sln.DotSettings.user
similarity index 100%
rename from CS/Starter_assignment/Starter_assignment.sln.DotSettings.user
rename to CS/CS0 Starter_assignment/Starter_assignment.sln.DotSettings.user
diff --git a/CS/Starter_assignment/Student.cs b/CS/CS0 Starter_assignment/Student.cs
similarity index 100%
rename from CS/Starter_assignment/Student.cs
rename to CS/CS0 Starter_assignment/Student.cs
diff --git a/CS/Starter_assignment/starter_assignment b/CS/CS0 Starter_assignment/starter_assignment
old mode 100755
new mode 100644
similarity index 100%
rename from CS/Starter_assignment/starter_assignment
rename to CS/CS0 Starter_assignment/starter_assignment
diff --git a/CS/CS1 PoloClubApp_RensPastoor.zip b/CS/CS1 PoloClubApp_RensPastoor.zip
new file mode 100644
index 0000000..5f9802f
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor.zip differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp.csproj.dtbcache.json b/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp.csproj.dtbcache.json
new file mode 100644
index 0000000..14f9aef
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp.csproj.dtbcache.json
@@ -0,0 +1 @@
+{"RootPath":"C:\\Users\\rens\\Downloads\\school-Csharp-programming-main\\school-Csharp-programming-main\\poloclub app\\PoloClubApp\\PoloClubApp","ProjectFileName":"PoloClubApp.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Club.cs"},{"SourceFile":"Device.cs"},{"SourceFile":"FitTracker.cs"},{"SourceFile":"PoloClubAppForm.cs"},{"SourceFile":"PoloClubAppForm.Designer.cs"},{"SourceFile":"IWearable.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"SmartPhone.cs"},{"SourceFile":"SmartWatch.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\Microsoft.CSharp\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Data.DataSetExtensions\\v4.0_4.0.0.0__b77a5c561934e089\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_64\\System.Data\\v4.0_4.0.0.0__b77a5c561934e089\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Deployment\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System\\v4.0_4.0.0.0__b77a5c561934e089\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Net.Http\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Xml\\v4.0_4.0.0.0__b77a5c561934e089\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Xml.Linq\\v4.0_4.0.0.0__b77a5c561934e089\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\rens\\Downloads\\school-Csharp-programming-main\\school-Csharp-programming-main\\poloclub app\\PoloClubApp\\PoloClubApp\\bin\\Debug\\PoloClubApp.exe","OutputItemRelativePath":"PoloClubApp.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp/v16/.suo b/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp/v16/.suo
new file mode 100644
index 0000000..1a4c89e
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/.vs/PoloClubApp/v16/.suo differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/App.config b/CS/CS1 PoloClubApp_RensPastoor/App.config
new file mode 100644
index 0000000..bae5d6d
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Club.cs b/CS/CS1 PoloClubApp_RensPastoor/Club.cs
new file mode 100644
index 0000000..e3c09d0
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Club.cs
@@ -0,0 +1,155 @@
+///
+/// class: Club.cs
+///
+///This file contains the Club class, which manages the collection of devices in the polo club.
+///It provides methods to add, assign, return, and generate reports for devices, as well as retrieve all wearables.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+using System.Windows.Forms;
+
+namespace PoloClubApp {
+ class Club {
+ private string name; // the name of the club
+ private List devices; // a list of devices
+
+ public Club(string name){
+ this.name = name;
+ this.devices = new List();
+ }
+
+ public string Name { get { return this.name; } } // read only property for Name
+
+
+ //-----Provide your answers here-----
+
+ public List GetAllWearables(){
+ List wearables = new List();
+
+ foreach (Device dev in this.devices){
+ if (dev is SmartWatch || dev is FitTracker){
+ wearables.Add(dev);
+ }
+ }
+ return wearables;
+ }
+ public void AssignDevice(int id, string playerName){
+ Device device = GetDeviceById(id);
+
+ if(device == null){
+ throw new Exception("Device not found");
+ }
+
+ if (!(device is IWearable)){
+ device.AssignDevice(playerName, null);
+ } else {
+ IWearable wearable = (IWearable)device;
+ device.AssignDevice(playerName, wearable.GetWaterResistanceMeters());
+ }
+
+ }
+ public bool ReturnDevice(int id){
+ Device device = GetDeviceById(id);
+ return device.ReturnDevice();
+ }
+
+ public List GetAllAssignedDevicesByPlayer(string playerName){
+ List assignedDevices = new List();
+ foreach (Device dev in this.devices){
+ if (dev.PlayerName == playerName){
+ assignedDevices.Add(dev);
+ }
+ }
+ return assignedDevices;
+ }
+
+ public List GenerateReportPerPlayer(string playerName){
+ string returnString = "List of devices assigned to " + playerName;
+ List lines = new List();
+ List assignedDevices = GetAllAssignedDevicesByPlayer(playerName);
+
+ lines.Add(returnString);
+ string currentDeviceType = "SmartPhone";
+
+ lines.Add("Phones");
+ lines.Add("-");
+ foreach (Device dev in assignedDevices){
+ if (dev is SmartPhone){
+ lines.Add(dev.GetDetails());
+ }
+ }
+ lines.Add("Wearables");
+ lines.Add("-");
+ foreach (Device dev in assignedDevices){
+ if (!(dev is SmartPhone)){
+ lines.Add(dev.GetDetails());
+ }
+ }
+
+ int phoneCount = 0;
+ int wearableCount = 0;
+ foreach (Device dev in assignedDevices){
+ if (dev is SmartPhone){
+ phoneCount++;
+ }
+ if (dev is IWearable){
+ wearableCount++;
+ }
+ }
+
+ lines.Add("Total: " + assignedDevices.Count + " devices, " + phoneCount + " phones and " + wearableCount + " wearables");
+
+ return lines;
+ }
+
+
+
+ // -----The provided code below will not be graded, therefore should not be changed-----
+
+ ///
+ /// Provides all devices to the caller.
+ ///
+ /// List of devices
+ public List GetAllDevices(){
+ return this.devices;
+ }
+
+ ///
+ /// Adds a device to the list of devices if unique id is provided.
+ ///
+ /// device to be added
+ public void AddDevice(Device device) {
+ foreach (Device dev in this.devices){
+ if (dev.Id == device.Id){
+ return;
+ }
+ }
+ devices.Add(device);
+ }
+
+ ///
+ /// Provides a device by a given id.
+ ///
+ /// the unique identity number of the requested device.
+ /// A device when found, otherwise null
+ public Device GetDeviceById(int id){
+ foreach (Device dev in this.devices){
+ if (dev.Id == id){
+ return dev;
+ }
+ }
+ return null;
+ }
+ }
+}
+
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Device.cs b/CS/CS1 PoloClubApp_RensPastoor/Device.cs
new file mode 100644
index 0000000..7af7359
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Device.cs
@@ -0,0 +1,56 @@
+///
+/// class: Device.cs
+///
+///This file defines the abstract Device class, which serves as the base class for all device types (e.g., smartphones, smartwatches).
+///It includes common properties and methods for managing device details and assignments.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PoloClubApp {
+ internal abstract class Device {
+ public int Id { get; }
+ public string Name { get; }
+ public string PlayerName { get; set; }
+ public Device(int id, string name, string playerName = null){
+ Id = id;
+ Name = name;
+ PlayerName = playerName;
+ }
+
+ public abstract string GetDetails();
+
+ public bool IsAssigned(){
+ return PlayerName != null;
+ }
+ public Exception AssignDevice(string playerName, int? waterResistanceMeters){
+ if (IsAssigned()){
+ throw new Exception("Device is already assigned");
+ } else if (this is IWearable && waterResistanceMeters < 3){
+ throw new Exception("Water resistance meters should be 3 or more");
+ } else if (this.Id == null){
+ throw new Exception("Device Id is null");
+ } else {
+ PlayerName = playerName;
+ return null;
+ }
+ }
+
+ public bool ReturnDevice(){
+ if (!IsAssigned()){
+ return false;
+ }
+ PlayerName = null;
+ return true;
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/FitTracker.cs b/CS/CS1 PoloClubApp_RensPastoor/FitTracker.cs
new file mode 100644
index 0000000..2c4e038
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/FitTracker.cs
@@ -0,0 +1,43 @@
+///
+/// class: FitTracker.cs
+///
+///This file defines the FitTracker class, which represents a fitness tracker device. It implements
+///the IWearable interface and includes properties for water resistance and other fitness-specific features.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 may 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PoloClubApp {
+ internal class FitTracker : Device, IWearable {
+ public string DeviceType = "FitTracker";
+ public int Id { get; }
+ public string Name { get; }
+ public string PlayerName { get; set; }
+ public int WaterResistanceMeters { get; }
+ public string Color { get; }
+
+ public FitTracker(int id, string name, int waterResistanceMeters, string color) : base(id, name, null){
+ Id = id;
+ Name = name;
+ WaterResistanceMeters = waterResistanceMeters;
+ Color = color;
+ }
+
+ public override string GetDetails(){
+ return DeviceType + "Id: " + Id + ", Name: " + Name + ", Type: " + ", WaterResistanceMeters: " + WaterResistanceMeters + ", Color: " + Color;
+ }
+
+ public int GetWaterResistanceMeters(){
+ return WaterResistanceMeters;
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/IWearable.cs b/CS/CS1 PoloClubApp_RensPastoor/IWearable.cs
new file mode 100644
index 0000000..9c3c9dc
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/IWearable.cs
@@ -0,0 +1,25 @@
+///
+/// class: IWearable.cs
+///
+///This file defines the IWearable interface, which specifies a method to get the water resistance level of wearable devices.
+///It is implemented by classes representing wearable devices like smartwatches and fitness trackers.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Remoting.Messaging;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PoloClubApp {
+ interface IWearable {
+ ///Returns the water resistance level of the wearable device in meters.
+ int GetWaterResistanceMeters();
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.csproj b/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.csproj
new file mode 100644
index 0000000..93fbb21
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.csproj
@@ -0,0 +1,92 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}
+ WinExe
+ PoloClubApp
+ PoloClubApp
+ v4.6.1
+ 512
+ true
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ PoloClubAppForm.cs
+
+
+
+
+
+
+
+ PoloClubAppForm.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.sln b/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.sln
new file mode 100644
index 0000000..7a344d1
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/PoloClubApp.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32802.440
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoloClubApp", "PoloClubApp.csproj", "{BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BA2A90B1-738C-47C3-AAFD-B6866F66DB6D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D457CC83-F016-41A7-8295-33BD3C8D4937}
+ EndGlobalSection
+EndGlobal
diff --git a/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.Designer.cs b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.Designer.cs
new file mode 100644
index 0000000..b71bbb4
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.Designer.cs
@@ -0,0 +1,248 @@
+namespace PoloClubApp
+{
+ partial class PoloClubAppForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.lbOverview = new System.Windows.Forms.ListBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.btnViewAllWearables = new System.Windows.Forms.Button();
+ this.btnViewAllDevices = new System.Windows.Forms.Button();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.tbPlayerNameForFile = new System.Windows.Forms.TextBox();
+ this.btnGeneratePlayerTextReport = new System.Windows.Forms.Button();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.btnShowAssignedDevices = new System.Windows.Forms.Button();
+ this.btnReturn = new System.Windows.Forms.Button();
+ this.btnAssign = new System.Windows.Forms.Button();
+ this.lblDevice = new System.Windows.Forms.Label();
+ this.cbDevice = new System.Windows.Forms.ComboBox();
+ this.lblPlayerName = new System.Windows.Forms.Label();
+ this.tbPlayerName = new System.Windows.Forms.TextBox();
+ this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
+ this.groupBox1.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.groupBox3.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // lbOverview
+ //
+ this.lbOverview.Dock = System.Windows.Forms.DockStyle.Top;
+ this.lbOverview.FormattingEnabled = true;
+ this.lbOverview.Location = new System.Drawing.Point(0, 0);
+ this.lbOverview.Name = "lbOverview";
+ this.lbOverview.Size = new System.Drawing.Size(598, 212);
+ this.lbOverview.TabIndex = 0;
+ //
+ // groupBox1
+ //
+ this.groupBox1.BackColor = System.Drawing.Color.Green;
+ this.groupBox1.Controls.Add(this.btnViewAllWearables);
+ this.groupBox1.Controls.Add(this.btnViewAllDevices);
+ this.groupBox1.Location = new System.Drawing.Point(12, 229);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(247, 58);
+ this.groupBox1.TabIndex = 1;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Overview";
+ //
+ // btnViewAllWearables
+ //
+ this.btnViewAllWearables.Location = new System.Drawing.Point(124, 19);
+ this.btnViewAllWearables.Name = "btnViewAllWearables";
+ this.btnViewAllWearables.Size = new System.Drawing.Size(112, 23);
+ this.btnViewAllWearables.TabIndex = 1;
+ this.btnViewAllWearables.Text = "View All Wearables";
+ this.btnViewAllWearables.UseVisualStyleBackColor = true;
+ this.btnViewAllWearables.Click += new System.EventHandler(this.btnViewAllWearables_Click);
+ //
+ // btnViewAllDevices
+ //
+ this.btnViewAllDevices.BackColor = System.Drawing.SystemColors.Control;
+ this.btnViewAllDevices.Location = new System.Drawing.Point(6, 19);
+ this.btnViewAllDevices.Name = "btnViewAllDevices";
+ this.btnViewAllDevices.Size = new System.Drawing.Size(112, 23);
+ this.btnViewAllDevices.TabIndex = 0;
+ this.btnViewAllDevices.Text = "View All Devices";
+ this.btnViewAllDevices.UseVisualStyleBackColor = false;
+ this.btnViewAllDevices.Click += new System.EventHandler(this.btnViewAllDevices_Click);
+ //
+ // groupBox2
+ //
+ this.groupBox2.BackColor = System.Drawing.Color.Red;
+ this.groupBox2.Controls.Add(this.tbPlayerNameForFile);
+ this.groupBox2.Controls.Add(this.btnGeneratePlayerTextReport);
+ this.groupBox2.Location = new System.Drawing.Point(12, 293);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(247, 65);
+ this.groupBox2.TabIndex = 2;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Report";
+ //
+ // tbPlayerNameForFile
+ //
+ this.tbPlayerNameForFile.Location = new System.Drawing.Point(141, 10);
+ this.tbPlayerNameForFile.Name = "tbPlayerNameForFile";
+ this.tbPlayerNameForFile.Size = new System.Drawing.Size(100, 20);
+ this.tbPlayerNameForFile.TabIndex = 2;
+ //
+ // btnGeneratePlayerTextReport
+ //
+ this.btnGeneratePlayerTextReport.Location = new System.Drawing.Point(6, 36);
+ this.btnGeneratePlayerTextReport.Name = "btnGeneratePlayerTextReport";
+ this.btnGeneratePlayerTextReport.Size = new System.Drawing.Size(238, 23);
+ this.btnGeneratePlayerTextReport.TabIndex = 0;
+ this.btnGeneratePlayerTextReport.Text = "Generate report per player";
+ this.btnGeneratePlayerTextReport.UseVisualStyleBackColor = true;
+ this.btnGeneratePlayerTextReport.Click += new System.EventHandler(this.btnGeneratePlayerTextReport_Click);
+ //
+ // groupBox3
+ //
+ this.groupBox3.BackColor = System.Drawing.Color.DodgerBlue;
+ this.groupBox3.Controls.Add(this.btnShowAssignedDevices);
+ this.groupBox3.Controls.Add(this.btnReturn);
+ this.groupBox3.Controls.Add(this.btnAssign);
+ this.groupBox3.Controls.Add(this.lblDevice);
+ this.groupBox3.Controls.Add(this.cbDevice);
+ this.groupBox3.Controls.Add(this.lblPlayerName);
+ this.groupBox3.Controls.Add(this.tbPlayerName);
+ this.groupBox3.Location = new System.Drawing.Point(275, 229);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(313, 129);
+ this.groupBox3.TabIndex = 3;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "Assign / Return";
+ //
+ // btnShowAssignedDevices
+ //
+ this.btnShowAssignedDevices.Location = new System.Drawing.Point(6, 93);
+ this.btnShowAssignedDevices.Name = "btnShowAssignedDevices";
+ this.btnShowAssignedDevices.Size = new System.Drawing.Size(133, 23);
+ this.btnShowAssignedDevices.TabIndex = 6;
+ this.btnShowAssignedDevices.Text = "Show Assigned Devices";
+ this.btnShowAssignedDevices.UseVisualStyleBackColor = true;
+ this.btnShowAssignedDevices.Click += new System.EventHandler(this.btnShowAssignedDevices_Click);
+ //
+ // btnReturn
+ //
+ this.btnReturn.Location = new System.Drawing.Point(172, 64);
+ this.btnReturn.Name = "btnReturn";
+ this.btnReturn.Size = new System.Drawing.Size(132, 23);
+ this.btnReturn.TabIndex = 5;
+ this.btnReturn.Text = "Return Device";
+ this.btnReturn.UseVisualStyleBackColor = true;
+ this.btnReturn.Click += new System.EventHandler(this.btnReturn_Click);
+ //
+ // btnAssign
+ //
+ this.btnAssign.Location = new System.Drawing.Point(6, 64);
+ this.btnAssign.Name = "btnAssign";
+ this.btnAssign.Size = new System.Drawing.Size(132, 23);
+ this.btnAssign.TabIndex = 4;
+ this.btnAssign.Text = "Assign Device";
+ this.btnAssign.UseVisualStyleBackColor = true;
+ this.btnAssign.Click += new System.EventHandler(this.btnAssign_Click);
+ //
+ // lblDevice
+ //
+ this.lblDevice.AutoSize = true;
+ this.lblDevice.Location = new System.Drawing.Point(169, 22);
+ this.lblDevice.Name = "lblDevice";
+ this.lblDevice.Size = new System.Drawing.Size(53, 13);
+ this.lblDevice.TabIndex = 3;
+ this.lblDevice.Text = "Device Id";
+ //
+ // cbDevice
+ //
+ this.cbDevice.FormattingEnabled = true;
+ this.cbDevice.Location = new System.Drawing.Point(172, 37);
+ this.cbDevice.Name = "cbDevice";
+ this.cbDevice.Size = new System.Drawing.Size(132, 21);
+ this.cbDevice.TabIndex = 1;
+ //
+ // lblPlayerName
+ //
+ this.lblPlayerName.AutoSize = true;
+ this.lblPlayerName.Location = new System.Drawing.Point(6, 22);
+ this.lblPlayerName.Name = "lblPlayerName";
+ this.lblPlayerName.Size = new System.Drawing.Size(67, 13);
+ this.lblPlayerName.TabIndex = 1;
+ this.lblPlayerName.Text = "Player Name";
+ //
+ // tbPlayerName
+ //
+ this.tbPlayerName.Location = new System.Drawing.Point(6, 38);
+ this.tbPlayerName.Name = "tbPlayerName";
+ this.tbPlayerName.Size = new System.Drawing.Size(132, 20);
+ this.tbPlayerName.TabIndex = 0;
+ //
+ // saveFileDialog1
+ //
+ this.saveFileDialog1.FileOk += new System.ComponentModel.CancelEventHandler(this.saveFileDialog1_FileOk);
+ //
+ // PoloClubAppForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(598, 377);
+ this.Controls.Add(this.groupBox3);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.lbOverview);
+ this.Name = "PoloClubAppForm";
+ this.Text = "Form1";
+ this.Load += new System.EventHandler(this.PoloClubAppForm_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ListBox lbOverview;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.Button btnViewAllDevices;
+ private System.Windows.Forms.Button btnViewAllWearables;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.Button btnGeneratePlayerTextReport;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.Label lblPlayerName;
+ private System.Windows.Forms.TextBox tbPlayerName;
+ private System.Windows.Forms.Label lblDevice;
+ private System.Windows.Forms.ComboBox cbDevice;
+ private System.Windows.Forms.Button btnShowAssignedDevices;
+ private System.Windows.Forms.Button btnReturn;
+ private System.Windows.Forms.Button btnAssign;
+ private System.Windows.Forms.SaveFileDialog saveFileDialog1;
+ private System.Windows.Forms.TextBox tbPlayerNameForFile;
+ }
+}
+
diff --git a/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.cs b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.cs
new file mode 100644
index 0000000..9a38403
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.cs
@@ -0,0 +1,114 @@
+///
+/// class: PoloClubAppForm.cs
+///
+///This file contains the PoloClubAppForm class, which is the main Windows Forms application for managing the
+///polo club's devices. It provides the user interface for viewing, assigning, returning, and generating reports for devices.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+namespace PoloClubApp {
+ public partial class PoloClubAppForm : Form {
+ // Provide your answers here
+ private void btnViewAllWearables_Click(object sender, EventArgs e){
+ List wearables = myClub.GetAllWearables();
+ lbOverview.Items.Clear();
+ foreach (Device wearable in wearables)
+ {
+ lbOverview.Items.Add(wearable.GetDetails());
+ }
+ }
+
+ private void btnAssign_Click(object sender, EventArgs e){
+ try {
+ if (string.IsNullOrWhiteSpace(tbPlayerName.Text)){
+ MessageBox.Show("Please enter a player name");
+ return;
+ }
+
+ int deviceId = int.Parse(cbDevice.SelectedItem.ToString());
+ myClub.AssignDevice(deviceId, tbPlayerName.Text);
+ MessageBox.Show("Device assigned successfully");
+ }
+ catch (FormatException){
+ MessageBox.Show("Please select a valid device");
+ }
+ catch (Exception ex){
+ MessageBox.Show($"Error assigning device: {ex.Message}");
+ }
+ }
+
+ private void btnReturn_Click(object sender, EventArgs e){
+ myClub.ReturnDevice(Convert.ToInt32(cbDevice.Text));
+ }
+
+ private void btnShowAssignedDevices_Click(object sender, EventArgs e){
+ List assignedDevices = myClub.GetAllAssignedDevicesByPlayer(tbPlayerName.Text);
+ lbOverview.Items.Clear();
+ foreach (Device device in assignedDevices){
+ lbOverview.Items.Add(device.GetDetails());
+ }
+ }
+
+
+ private void btnGeneratePlayerTextReport_Click(object sender, EventArgs e){
+ List report = myClub.GenerateReportPerPlayer(tbPlayerName.Text);
+ lbOverview.Items.Clear();
+ foreach (string line in report){
+ lbOverview.Items.Add(line);
+ }
+ }
+
+
+
+ // -----The provided code below will not be graded, therefore should not be changed-----
+
+ private Club myClub;
+ public PoloClubAppForm(){
+ InitializeComponent();
+ myClub = new Club("PoloClub");
+ this.Text = myClub.Name;
+ this.addSomeTestingStuff();
+ this.fillComboBoxDevices();
+ }
+
+ private void addSomeTestingStuff(){
+ myClub.AddDevice(new SmartPhone(101, "iPhone X"));
+ myClub.AddDevice(new SmartWatch(202, "Apple Watch Sport", 5, 38));
+ myClub.AddDevice(new FitTracker(300, "Fitbit Ionic", 1, "pink"));
+ myClub.AddDevice(new SmartWatch(203, "Motorola Moto 360", 9, 40));
+ myClub.AddDevice(new SmartPhone(102, "iPhone 9"));
+ myClub.AddDevice(new SmartPhone(103, "Galaxy S9"));
+ myClub.AddDevice(new FitTracker(301, "Fitbit Alta HR", 8, "blue"));
+ myClub.AddDevice(new SmartPhone(104, "Pixels 2"));
+ myClub.AddDevice(new SmartWatch(204, "Samsung Gear Sport", 2, 42));
+ myClub.AddDevice(new FitTracker(302, "Fitbit Charge 2", 10, "black"));
+ myClub.AddDevice(new FitTracker(303, "Misfit Ray", 0, "black"));
+ }
+ private void fillComboBoxDevices(){
+ foreach (Device dev in myClub.GetAllDevices()){
+ cbDevice.Items.Add(dev.Id);
+ }
+ }
+
+ private void btnViewAllDevices_Click(object sender, EventArgs e){
+ this.lbOverview.Items.Clear();
+ foreach (Device dev in myClub.GetAllDevices()){
+ this.lbOverview.Items.Add(dev.GetDetails());
+ }
+
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.resx b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.resx
new file mode 100644
index 0000000..053da59
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/PoloClubAppForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Program.cs b/CS/CS1 PoloClubApp_RensPastoor/Program.cs
new file mode 100644
index 0000000..cdd6bf9
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace PoloClubApp {
+ static class Program {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main(){
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new PoloClubAppForm());
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Properties/AssemblyInfo.cs b/CS/CS1 PoloClubApp_RensPastoor/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..bba743b
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PoloClubApp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PoloClubApp")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ba2a90b1-738c-47c3-aafd-b6866f66db6d")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.Designer.cs b/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c818142
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace PoloClubApp.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PoloClubApp.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.resx b/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.Designer.cs b/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..efa965a
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace PoloClubApp.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.13.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.settings b/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CS/CS1 PoloClubApp_RensPastoor/SmartPhone.cs b/CS/CS1 PoloClubApp_RensPastoor/SmartPhone.cs
new file mode 100644
index 0000000..c41421d
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/SmartPhone.cs
@@ -0,0 +1,34 @@
+///
+/// class: SmartPhone.cs
+///
+///This file defines the SmartPhone class, which represents a smartphone device. It includes properties and methods
+///specific to smartphones, such as getting device details and managing assignments to players.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PoloClubApp {
+ internal class SmartPhone : Device {
+ public string DeviceType = "SmartPhone";
+ public int Id { get; }
+ public string Name { get; }
+ public string PlayerName { get; set; }
+
+ public SmartPhone(int id, string name) : base(id, name, null){
+ Id = id;
+ Name = name;
+ }
+ public override string GetDetails(){
+ return DeviceType + "Id: " + Id + ", Name: " + Name;
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/SmartWatch.cs b/CS/CS1 PoloClubApp_RensPastoor/SmartWatch.cs
new file mode 100644
index 0000000..09a9723
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/SmartWatch.cs
@@ -0,0 +1,42 @@
+///
+/// class: SmartWatch.cs
+///
+///This file defines the SmartWatch class, which represents a smartwatch device. It implements the IWearable interface
+///and includes properties for water resistance and screen size, along with methods to get device details.
+///
+/// Name: Rens Pastoor
+/// Studentnumber: 555408
+/// Date: 11 May 2025
+///
+///Version: 1
+///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace PoloClubApp {
+ internal class SmartWatch : Device, IWearable {
+ public string DeviceType = "Watch";
+ public int WaterResistanceMeters { get; }
+ public int ScreenSize { get; }
+
+ /// Initializes a new SmartWatch with specified ID, name, player name, water resistance, and screen size.
+ public SmartWatch(int id, string name, int waterResistanceMeters, int screenSize) : base(id, name, null){
+ WaterResistanceMeters = waterResistanceMeters;
+ ScreenSize = screenSize;
+ }
+
+ /// Returns a string representation of the SmartWatch details.
+ public override string GetDetails(){
+ return DeviceType + "Id: " + Id + ", Name: " + Name + ", WaterResistanceMeters: " + WaterResistanceMeters + ", ScreenSize: " + ScreenSize;
+ }
+
+ /// Returns the water resistance of the SmartWatch in meters.
+ public int GetWaterResistanceMeters(){
+ return WaterResistanceMeters;
+ }
+ }
+}
diff --git a/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe
new file mode 100644
index 0000000..93164be
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe.config b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe.config
new file mode 100644
index 0000000..bae5d6d
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.pdb b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.pdb
new file mode 100644
index 0000000..f3aab42
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/bin/Debug/PoloClubApp.pdb differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..1fa624e
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = "")]
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..15efebf
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/CoreCompileInputs.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/CoreCompileInputs.cache
new file mode 100644
index 0000000..41093d2
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/CoreCompileInputs.cache
@@ -0,0 +1 @@
+9d6f958781b23f97f72d1e7f5a9079b0d566078f
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..625ed8b
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..084fd42
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.PoloClubAppForm.resources b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.PoloClubAppForm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.PoloClubAppForm.resources differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.Properties.Resources.resources b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.Properties.Resources.resources differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.AssemblyReference.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..c4eef91
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.AssemblyReference.cache differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.CoreCompileInputs.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..5e0cfd3
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+2dd441a6dcab245f72940a1e3dc8fb177864ab58
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.FileListAbsolute.txt b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..17d4321
--- /dev/null
+++ b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.FileListAbsolute.txt
@@ -0,0 +1,29 @@
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\bin\Debug\PoloClubApp.exe
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\bin\Debug\PoloClubApp.exe.config
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.AssemblyReference.cache
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.PoloClubAppForm.resources
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.Properties.Resources.resources
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.GenerateResource.cache
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.CoreCompileInputs.cache
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.exe
+C:\Users\gijs\Downloads\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.pdb
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\bin\Debug\PoloClubApp.exe.config
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\bin\Debug\PoloClubApp.exe
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\bin\Debug\PoloClubApp.pdb
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.AssemblyReference.cache
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.PoloClubAppForm.resources
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.Properties.Resources.resources
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.GenerateResource.cache
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.csproj.CoreCompileInputs.cache
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.exe
+C:\Users\rens\Downloads\school-Csharp-programming-main\school-Csharp-programming-main\poloclub app\PoloClubApp\PoloClubApp\obj\Debug\PoloClubApp.pdb
+C:\Users\Rens\Downloads\PoloClubApp\bin\Debug\PoloClubApp.exe.config
+C:\Users\Rens\Downloads\PoloClubApp\bin\Debug\PoloClubApp.exe
+C:\Users\Rens\Downloads\PoloClubApp\bin\Debug\PoloClubApp.pdb
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.csproj.AssemblyReference.cache
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.PoloClubAppForm.resources
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.Properties.Resources.resources
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.csproj.GenerateResource.cache
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.csproj.CoreCompileInputs.cache
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.exe
+C:\Users\Rens\Downloads\PoloClubApp\obj\Debug\PoloClubApp.pdb
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.GenerateResource.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.GenerateResource.cache
new file mode 100644
index 0000000..1485c16
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csproj.GenerateResource.cache differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csprojAssemblyReference.cache b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csprojAssemblyReference.cache
new file mode 100644
index 0000000..73f4773
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.csprojAssemblyReference.cache differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.exe b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.exe
new file mode 100644
index 0000000..93164be
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.exe differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.pdb b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.pdb
new file mode 100644
index 0000000..f3aab42
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/PoloClubApp.pdb differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..4896d75
Binary files /dev/null and b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/CS/CS1 PoloClubApp_RensPastoor/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29