Files
T2-start-2025/CS/CS1 PoloClubApp_RensPastoor/Device.cs
Rens Pastoor d71b8570a1 CS
2025-05-27 23:40:31 +02:00

57 lines
1.6 KiB
C#

///
/// 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;
}
}
}