public override async Task <PaginateEmployeesResponse> PaginateEmployees(PaginateEmployeesRequest request, ServerCallContext context) { var options = new EmployeeOptions { PageIndex = request.PageIndex, PageSize = request.PageSize, DepartmentId = request.DepartmentId, }; var employees = await _organizationApp.GetEmployeesAsync(options); var items = employees.Items.Select(x => new PaginateEmployeesResponse.Types.Employee { Id = x.Id, Name = x.Name, DisplayName = x.DisplayName, DepartmentId = x.DepartmentId, JobId = x.JobId, }); var result = new PaginateEmployeesResponse { PageIndex = employees.PageIndex, PageSize = employees.PageSize, ItemCount = employees.ItemCount, }; result.Items.AddRange(items); return(result); }
public async Task <IActionResult> GetEmployeesAsync([FromQuery] GetEmployeesInput input) { var request = new PaginateEmployeesRequest { PageIndex = input.PageIndex, PageSize = input.PageSize, DepartmentId = input.DepartmentId, }; var response = await _organizationClient.PaginateEmployeesAsync(request); var result = new PaginationResult <EmployeeSummary> { PageIndex = response.PageIndex, PageSize = response.PageSize, ItemCount = response.ItemCount, Items = response.Items .Select(x => new EmployeeSummary { Id = x.Id, Name = x.Name, DisplayName = x.DisplayName, DepartmentId = x.DepartmentId, JobId = x.JobId, }) .ToList(), }; return(Ok(result)); }