Files
VS_HCI/HCI_Coursework_EVCHARGE/ChargingDetails.cs
2024-04-19 02:24:05 +01:00

121 lines
3.8 KiB
C#

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 HCI_Coursework_EVCHARGE
{
public partial class ChargingDetails : Form
{
Pinpad pinpad;
String vehicle;
String duration;
String bayNo;
public ChargingDetails( int bayNo )
{
this.bayNo = bayNo.ToString();
InitializeComponent();
bayLabel.Text = "Bay " + this.bayNo;
}
public String[] getCarInfo( String vehicleType )
{
String[] max = {"",""};
switch (vehicleType)
{
case "car":
max[0] = ("7");
max[1] = ("8");
break;
case "e-bike":
max[0] = ("0.9");
max[1] = ("2");
break;
case "e-scooter":
max[0] = ("0.25");
max[1] = ("1");
break;
}
return max;
}
private void vehicleButton_Click( object sender, EventArgs e)
{
if ( sender is Button button)
{
carButton.BackColor = SystemColors.ActiveBorder;
bikeButton.BackColor = SystemColors.ActiveBorder;
scooterButton.BackColor = SystemColors.ActiveBorder;
vehicle = button.Text.ToLower();
String[] maxArr = getCarInfo(vehicle);
Console.WriteLine(maxArr[0], maxArr[1]);
if ( maxArr.Length > 0 )
{
powerLabel.Text = $"{maxArr[0]} kW";
durationLabel.Text = $"{maxArr[1]} hours";
}
button.BackColor = SystemColors.ControlDark;
infoPanel.Visible = true;
System.Threading.Thread.Sleep(100);
}
}
private void backButton_Click(object sender, EventArgs e)
{
pinpad?.Close();
Close();
}
private void confirmButton_Click(object sender, EventArgs e)
{
pinpad?.Close();
String maxDuration = getCarInfo(vehicle)[1];
if (Convert.ToInt16(textBox1.Text) > Convert.ToInt16(maxDuration))
{
MessageBox.Show($"Duration must be less than {maxDuration} hours.");
}
else
{
duration = textBox1.Text;
DialogResult confirm = MessageBox.Show($"Are you sure these details are correct?\nVehicle: {vehicle}\nDuration: {duration} hours?", "Confirm:", MessageBoxButtons.YesNo);
if (confirm == DialogResult.Yes)
{
Payment payment = new Payment(bayNo, vehicle, duration);
payment.Show();
payment.FormClosed += delegate
{
payment = null;
};
}
}
}
private void accountPin_Focus(object sender, EventArgs e)
{
TextBox textBox = (TextBox)sender;
if (pinpad == null)
{
pinpad = new Pinpad();
pinpad.FormClosed += delegate
{
if( textBox.Text != null )
{
confirmPanel.Visible = true;
}
pinpad = null;
this.ActiveControl = label1;
};
}
pinpad.setTextBox(textBox);
pinpad.Show();
pinpad.Top = this.Top + textBox.Top + textBox.Height - 250;
}
}
}