Ejemplo n.º 1
0
 public async Task <InvoiceTemplateSetting> GetByCodeAsync(int CompanyId, string Code, CancellationToken token = default(CancellationToken))
 => await getInvoiceTemplateSettingByCodeQueryProcessor.GetByCodeAsync(CompanyId, Code, token);
Ejemplo n.º 2
0
        public async Task <byte[]> GetAsync(ArrearagesListSearch option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var columnTask = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting {
                CompanyId = option.CompanyId, TableName = nameof(Billing),
            }, token);
            var settingTask = reportSettingQueryProcessor.GetAsync(option.CompanyId, ReportId, token);
            var loadTask    = arrearagesListQueryProcessor.GetAsync(option, token);
            var ccyCode     = string.IsNullOrEmpty(option.CurrencyCode) ? Constants.DefaultCurrencyCode : option.CurrencyCode;
            var ccyTask     = currencyGetByCodeQueryProcessor.GetByCodeAsync(option.CompanyId, ccyCode);

            var tasks = new List <Task>()
            {
                companyTask, columnTask, loadTask, ccyTask
            };
            var requireSetting = !(option.ReportSettings?.Any() ?? false);

            if (requireSetting)
            {
                tasks.Add(settingTask);
            }

            await Task.WhenAll(tasks);

            var company   = companyTask.Result.First();
            var columns   = columnTask.Result.ToList();
            var items     = loadTask.Result.ToList();
            var precision = ccyTask.Result.Precision;

            if (!items.Any())
            {
                return(null);
            }

            if (requireSetting)
            {
                option.ReportSettings = settingTask.Result.ToList();
            }

            var processor = option.CustomerSummaryFlag ?
                            (IProcessor) new ArrearagesListSummaryDocumentProcessor {
                Company   = company,
                Items     = items,
                Precision = precision,
            } : new ArrearagesListDocumentProcessor {
                Company   = company,
                Items     = items,
                Precision = precision,
                Note1     = columns.FirstOrDefault(x => x.ColumnName == nameof(ArrearagesList.Note1))?.DisplayColumnName ?? "備考1",
            };

            using (var stream = new MemoryStream())
            {
                using (var document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook))
                {
                    processor.Process(document);
                }
                return(stream.ToArray());
            }
        }
Ejemplo n.º 3
0
 public async Task <ReminderTemplateSetting> GetByCodeAsync(int CompanyId, string Code, CancellationToken token = default(CancellationToken))
 => await getReminderTemplateSettingGetByCodeQueryProcessor.GetByCodeAsync(CompanyId, Code);