diff --git a/CarManagerV3/ImageManager.cs b/CarManagerV3/ImageManager.cs
index 9764531..ae305d7 100644
--- a/CarManagerV3/ImageManager.cs
+++ b/CarManagerV3/ImageManager.cs
@@ -7,9 +7,14 @@ using System.Threading.Tasks;
namespace CarManagerV3
{
+ ///
+ /// The ImageManager class is responsible for managing car images, including fetching and storing them locally.
+ ///
internal class ImageManager
{
-
+ ///
+ /// Initializes the image folder by creating it if it does not exist.
+ ///
public static void InitializeImageFolder()
{
string path = "images";
@@ -19,6 +24,11 @@ namespace CarManagerV3
}
}
+ ///
+ /// Generates the image path for a given car based on its attributes.
+ ///
+ /// The car.
+ /// The image path for this Car.
public static string GetImagePath(Car car)
{
string basePath = "images/";
@@ -26,6 +36,11 @@ namespace CarManagerV3
return basePath + fileName;
}
+ ///
+ /// Gets the image for a given car, fetching it if necessary.
+ ///
+ /// The car.
+ /// The object for the car.
public static Image GetImage(Car car)
{
InitializeImageFolder();
@@ -43,11 +58,16 @@ namespace CarManagerV3
}
+ ///
+ /// Fetches an image for a Car from https://cdn.imagin.studio/getimage if it does not already exist locally and saves it to images/Make_Model_Year_Color.webp>.
+ /// If the image cannot be fetched, a placeholder image is used instead.
+ /// Uses example customer id "hrjavascript-mastery", because they wouldn't give me one. Stole this from a tutorial page. :)
+ ///
+ /// The car.
public static void FetchImage(Car car)
{
// Fetch the image from https://cdn.imagin.studio/getimage and save it to images/Make_Model_Year.webp
// use params like this: ?customer=hrjavascript-mastery&zoomType=fullscreen&make={make}&modelFamily={model}&modelYear={year}&angle=front&paintDescription={color}&fileType=png
-
// check if the image already exists
string path = GetImagePath(car);
if (System.IO.File.Exists(path))
@@ -55,7 +75,7 @@ namespace CarManagerV3
return;
}
string url = $"https://cdn.imagin.studio/getimage?customer=hrjavascript-mastery&zoomType=fullscreen&make={car.Make}&modelFamily={car.Model}&modelYear={car.Year}&angle=front&paintDescription={car.Color}&fileType=png";
- //add Referer header
+ //add Referer header to avoid 403 error
using (var client = new System.Net.WebClient())
{
client.Headers.Add("Referer", "http://localhost");
@@ -65,7 +85,7 @@ namespace CarManagerV3
}
catch
{
- // if error, use no_image_available.png
+ // if error, use fallback image no_image_available.png
System.IO.File.Copy("images/no_image_available.png", path);
}
}