using Manager.App.Components.Dialogs; using Manager.App.Models.Library; using Manager.Data.Entities.LibraryContext; using Microsoft.AspNetCore.Components; using MudBlazor; namespace Manager.App.Components.Pages; public partial class Channels : ComponentBase { private readonly DialogOptions _dialogOptions = new() { BackdropClick = false, CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.ExtraLarge }; private MudTable? _table; private async Task> ServerReload(TableState state, CancellationToken token) { var results = await LibraryService.GetChannelsAsync(state.PageSize, state.Page * state.PageSize, token); return !results.IsSuccess ? new TableData() : new TableData { Items = results.Value, TotalItems = results.Total }; } private async Task OnAddAccountDialogAsync() { var libSettings = LibraryOptions.Value; var parameters = new DialogParameters { { x => x.DefaultUserAgent, libSettings.DefaultUserAgent } }; var dialog = await DialogService.ShowAsync("Add account", parameters, _dialogOptions); var result = await dialog.Result; if (result == null || result.Canceled || result.Data == null) { return; } var clientPrep = (ClientPrep)result.Data; if (clientPrep?.YouTubeClient == null) { return; } var savedResult = await ClientService.SaveClientAsync(clientPrep.YouTubeClient, clientPrep.Channel); if (!savedResult.IsSuccess) { Snackbar.Add($"Failed to store client: {savedResult.Error?.Description ?? "Unknown!"}", Severity.Error); } else { if (_table != null) { await _table.ReloadServerData(); } Snackbar.Add($"Client {clientPrep.Channel?.Handle ?? clientPrep.YouTubeClient.Id} saved!", Severity.Success); } } }