示例#1
0
    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);
    }
示例#2
0
    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));
    }