public async Task <byte[]> GetAsync(MatchingJournalizingReportSource source, CancellationToken token = default(CancellationToken))
        {
            if (!(source.Items?.Any() ?? false))
            {
                return(null);
            }

            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = source.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(source.CompanyId, token);
            await Task.WhenAll(companyTask, appConTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;

            var report = new MatchingJournalizingReport();

            var fileName = $"{(source.ReOutput ? "再出力" : "")}消込仕訳_{DateTime.Now:yyyyMMdd_HHmmss}";

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = fileName;
            report.SetData(source.Items, source.Precision, appCon.UseForeignCurrency == 1);
            report.Run();

            return(report.Convert());
        }
        private void PrintReport(List <MatchingJournalizing> source, List <DateTime> outputAt = null)
        {
            var rePrint = (outputAt?.Any() ?? false);
            MatchingJournalizingReport report = null;
            var path = string.Empty;
            var task = Task.Run(async() => {
                if (rePrint)
                {
                    source = await ExtractAsync(outputAt);
                }
                if (source.Any())
                {
                    var fileName = $"{(rePrint ? "再出力" : "")}消込仕訳_{DateTime.Now:yyyyMMdd_HHmmss}";
                    report       = new MatchingJournalizingReport();
                    report.SetBasicPageSetting(Login.CompanyCode, Login.CompanyName);
                    report.Name = fileName;
                    report.SetData(source, Precision, UseForeignCurrency);
                    report.Run(false);
                }
                path = await Util.GetGeneralSettingServerPathAsync(Login);
            });

            ProgressDialog.Start(ParentForm, task, false, SessionKey);
            if (task.Exception != null)
            {
                NLogHandler.WriteErrorLog(this, task.Exception, SessionKey);
                ShowWarningDialog(MsgErrCreateReportError);
                return;
            }
            if (!source.Any())
            {
                ShowWarningDialog(MsgWngNotExistSearchData);
                return;
            }

            ShowDialogPreview(ParentForm, report, path);
            DispStatusMessage(rePrint ? MsgInfReprintedSelectData
                                      : MsgInfPrintExtractedData);
        }