@inject DatabaseServiceFactory DatabaseServiceFactory @inject NavigationManager NavigationManager General @if (Id != Guid.Empty) { Media Archives Actions Multiplayer Save Paths Keys Scripts if (Game.DependentGames != null && Game.DependentGames.Any(g => g.Type == GameType.Expansion)) { Expansions } if (Game.DependentGames != null && Game.DependentGames.Any(g => g.Type == GameType.Mod)) { Mods } if (Game.PlaySessions != null && Game.PlaySessions.Any()) { Play Sessions } if (Game.GameSaves != null && Game.GameSaves.Any()) { Saves } } @if (TitleTemplate != null) { @TitleTemplate(Game) } else { @Title } @TitleExtraTemplate?.Invoke(Game) @ChildContent?.Invoke(Game) @code { [Parameter] public Guid Id { get; set; } [Parameter] public string Title { get; set; } [Parameter] public RenderFragment? TitleTemplate { get; set; } [Parameter] public RenderFragment? TitleExtraTemplate { get; set; } [Parameter] public RenderFragment? ChildContent { get; set; } Game Game { get; set; } = new Game(); protected override async Task OnParametersSetAsync() { using (var gameService = DatabaseServiceFactory.Create()) { if (Id != Guid.Empty) Game = await gameService .Include(g => g.Actions) .Include(g => g.Archives) .Include(g => g.BaseGame) .Include(g => g.Categories) .Include(g => g.Collections) .Include(g => g.CreatedBy) .Include(g => g.DependentGames) .Include(g => g.Developers) .Include(g => g.Engine) .Include(g => g.GameSaves) .Include(g => g.Genres) .Include(g => g.Keys) .Include(g => g.Media) .Include(g => g.MultiplayerModes) .Include(g => g.Platforms) .Include(g => g.PlaySessions) .Include(g => g.Publishers) .Include(g => g.Redistributables) .Include(g => g.SavePaths) .Include(g => g.Scripts) .Include(g => g.Tags) .Include(g => g.UpdatedBy) .GetAsync(Id); else Game = new Game(); } if (Game == null) NavigationManager.NavigateTo("/Games"); } }