@inherits FeedbackComponent @using LANCommander.Server.Services.Abstractions @using LANCommander.SDK.Enums @inject IMediaGrabberService MediaGrabberService @inject IMessageService MessageService @inject ILogger Logger @foreach (var group in Results) {

@group.First().Group

} @if (Results.Count() == 0 && !Loading) { }
@code { [Parameter] public string Search { get; set; } [Parameter] public MediaType Type { get; set; } MediaGrabberResult Media { get; set; } double Size { get; set; } = 200; bool Loading { get; set; } = true; IEnumerable> Results = new List>(); Dictionary Images { get; set; } = new Dictionary(); protected override async Task OnFirstAfterRenderAsync() { Type = Options.Type; Search = Options.Search; await GetResults(Type, Search); } private async Task GetResults(MediaType type, string search) { try { Loading = true; if (!String.IsNullOrWhiteSpace(search)) { Results = (await MediaGrabberService.SearchAsync(type, search)).GroupBy(r => r.Group); Loading = false; await InvokeAsync(StateHasChanged); } } catch (Exception ex) { MessageService.Error("An unknown error occurred when trying to get media results"); Logger.LogError(ex, "An unknown error occurred when trying to get media results"); Loading = false; } } private void OnImageSelected(string key) { Media = Results.SelectMany(g => g).FirstOrDefault(r => r.Id == key); } private async Task OnImagePicked(string key) { OnImageSelected(key); await base.OkCancelRefWithResult!.OnOk(Media); await CloseFeedbackAsync(); } public override async Task OnFeedbackOkAsync(ModalClosingEventArgs args) { await base.OkCancelRefWithResult!.OnOk(Media); await CloseFeedbackAsync(); } }