@page "/admin/companies/{id:int}/edit" @attribute [Authorize] @using TaxBaik.Web.Components.Admin.Forms @inject IApiClient ApiClient @inject NavigationManager Navigation @inject ISnackbar Snackbar @inject IDialogService DialogService 고객사 수정 Settings 고객사 수정 고객사 정보를 수정합니다. 취소 @if (isLoading) { } else if (formModel == null) { 고객사를 찾을 수 없습니다. } else { 고객사 삭제 } @code { [Parameter] public int Id { get; set; } private CompanyForm.CompanyFormModel? formModel; private bool isLoading = true; protected override async Task OnInitializedAsync() { try { var company = await ApiClient.GetAsync($"company/{Id}"); IDictionary? dict = company as IDictionary; if (dict != null) { formModel = new CompanyForm.CompanyFormModel { CompanyCode = (string)dict["companyCode"], CompanyName = (string)dict["companyName"], ContactPerson = (string?)dict["contactPerson"], Phone = (string?)dict["phone"], Email = (string?)dict["email"], Memo = (string?)dict["memo"], IsActive = (bool)(dynamic)dict["isActive"] }; } } catch (Exception ex) { Snackbar.Add($"고객사 로드 실패: {ex.Message}", Severity.Error); } finally { isLoading = false; } } private void GoBack() { Navigation.NavigateTo("/taxbaik/admin/companies"); } private async Task HandleUpdate(CompanyForm.CompanyFormModel model) { try { await ApiClient.PutAsync($"company/{Id}", new { companyCode = model.CompanyCode, companyName = model.CompanyName, contactPerson = model.ContactPerson, phone = model.Phone, email = model.Email, memo = model.Memo, isActive = model.IsActive }); Snackbar.Add("고객사가 수정되었습니다.", Severity.Success); Navigation.NavigateTo("/taxbaik/admin/companies"); } catch (Exception ex) { Snackbar.Add($"수정 실패: {ex.Message}", Severity.Error); } } private async Task DeleteCompany() { var result = await DialogService.ShowMessageBox( "고객사 삭제", "정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", "삭제", "취소"); if (result != true) return; try { await ApiClient.DeleteAsync($"company/{Id}"); Snackbar.Add("고객사가 삭제되었습니다.", Severity.Success); Navigation.NavigateTo("/taxbaik/admin/companies"); } catch (Exception ex) { Snackbar.Add($"삭제 실패: {ex.Message}", Severity.Error); } } }