コード例 #1
0
ファイル: DocxGenerator.cs プロジェクト: MatZil/Testing
        public async Task <int> GenerateDocx(Holiday holiday, Employee employee, FileTypeEnum holidayDocumentType)
        {
            if (holiday is null)
            {
                throw new ArgumentNullException(nameof(holiday), "Holiday does not exist");
            }

            try
            {
                var replacementMap   = GetReplacementMap(holiday, employee, holidayDocumentType);
                var templatePath     = GetTemplatePath(holidayDocumentType);
                var documentFileName = await _fileUtility.GetGeneratedDocxName(holiday.Id, holidayDocumentType);

                var fileName = _fileUtility.ExtractNameFromPath(documentFileName);
                var fileId   = await _fileService.CreateFileRecord(fileName, holidayDocumentType);

                await ProcessTemplate(templatePath, documentFileName, replacementMap, holidayDocumentType);

                return(fileId);
            }
            catch (Exception exception)
            {
                _logger.LogError($"Document generation failed for {employee.Email}. Exception message: {exception.Message}");

                throw;
            }
        }