@page "/admin/areas/{Id:int}/edit" @using ScadaLink.Security @using ScadaLink.Commons.Entities.Instances @using ScadaLink.Commons.Interfaces.Repositories @attribute [Authorize(Policy = AuthorizationPolicies.RequireDesign)] @inject ITemplateEngineRepository TemplateEngineRepository @inject NavigationManager NavigationManager
← Back

Edit Area

@if (_loading) { } else if (_errorMessage != null) {
@_errorMessage
} else {
@if (_formError != null) {
@_formError
}
}
@code { [Parameter] public int Id { get; set; } private Area? _area; private string _name = string.Empty; private string? _formError; private string? _errorMessage; private bool _loading = true; private bool _saving; private ToastNotification _toast = default!; protected override async Task OnInitializedAsync() { try { _area = await TemplateEngineRepository.GetAreaByIdAsync(Id); if (_area == null) { _errorMessage = $"Area #{Id} not found."; } else { _name = _area.Name; } } catch (Exception ex) { _errorMessage = $"Failed to load area: {ex.Message}"; } _loading = false; } private async Task Save() { _formError = null; if (string.IsNullOrWhiteSpace(_name)) { _formError = "Name is required."; return; } _saving = true; try { _area!.Name = _name.Trim(); await TemplateEngineRepository.UpdateAreaAsync(_area); await TemplateEngineRepository.SaveChangesAsync(); NavigationManager.NavigateTo("/admin/areas"); } catch (Exception ex) { _formError = $"Save failed: {ex.Message}"; } _saving = false; } }