118 lines
3.3 KiB
C#
118 lines
3.3 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 CarManagerV2
|
|
{
|
|
public partial class CarDetailsForm : Form
|
|
{
|
|
|
|
Car car;
|
|
|
|
public CarDetailsForm(Car car)
|
|
{
|
|
InitializeComponent();
|
|
this.car = car;
|
|
tbxMake.Text = car.Make;
|
|
tbxModel.Text = car.Model;
|
|
nudYear.Value = car.Year;
|
|
tbxColor.Text = car.Color;
|
|
nudMileage.Value = car.Mileage;
|
|
nudPrice.Value = car.Price;
|
|
pbxCarImage.Image = ImageManager.GetImage(car);
|
|
lblID.Text = $"ID: {car.Id}";
|
|
}
|
|
|
|
private void tbxMake_TextChanged(object sender, EventArgs e)
|
|
{
|
|
car.Make = tbxMake.Text;
|
|
}
|
|
|
|
private void tbxModel_TextChanged(object sender, EventArgs e)
|
|
{
|
|
car.Model = tbxModel.Text;
|
|
}
|
|
|
|
private void nudYear_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
car.Year = (int)nudYear.Value;
|
|
}
|
|
|
|
private void tbxColor_TextChanged(object sender, EventArgs e)
|
|
{
|
|
car.Color = tbxColor.Text;
|
|
}
|
|
|
|
private void nudMileage_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
car.Mileage = (int)nudMileage.Value;
|
|
}
|
|
|
|
private void nudPrice_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
car.Price = nudPrice.Value;
|
|
}
|
|
|
|
private async void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
// save car to cars.csv and close form
|
|
//saving car... popuo
|
|
btnSave.Enabled = false;
|
|
btnDelete.Enabled = false;
|
|
var msgbox = new PleaseWait();
|
|
msgbox.Show();
|
|
await Task.Run(() =>
|
|
{
|
|
StateManager.UpdateCar(car);
|
|
Console.WriteLine("Saved car: " + car.Id);
|
|
});
|
|
Console.WriteLine("Car saved. " + car.Id);
|
|
btnSave.Enabled = true;
|
|
btnDelete.Enabled = true;
|
|
this.Close();
|
|
msgbox.Close();
|
|
|
|
|
|
|
|
}
|
|
|
|
private void btnDelete_Click(object sender, EventArgs e)
|
|
{
|
|
//are you sure?
|
|
var result = MessageBox.Show("Are you sure you want to delete this car?", "Delete Car", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
|
if (result == DialogResult.Yes)
|
|
{
|
|
Console.WriteLine("Deleting car: " + car.Id);
|
|
StateManager.RemoveCar(car);
|
|
this.Close();
|
|
}
|
|
}
|
|
|
|
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
|
{
|
|
if (keyData == Keys.Enter)
|
|
{
|
|
btnSave.PerformClick();
|
|
return true; // Indicate that the key has been handled
|
|
}
|
|
if (keyData == Keys.Escape)
|
|
{
|
|
this.Close();
|
|
return true; // Indicate that the key has been handled
|
|
}
|
|
if (keyData == Keys.Delete)
|
|
{
|
|
btnDelete.PerformClick();
|
|
return true; // Indicate that the key has been handled
|
|
}
|
|
return base.ProcessCmdKey(ref msg, keyData);
|
|
}
|
|
}
|
|
}
|