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); } }