@using LANCommander.SDK.Models @inject SDK.Client Client @inject DepotService DepotService @inject LibraryService LibraryService @inject ImportService ImportService @inject IMessageService MessageService @inject ILogger Logger @inject LocalizationService LocalizationService
@if (Item.DataItem is DepotGame game) {
@Item.Name
} else {
@Item.Name
} @if ((Item.DataItem is DepotGame game2 && !game2.InLibrary) || (Item != null && !LibraryService.IsInLibrary(Item!.Key))) {
@code { [Parameter] public Models.ListItem Item { get; set; } [Parameter] public EventCallback OnClick { get; set; } bool Importing = false; async Task AddToLibrary() { try { Importing = true; StateHasChanged(); await Task.Yield(); await ImportService.ImportGameAsync(Item.Key); await LibraryService.AddToLibraryAsync(Item.Key); await LibraryService.RefreshItemsAsync(); Importing = false; StateHasChanged(); await Task.Yield(); MessageService.Success(LocalizationService.GetString("GameAddedToLibrary", Item.Name)); } catch (Exception ex) { Importing = false; StateHasChanged(); await Task.Yield(); Logger?.LogError(ex, $"{Item.Name} ({Item.Key}) could not be added to your library!"); MessageService.Error(LocalizationService.GetString("GameCouldNotBeAddedToLibrary", Item.Name)); } } }