fix: safeManager error handeling & Load fix
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@@ -18,10 +19,14 @@ namespace CarManagerV3
|
|||||||
public static void InitializeImageFolder()
|
public static void InitializeImageFolder()
|
||||||
{
|
{
|
||||||
string path = "images";
|
string path = "images";
|
||||||
|
|
||||||
if (!System.IO.Directory.Exists(path))
|
if (!System.IO.Directory.Exists(path))
|
||||||
{
|
{
|
||||||
System.IO.Directory.CreateDirectory(path);
|
System.IO.Directory.CreateDirectory(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not catch here. If we cannot create our images folder, the program wont work.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -47,15 +52,18 @@ namespace CarManagerV3
|
|||||||
FetchImage(car);
|
FetchImage(car);
|
||||||
string path = GetImagePath(car);
|
string path = GetImagePath(car);
|
||||||
// does image exist?
|
// does image exist?
|
||||||
if (System.IO.File.Exists(path))
|
try
|
||||||
{
|
{
|
||||||
return Image.FromFile(path);
|
if (System.IO.File.Exists(path))
|
||||||
|
{
|
||||||
|
return Image.FromFile(path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return Image.FromFile("images/no_image_available.png");
|
Console.Error.WriteLine($"Error loading image: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
return Image.FromFile("images/no_image_available.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ namespace CarManagerV3
|
|||||||
}
|
}
|
||||||
|
|
||||||
SafeManager.InitializeFile(filepath);
|
SafeManager.InitializeFile(filepath);
|
||||||
|
StateManager.setFilePath(filepath);
|
||||||
List<Car> _cars = SafeManager.ReadCars(filepath);
|
List<Car> _cars = SafeManager.ReadCars(filepath);
|
||||||
|
|
||||||
refreshCars(_cars);
|
refreshCars(_cars);
|
||||||
|
|||||||
@@ -24,14 +24,22 @@ namespace CarManagerV3
|
|||||||
/// <param name="path">The path.</param>
|
/// <param name="path">The path.</param>
|
||||||
public static void InitializeFile(string path)
|
public static void InitializeFile(string path)
|
||||||
{
|
{
|
||||||
if (!File.Exists(@path))
|
try
|
||||||
{
|
{
|
||||||
using (StreamWriter writer = new StreamWriter(@path))
|
if (!File.Exists(@path))
|
||||||
{
|
{
|
||||||
// Create the file, empty
|
using (StreamWriter writer = new StreamWriter(@path))
|
||||||
writer.WriteLine();
|
{
|
||||||
|
// Create the file, empty
|
||||||
|
writer.WriteLine();
|
||||||
|
writer.Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"Error initializing file: {ex.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -44,15 +52,22 @@ namespace CarManagerV3
|
|||||||
public static List<Car> ReadCars(string path)
|
public static List<Car> ReadCars(string path)
|
||||||
{
|
{
|
||||||
List<Car> cars = new List<Car>();
|
List<Car> cars = new List<Car>();
|
||||||
using (StreamReader reader = new StreamReader(@path))
|
try
|
||||||
{
|
{
|
||||||
string line;
|
using (StreamReader reader = new StreamReader(@path))
|
||||||
while ((line = reader.ReadLine()) != null)
|
|
||||||
{
|
{
|
||||||
// Process the line
|
string line;
|
||||||
if (line == "") continue;
|
while ((line = reader.ReadLine()) != null)
|
||||||
cars.Add(Car.FromCsvString(line));
|
{
|
||||||
|
// Process the line
|
||||||
|
if (line == "") continue;
|
||||||
|
cars.Add(Car.FromCsvString(line));
|
||||||
|
}
|
||||||
|
reader.Close();
|
||||||
}
|
}
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"Error reading cars from file: {ex.Message}");
|
||||||
}
|
}
|
||||||
return cars;
|
return cars;
|
||||||
}
|
}
|
||||||
@@ -64,12 +79,19 @@ namespace CarManagerV3
|
|||||||
/// <param name="cars">A <see cref="List{Car}"/> containing all cars to save.</param>
|
/// <param name="cars">A <see cref="List{Car}"/> containing all cars to save.</param>
|
||||||
public static void SaveCars(string path, List<Car> cars)
|
public static void SaveCars(string path, List<Car> cars)
|
||||||
{
|
{
|
||||||
using (StreamWriter writer = new StreamWriter(@path))
|
try
|
||||||
{
|
{
|
||||||
foreach (Car car in cars)
|
using (StreamWriter writer = new StreamWriter(@path))
|
||||||
{
|
{
|
||||||
writer.WriteLine(car.ToCsvString());
|
foreach (Car car in cars)
|
||||||
|
{
|
||||||
|
writer.WriteLine(car.ToCsvString());
|
||||||
|
}
|
||||||
|
writer.Close();
|
||||||
}
|
}
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"Error saving cars to file: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,29 +105,37 @@ namespace CarManagerV3
|
|||||||
public static void AddRecentPath(string path)
|
public static void AddRecentPath(string path)
|
||||||
{
|
{
|
||||||
List<string> paths = new List<string>();
|
List<string> paths = new List<string>();
|
||||||
if (File.Exists(recentPathsFile))
|
try
|
||||||
{
|
{
|
||||||
using (StreamReader reader = new StreamReader(recentPathsFile))
|
if (File.Exists(recentPathsFile))
|
||||||
{
|
{
|
||||||
string line;
|
using (StreamReader reader = new StreamReader(recentPathsFile))
|
||||||
while ((line = reader.ReadLine()) != null)
|
|
||||||
{
|
{
|
||||||
paths.Add(line);
|
string line;
|
||||||
|
while ((line = reader.ReadLine()) != null)
|
||||||
|
{
|
||||||
|
paths.Add(line);
|
||||||
|
}
|
||||||
|
reader.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
paths.Remove(path);
|
||||||
paths.Remove(path);
|
paths.Insert(0, path);
|
||||||
paths.Insert(0, path);
|
if (paths.Count > 5)
|
||||||
if (paths.Count > 5)
|
|
||||||
{
|
|
||||||
paths = paths.Take(5).ToList();
|
|
||||||
}
|
|
||||||
using (StreamWriter writer = new StreamWriter(recentPathsFile))
|
|
||||||
{
|
|
||||||
foreach (string p in paths)
|
|
||||||
{
|
{
|
||||||
writer.WriteLine(p);
|
paths = paths.Take(5).ToList();
|
||||||
}
|
}
|
||||||
|
using (StreamWriter writer = new StreamWriter(recentPathsFile))
|
||||||
|
{
|
||||||
|
foreach (string p in paths)
|
||||||
|
{
|
||||||
|
writer.WriteLine(p);
|
||||||
|
}
|
||||||
|
writer.Close();
|
||||||
|
}
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"Error managing recent paths: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,16 +148,23 @@ namespace CarManagerV3
|
|||||||
public static List<string> GetRecentPaths()
|
public static List<string> GetRecentPaths()
|
||||||
{
|
{
|
||||||
List<string> paths = new List<string>();
|
List<string> paths = new List<string>();
|
||||||
if (File.Exists(recentPathsFile))
|
try
|
||||||
{
|
{
|
||||||
using (StreamReader reader = new StreamReader(recentPathsFile))
|
if (File.Exists(recentPathsFile))
|
||||||
{
|
{
|
||||||
string line;
|
using (StreamReader reader = new StreamReader(recentPathsFile))
|
||||||
while ((line = reader.ReadLine()) != null)
|
|
||||||
{
|
{
|
||||||
paths.Add(line);
|
string line;
|
||||||
|
while ((line = reader.ReadLine()) != null)
|
||||||
|
{
|
||||||
|
paths.Add(line);
|
||||||
|
}
|
||||||
|
reader.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"Error reading recent paths: {ex.Message}");
|
||||||
}
|
}
|
||||||
return paths;
|
return paths;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user