Files
2025-06-12 11:57:48 +02:00

117 lines
4.4 KiB
C#

///
/// 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<Device> 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;
}
if (cbDevice.SelectedItem == null){
MessageBox.Show("Please select a device.");
return;
}
if (!int.TryParse(cbDevice.SelectedItem.ToString(), out int deviceId)){
MessageBox.Show("Invalid device selection. Please select a valid device.");
return;
}
myClub.AssignDevice(deviceId, tbPlayerName.Text);
MessageBox.Show("Device assigned successfully.");
}
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<Device> 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<string> report = myClub.GenerateReportPerPlayer(tbPlayerNameForFile.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());
}
}
}
}