From 7ecdedf5615b930c978486019390a5ce04b82949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20LAVERGNE?= Date: Sat, 1 Jun 2024 19:39:23 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Ajout=20en=20test=20de=20la=20co?= =?UTF-8?q?nvertion=20d'image=20avec=20interface=20et=20base64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/Trek-12/Models/Game/Base64Converter.cs | 29 +++++++++++++++++++ .../Models/Interfaces/IImageConverter.cs | 15 ++++++++++ source/Trek-12/Models/Models.csproj | 1 - 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 source/Trek-12/Models/Game/Base64Converter.cs create mode 100644 source/Trek-12/Models/Interfaces/IImageConverter.cs diff --git a/source/Trek-12/Models/Game/Base64Converter.cs b/source/Trek-12/Models/Game/Base64Converter.cs new file mode 100644 index 0000000..ea11bce --- /dev/null +++ b/source/Trek-12/Models/Game/Base64Converter.cs @@ -0,0 +1,29 @@ +using System; +using Models.Interfaces; + +namespace Models.Game +{ + /// + /// Converter to Base64 + /// + public class Base64Converter : IImageConverter + { + /// + /// Converts an image to a base64 string + /// + /// The path to access the image + /// The base64 string representation of the image + /// Native .NET exception + public string ConvertImage(string imagePath) + { + if (!File.Exists(imagePath)) + { + // native .NET exception + throw new FileNotFoundException("Image file not found", imagePath); + } + + byte[] imageBytes = File.ReadAllBytes(imagePath); + return Convert.ToBase64String(imageBytes); + } + } +} diff --git a/source/Trek-12/Models/Interfaces/IImageConverter.cs b/source/Trek-12/Models/Interfaces/IImageConverter.cs new file mode 100644 index 0000000..ec5f783 --- /dev/null +++ b/source/Trek-12/Models/Interfaces/IImageConverter.cs @@ -0,0 +1,15 @@ +namespace Models.Interfaces +{ + /// + /// Interface for image converters + /// + public interface IImageConverter + { + /// + /// Converter to any type that can be converted to a string (ex: Base64) + /// + /// + /// + string ConvertImage(string imagePath); + } +} diff --git a/source/Trek-12/Models/Models.csproj b/source/Trek-12/Models/Models.csproj index bac9559..072e39c 100644 --- a/source/Trek-12/Models/Models.csproj +++ b/source/Trek-12/Models/Models.csproj @@ -7,7 +7,6 @@ -