8202c3278b
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m17s
Phase 8: Complete WebAssembly 렌더 모드 전환 (정공법) Migration Summary: - ALL Admin components → TaxBaik.Web.Client - Routes.razor, Pages/*, Layout/*, Shared/*, Forms/* - App.razor → TaxBaik.WasmClient (호스트 컴포넌트) - Shared utilities → TaxBaik.Application.Utils Architecture: ✅ App.razor: TaxBaik.WasmClient (WebAssembly, 호스트) ✅ Routes + Pages: TaxBaik.WasmClient (WebAssembly) ✅ Layout + Shared + Forms: TaxBaik.WasmClient (WebAssembly) ✅ Services: TaxBaik.Web (API-First) Key Changes: - Namespaces: TaxBaik.Web.Components.Admin → TaxBaik.WasmClient.Components.Admin - Shared utilities: TaxBaik.Application.Utils (single source of truth) - Program.cs: MapRazorComponents<TaxBaik.WasmClient.Components.Admin.App>() - _Imports.razor: Components/Admin 폴더에 재구성 Build Status: ✅ 0 errors, 0 warnings Benefits: - Stateless server (no Circuit memory) - Client-side rendering (WebAssembly) - Unlimited concurrent users (horizontal scaling) - ERP-ready architecture Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
60 lines
1.8 KiB
Plaintext
60 lines
1.8 KiB
Plaintext
@page "/admin/inquiries/create"
|
|
@attribute [Authorize]
|
|
@using TaxBaik.Application.DTOs
|
|
@using TaxBaik.WasmClient.Components.Admin.Forms
|
|
@inject IInquiryBrowserClient InquiryClient
|
|
@inject NavigationManager Navigation
|
|
@inject ISnackbar Snackbar
|
|
|
|
<PageTitle>문의 등록</PageTitle>
|
|
|
|
<AdminCrudPageShell Title="새 문의 등록"
|
|
Eyebrow="Customer Relations"
|
|
Subtitle="고객 문의를 등록합니다. (전화, 오프라인 등)"
|
|
Loading="@false"
|
|
OnCancel="@GoBack">
|
|
<MudPaper Class="pa-4 mt-4" Elevation="1">
|
|
<InquiryForm ButtonText="등록" OnSubmit="HandleCreate" OnCancel="GoBack" />
|
|
</MudPaper>
|
|
</AdminCrudPageShell>
|
|
|
|
@code {
|
|
private void GoBack()
|
|
{
|
|
Navigation.NavigateTo("/taxbaik/admin/inquiries");
|
|
}
|
|
|
|
private async Task HandleCreate(InquiryForm.InquiryFormModel model)
|
|
{
|
|
try
|
|
{
|
|
var result = await InquiryClient.CreateAsync(new SubmitInquiryDto
|
|
{
|
|
Name = model.Name,
|
|
Phone = model.Phone,
|
|
Email = model.Email,
|
|
ServiceType = model.ServiceType,
|
|
Message = model.Message,
|
|
SuppressNotification = true
|
|
});
|
|
|
|
if (result == null)
|
|
{
|
|
Snackbar.Add("문의가 등록되지 않았습니다.", Severity.Error);
|
|
return;
|
|
}
|
|
|
|
Snackbar.Add("문의가 등록되었습니다.", Severity.Success);
|
|
Navigation.NavigateTo("/taxbaik/admin/inquiries");
|
|
}
|
|
catch (ValidationException ex)
|
|
{
|
|
Snackbar.Add(ex.Message, Severity.Error);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Snackbar.Add($"등록 실패: {ex.Message}", Severity.Error);
|
|
}
|
|
}
|
|
}
|