@page "/gallery"
@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; }
}