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 @@ -