From 1a6dff63b27ed502750e2c2d44da3d7fcd539f76 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sat, 14 Jan 2023 15:07:45 -0600 Subject: [PATCH] Fix action and multiplayer mode editors not linking to games properly and now creating fields with correct index --- LANCommander/Components/ActionEditor.razor | 8 ++++++-- LANCommander/Components/MultiplayerModeEditor.razor | 8 ++++++-- LANCommander/Data/Models/Action.cs | 5 ++++- LANCommander/Data/Models/MultiplayerMode.cs | 6 ++++-- LANCommander/Program.cs | 1 - LANCommander/wwwroot/js/Select.js | 4 ++-- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/LANCommander/Components/ActionEditor.razor b/LANCommander/Components/ActionEditor.razor index 024c10f..5dbeeb5 100644 --- a/LANCommander/Components/ActionEditor.razor +++ b/LANCommander/Components/ActionEditor.razor @@ -23,6 +23,7 @@ @foreach (var action in Actions) { + var index = i; @@ -34,10 +35,11 @@ - + +
-
+ + i++; } diff --git a/LANCommander/Components/MultiplayerModeEditor.razor b/LANCommander/Components/MultiplayerModeEditor.razor index e5f8154..f47a8fb 100644 --- a/LANCommander/Components/MultiplayerModeEditor.razor +++ b/LANCommander/Components/MultiplayerModeEditor.razor @@ -24,6 +24,8 @@ @foreach (var multiplayerMode in MultiplayerModes) { + var index = i; + - +
-
+ + i++; } diff --git a/LANCommander/Data/Models/Action.cs b/LANCommander/Data/Models/Action.cs index 8f1d65f..2b5f630 100644 --- a/LANCommander/Data/Models/Action.cs +++ b/LANCommander/Data/Models/Action.cs @@ -12,7 +12,10 @@ namespace LANCommander.Data.Models public string? WorkingDirectory { get; set; } public bool PrimaryAction { get; set; } + public Guid GameId { get; set; } [JsonIgnore] - public virtual Game Game { get; set; } + [ForeignKey(nameof(GameId))] + [InverseProperty("Actions")] + public virtual Game? Game { get; set; } } } diff --git a/LANCommander/Data/Models/MultiplayerMode.cs b/LANCommander/Data/Models/MultiplayerMode.cs index 394af52..ac2eec4 100644 --- a/LANCommander/Data/Models/MultiplayerMode.cs +++ b/LANCommander/Data/Models/MultiplayerMode.cs @@ -13,8 +13,10 @@ namespace LANCommander.Data.Models public int MinPlayers { get; set; } public int MaxPlayers { get; set; } public int Spectators { get; set; } - + public Guid? GameId { get; set; } [JsonIgnore] - public virtual Game Game { get; set; } + [ForeignKey(nameof(GameId))] + [InverseProperty("MultiplayerModes")] + public virtual Game? Game { get; set; } } } diff --git a/LANCommander/Program.cs b/LANCommander/Program.cs index 450b7dc..7617d36 100644 --- a/LANCommander/Program.cs +++ b/LANCommander/Program.cs @@ -56,7 +56,6 @@ builder.Services.AddAuthentication(options => builder.Services.AddControllersWithViews().AddJsonOptions(x => { x.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles; - x.JsonSerializerOptions.MaxDepth = 3; }); builder.Services.AddServerSideBlazor(); diff --git a/LANCommander/wwwroot/js/Select.js b/LANCommander/wwwroot/js/Select.js index 63528a7..5d9fdb2 100644 --- a/LANCommander/wwwroot/js/Select.js +++ b/LANCommander/wwwroot/js/Select.js @@ -43,8 +43,8 @@ }, onInitialize: function () { for (let option of Object.keys(this.options)) { - if (option.selected) { - this.$input.siblings('select').append(``); + if (this.options[option].selected) { + this.$input.siblings('select').append(``); } } }