/// <summary>
        /// Asynchronously Retrieve Payroll by Jobcode Report, with support for cancellation.
        /// </summary>
        /// <remarks>
        /// Retrieves a payroll report, broken down by jobcode,
        /// with filters to narrow down the results.
        /// </remarks>
        /// <param name="filter">
        /// An instance of the <see cref="PayrollByJobcodeReportFilter"/> class, for narrowing down the results.
        /// </param>
        /// <param name="cancellationToken">
        /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>
        /// An instance of the <see cref="PayrollByJobcodeReport"/> class, along with
        /// an output instance of the <see cref="ResultsMeta"/> class containing additional data.
        /// </returns>
        public async Task <(PayrollByJobcodeReport, ResultsMeta)> GetPayrollByJobcodeReportAsync(
            PayrollByJobcodeReportFilter filter,
            CancellationToken cancellationToken)
        {
            var context = new GetReportContext <PayrollByJobcodeReport>(EndpointName.PayrollByJobcodeReports, filter);

            await ExecuteOperationAsync(context, cancellationToken).ConfigureAwait(false);

            return(context.Results, context.ResultsMeta);
        }
 /// <summary>
 /// Asynchronously Retrieve Payroll by Jobcode Report.
 /// </summary>
 /// <remarks>
 /// Retrieves a payroll report, broken down by jobcode,
 /// with filters to narrow down the results.
 /// </remarks>
 /// <param name="filter">
 /// An instance of the <see cref="PayrollByJobcodeReportFilter"/> class, for narrowing down the results.
 /// </param>
 /// <returns>
 /// An instance of the <see cref="PayrollByJobcodeReport"/> class, along with
 /// an output instance of the <see cref="ResultsMeta"/> class containing additional data.
 /// </returns>
 public async Task <(PayrollByJobcodeReport, ResultsMeta)> GetPayrollByJobcodeReportAsync(
     PayrollByJobcodeReportFilter filter)
 {
     return(await GetPayrollByJobcodeReportAsync(filter, default).ConfigureAwait(false));
 }
 /// <summary>
 /// Retrieve Payroll by Jobcode Report.
 /// </summary>
 /// <remarks>
 /// Retrieves a payroll report, broken down by jobcode,
 /// with filters to narrow down the results.
 /// </remarks>
 /// <param name="filter">
 /// An instance of the <see cref="PayrollByJobcodeReportFilter"/> class, for narrowing down the results.
 /// </param>
 /// <returns>
 /// An instance of the <see cref="PayrollByJobcodeReport"/> class, along with
 /// an output instance of the <see cref="ResultsMeta"/> class containing additional data.
 /// </returns>
 public (PayrollByJobcodeReport, ResultsMeta) GetPayrollByJobcodeReport(PayrollByJobcodeReportFilter filter)
 {
     return(AsyncUtil.RunSync(() => GetPayrollByJobcodeReportAsync(filter)));
 }