@page "/gallery"

@infoText

@code { List imagePaths = new List(); string selectedImage; string infoText = "Info Text"; string popupStyle = "display: none;"; protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); // Get the physical path to the folder string folderPath = Path.Combine(_environment.WebRootPath, "generated_images"); if (Directory.Exists(folderPath)) { // Load the image file names from the folder var imageFiles = Directory.GetFiles(folderPath, "*.jpg"); // Get the relative paths to the images imagePaths = imageFiles.Select(file => file.Replace(_environment.WebRootPath, "").Replace("\\", "/")).ToList(); } } private async void ShowImageInfo(string imagePath) { selectedImage = imagePath; popupStyle = "display: block;"; infoText = await GetInfoTextForImageAsync(imagePath); } private async Task GetInfoTextForImageAsync(string imagePath) { // Bestimme den Ordnerpfad, in dem sich die Bilder und die info_texts.txt Datei befinden string folderPath = Path.Combine(_environment.WebRootPath, "generated_images"); // Bestimme den Pfad zur info_texts.txt Datei string infoTextsFilePath = Path.Combine(folderPath, "info_texts.txt"); // Überprüfe, ob die Datei existiert if (!File.Exists(infoTextsFilePath)) return $"Kein Infotext für {imagePath} gefunden."; // Lies alle Zeilen der Datei var lines = await File.ReadAllLinesAsync(infoTextsFilePath); string adaptedImagePath = imagePath.Substring(1) + ":"; // Durchsuche jede Zeile nach dem gegebenen imagePath foreach (var line in lines) { if (line.StartsWith(adaptedImagePath)) // Überprüft, ob die Zeile mit dem Dateinamen des Bildes beginnt { // Trenne den Dateinamen und den Infotext und gib den Infotext zurück return line.Split(new[] { ':' }, 2).LastOrDefault()?.Trim(); } } return $"Kein Infotext für {imagePath} gefunden."; } private void CloseImageInfo() { popupStyle = "display: none;"; } [Inject] private IWebHostEnvironment _environment { get; set; } }