@page "/organization/employee" @using Indotalent.Features.Organization.Employee @using Indotalent.Features.Organization.Employee.Cqrs @using MudBlazor @if (_view == View.Create) { <_EmployeeCreateForm OnCancel="() => _view = View.Table" OnSuccess="() => _view = View.Table" /> } else if (_view == View.Update || _view == View.Detail) { <_EmployeeUpdateForm Data="_data!" ReadOnly="@(_view == View.Detail)" OnCancel="() => _view = View.Table" OnSuccess="() => _view = View.Table" /> } else if (_view == View.Income) { <_EmployeeIncomeDataTable EmployeeId="@_selectedId" EmployeeName="@_selectedName" EmployeeCode="@_selectedCode" OnBack="() => _view = View.Table" /> } else if (_view == View.Deduction) { <_EmployeeDeductionDataTable EmployeeId="@_selectedId" EmployeeName="@_selectedName" EmployeeCode="@_selectedCode" OnBack="() => _view = View.Table" /> } else { <_EmployeeDataTable OnAdd="() => _view = View.Create" OnEdit="d => { _data = d; _view = View.Update; }" OnView="d => { _data = d; _view = View.Detail; }" OnIncome="HandleIncome" OnDeduction="HandleDeduction" /> } @code { private enum View { Table, Create, Update, Detail, Income, Deduction } private View _view = View.Table; private UpdateEmployeeRequest? _data; private string _selectedId = string.Empty; private string _selectedName = string.Empty; private string _selectedCode = string.Empty; private void HandleIncome((string Id, string Name, string Code) args) { _selectedId = args.Id; _selectedName = args.Name; _selectedCode = args.Code; _view = View.Income; } private void HandleDeduction((string Id, string Name, string Code) args) { _selectedId = args.Id; _selectedName = args.Name; _selectedCode = args.Code; _view = View.Deduction; } }