@using Indotalent.Features.Organization.Employee @using Indotalent.Features.Organization.Employee.Cqrs @using Indotalent.Shared.Utils @using MudBlazor @inject EmployeeService EmployeeService @inject ISnackbar Snackbar
Add New Employee Complete the profile and contact details of the employee.
General Information Employee Name Employee Number Job Title Commission Rate (%) Employee Group @foreach (var item in _lookupData.EmployeeGroups) { @item.Name } Employee Category @foreach (var item in _lookupData.EmployeeCategories) { @item.Name } Description Address Information Street City State / Province Zip Code Country Contact & Online Phone Number Fax Number WhatsApp Email Address Website Social Media LinkedIn Facebook Instagram Twitter (X) TikTok
Cancel @if (_processing) { Processing... } else { Create Employee }
@code { [Parameter] public EventCallback OnCancel { get; set; } [Parameter] public EventCallback OnSuccess { get; set; } private MudForm _form = default!; private CreateEmployeeValidator _validator = new(); private CreateEmployeeRequest _model = new(); private LookupEmployeeResponse _lookupData = new(); private bool _processing = false; protected override async Task OnInitializedAsync() { var response = await EmployeeService.GetEmployeeLookupAsync(); if (response != null && response.IsSuccess) { _lookupData = response.Value!; } } private async Task Submit() { await _form.Validate(); if (!_form.IsValid) return; _processing = true; try { var response = await EmployeeService.CreateEmployeeAsync(_model); await Task.Delay(500); if (response != null && response.IsSuccess) { Snackbar.Add("Employee created successfully", Severity.Success); await OnSuccess.InvokeAsync(); } } finally { _processing = false; } } }