@page "/gallery" @using DataAccess.Data @using DataAccess.Models @inject DialogService DialogService; @inject BildInfoData BildInfoData; @inject WunschInfoData WunschInfoData; @code { List? _bildInfos; protected override async Task OnInitializedAsync() { _bildInfos = (await BildInfoData.GetAllBildInfosAsync()).ToList(); await base.OnInitializedAsync(); } async Task ShowImageDialog(BildInfoModel bildInfo) { WunschInfoModel wunschInfo = await WunschInfoData.GetWunschInfoAsync(bildInfo.WunschId); int listIndex = _bildInfos.IndexOf(_bildInfos.First(info => info.Id == bildInfo.Id)); List bilderVomWunsch = _bildInfos!.Where(info => info.WunschId == wunschInfo.Id).ToList(); async Task ButtonLeft() { listIndex = (listIndex != 0) ? listIndex - 1 : 0; bildInfo = _bildInfos[listIndex]; wunschInfo = await WunschInfoData.GetWunschInfoAsync(bildInfo.WunschId); bilderVomWunsch = _bildInfos!.Where(info => info.WunschId == wunschInfo.Id).ToList(); DialogService.Refresh(); } async Task ButtonRight() { listIndex = (listIndex != _bildInfos.Count - 1) ? listIndex + 1 : _bildInfos.Count - 1; bildInfo = _bildInfos[listIndex]; wunschInfo = await WunschInfoData.GetWunschInfoAsync(bildInfo.WunschId); bilderVomWunsch = _bildInfos!.Where(info => info.WunschId == wunschInfo.Id).ToList(); DialogService.Refresh(); } var result = await DialogService.OpenAsync(wunschInfo.Wunsch, ds => @
await ButtonLeft()) Disabled="(listIndex == 0)" Style="border-radius: 0%" Text="<">
await ButtonRight()) Disabled="(listIndex == _bildInfos.Count - 1)" Style="border-radius: 0%" Text=">">
@foreach (var bild in bilderVomWunsch) { }
, new DialogOptions() { CloseDialogOnOverlayClick = true, Width = "50%" }); } [Inject] private IWebHostEnvironment _environment { get; set; } }