chore: renamed solution
This commit is contained in:
75
CarManagerV3/ImageManager.cs
Normal file
75
CarManagerV3/ImageManager.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarManagerV3
|
||||
{
|
||||
internal class ImageManager
|
||||
{
|
||||
|
||||
public static void InitializeImageFolder()
|
||||
{
|
||||
string path = "images";
|
||||
if (!System.IO.Directory.Exists(path))
|
||||
{
|
||||
System.IO.Directory.CreateDirectory(path);
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetImagePath(Car car)
|
||||
{
|
||||
string basePath = "images/";
|
||||
string fileName = $"{car.Make}_{car.Model}_{car.Year}_{car.Color}.png";
|
||||
return basePath + fileName;
|
||||
}
|
||||
|
||||
public static Image GetImage(Car car)
|
||||
{
|
||||
InitializeImageFolder();
|
||||
FetchImage(car);
|
||||
string path = GetImagePath(car);
|
||||
// does image exist?
|
||||
if (System.IO.File.Exists(path))
|
||||
{
|
||||
return Image.FromFile(path);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Image.FromFile("images/no_image_available.png");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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))
|
||||
{
|
||||
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
|
||||
using (var client = new System.Net.WebClient())
|
||||
{
|
||||
client.Headers.Add("Referer", "http://localhost");
|
||||
try
|
||||
{
|
||||
client.DownloadFile(url, path);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// if error, use no_image_available.png
|
||||
System.IO.File.Copy("images/no_image_available.png", path);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user