using Comal.Classes; using InABox.Configuration; using InABox.Core; using InABox.DynamicGrid; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PRSDesktop; public class EmployeeRoleCrossTab : DynamicManyToManyCrossTab { public DynamicGridFilterButtonComponent EmployeeFilter { get; init; } public DynamicGridFilterButtonComponent RoleFilter { get; init; } public EmployeeRoleCrossTab() { EmployeeFilter = new(this, new GlobalConfiguration(nameof(Employee)), new UserConfiguration(nameof(Employee))) { ButtonText = "Employees" }; RoleFilter = new(this, new GlobalConfiguration(nameof(Role)), new UserConfiguration(nameof(Role))) { ButtonText = "Roles" }; EmployeeFilter.OnFilterRefresh += () => Refresh(false, true); RoleFilter.OnFilterRefresh += () => Refresh(true, true); } protected override Filter? RowFilter() { return EmployeeFilter.GetFilter(); } protected override Filter? ColumnFilter() { return RoleFilter.GetFilter(); } protected override Columns? LoadColumnColumns() { return Columns.None().Add(x => x.Code); } protected override string FormatColumnHeader(CoreRow row) { return row.Get(x => x.Code); } protected override SortOrder? LoadColumnSort() { return null; } protected override DynamicGridColumns LoadRowColumns() { var columns = new DynamicGridColumns(); columns.Add(x => x.Code, 100, "Code", "", Alignment.MiddleLeft); columns.Add(x => x.Name, 100, "Name", "", Alignment.MiddleLeft); return columns; } }