@inject GameCustomFieldService GameCustomFieldService @inject IMessageService MessageService @inject ILogger Logger
@code { [CascadingParameter(Name = "GameId")] public Guid GameId { get; set; } ICollection _customFields { get; set; } = new List(); Game _game; protected override async Task OnInitializedAsync() => await LoadCustomFields(); async Task LoadCustomFields() => _customFields = await GameCustomFieldService.GetAsync(cf => cf.GameId == GameId); async Task Add() { _customFields.Add(new GameCustomField { GameId = GameId }); } async Task Remove(GameCustomField customField) { if (customField.Id != Guid.Empty) await GameCustomFieldService.DeleteAsync(customField); _customFields.Remove(customField); } public async Task Save() { try { foreach (var customField in _customFields) { if (customField.Id == Guid.Empty) await GameCustomFieldService.AddAsync(customField); else await GameCustomFieldService.UpdateAsync(customField); } MessageService.SuccessAsync("Custom fields updated!"); } catch (Exception ex) { MessageService.ErrorAsync("Could not save custom fields!"); Logger?.LogError(ex, "Could not save custom fields!"); } await LoadCustomFields(); } }