Function in Class

This commit is contained in:
Frozd
2025-09-18 08:34:06 +02:00
parent 1654c4d722
commit 7d71783102
11 changed files with 1154 additions and 24 deletions

View File

@@ -18,17 +18,74 @@ namespace CarManagerV2
{
InitializeComponent();
SafeManager.initializeFile("cars.csv");
cars = SafeManager.readCars("cars.csv");
refreshCars(cars);
List<Car> _cars = SafeManager.readCars("cars.csv");
refreshCars(_cars);
}
private void refreshCars(List<Car> cars)
private void refreshCars(List<Car> _cars)
{
//if cars havent changed, dont refresh
//bool changed = false;
//foreach (Car car in _cars)
//{
// Car existing = cars.FirstOrDefault(c => c.Id == car.Id);
// if (existing == null)
// {
// Console.WriteLine($"Added: {car.Id}");
// changed = true;
// break;
// }
// else if (existing.isChanged(car))
// {
// Console.WriteLine($"Modified: {car.Id} / {existing.Id}");
// changed = true;
// break;
// }
//}
//if(!changed && cars.Count == _cars.Count)
//{
// Console.WriteLine("Cars are the same, not refreshing.");
// cars = _cars;
// return;
//}
cars = _cars;
//if(cars.SequenceEqual(_cars))
//{
// Console.WriteLine("Cars are the same, not refreshing.");
// return;
//}
//else
//{
// Console.WriteLine("Cars have changed, refreshing.");
// Console.WriteLine($"Old cars count: {cars.Count}, New cars count: {_cars.Count}");
// //find differences
// Console.WriteLine("Saved:");
// foreach (var car in cars)
// {
// Console.Write($"{car.Id}, {car.Make} {car.Model}, {car.Year} | ");
// }
// Console.WriteLine("-------------------");
// Console.WriteLine("New:");
// foreach (var car in _cars)
// {
// Console.Write($"{car.Id}, {car.Make} {car.Model}, {car.Year} | ");
// }
// Console.WriteLine();
// var addedCars = _cars.Except(cars).ToList();
// var removedCars = cars.Except(_cars).ToList();
// var modifiedCars = _cars.Where(c => cars.Any(c2 => c2.Id == c.Id && !c2.Equals(c))).ToList();
// Console.WriteLine($"Added cars: {addedCars.Count}, Removed cars: {removedCars.Count}, Modified cars: {modifiedCars.Count}");
//}
flpCars.Controls.Clear();
foreach (Car car in cars)
foreach (Car car in _cars)
{
CarCard card = new CarCard();
card.CarName = $"{car.Make} {car.Model} ({car.Id})";
card.CarName = $"{car.Make} {car.Model}";
card.CarDetails = $"{car.Year}, {car.Mileage} km, ${car.Price}";
card.CarImage = ImageManager.GetImage(car);
card.CardClicked += (s, e) =>
@@ -38,9 +95,10 @@ namespace CarManagerV2
detailsForm.FormClosed += (s2, e2) =>
{
// refresh cars
Application.DoEvents();
Console.WriteLine("Refreshing cars...");
cars = SafeManager.readCars("cars.csv");
refreshCars(cars);
List<Car> __cars = SafeManager.readCars("cars.csv");
refreshCars(__cars);
};
detailsForm.ShowDialog();
};
@@ -57,5 +115,50 @@ namespace CarManagerV2
{
}
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
}
private void btnNewCar_Click(object sender, EventArgs e)
{
Car foocar = StateManager.createCar("New", "Car", 2020, "White", 0, 20000);
CarDetailsForm detailsForm = new CarDetailsForm(foocar);
detailsForm.FormClosed += (s2, e2) =>
{
// refresh cars
Console.WriteLine("Refreshing cars...");
cars = SafeManager.readCars("cars.csv");
refreshCars(cars);
};
detailsForm.ShowDialog();
}
void searchList(string query)
{
List<Car> results = new List<Car>();
foreach (Car car in cars)
{
if (car.Make.ToLower().Contains(query.ToLower()) || car.Model.ToLower().Contains(query.ToLower()) || car.Year.ToString().Contains(query) || car.Mileage.ToString().Contains(query) || car.Price.ToString().Contains(query))
{
results.Add(car);
}
}
refreshCars(results);
}
private void tbxSearch_TextChanged(object sender, EventArgs e)
{
string query = tbxSearch.Text;
if(string.IsNullOrWhiteSpace(query))
{
refreshCars(cars);
}
else
{
searchList(query);
}
}
}
}