Пример #1
0
        private static void DoConversion(DocxToTeiConverterSettings settings)
        {
            DocxToTeiConverter converter = new DocxToTeiConverter();
            ConversionResult   result    = converter.Convert(settings);

            if (result.IsConverted)
            {
                logger.Info("File {0} converted.", settings.InputFilesPath.ToString());
            }
            else
            {
                logger.Info("File {0} not converted.", settings.InputFilesPath.ToString());
                logger.Error("Errors: {0}", result.Errors.Count);
                foreach (Exception error in result.Errors)
                {
                    logger.Error("\tError: {0}", error.Message);
                }
            }
        }
Пример #2
0
        private static void MakeConversion(string dataDirectory, string documentName)
        {
            DocxToTeiConverterSettings settings = new DocxToTeiConverterSettings();

            settings.TempDirectoryPath = Path.Combine(dataDirectory, "Temp");
            settings.MetadataFilePath  = Path.Combine(dataDirectory, "Input", "Evidence.xml");
            settings.InputFilesPath    = new [] { Path.Combine(dataDirectory, "Input", documentName + ".docx") };
            settings.OutputFilePath    = Path.Combine(dataDirectory, "Output", documentName + ".xml");
            String.Format("Úprava souboru k {0:g}", DateTime.Now);
            settings.GetVersionList = GetVersions();
            DocxToTeiConverter converter = new DocxToTeiConverter();
            ConversionResult   result    = converter.Convert(settings);

            if (result.IsConverted)
            {
                logger.Info("File {0} converted.", settings.InputFilesPath);
            }
            else
            {
                logger.Info("File {0} not converted.", settings.InputFilesPath.ToString());
                logger.Info("Errors: {0}", result.Errors);
            }
        }
Пример #3
0
        public void Process(ResourceSessionDirector resourceSessionDirector)
        {
            var inputFilesResource = resourceSessionDirector.Resources.Where(resource => resource.ResourceType == ResourceType.SourceDocument).OrderBy(r => r.FileName, StringComparer.CurrentCultureIgnoreCase);
            var inputFileResource  = inputFilesResource.First();

            string metaDataFileName;

            if (resourceSessionDirector.Resources.Any(x => x.ResourceType == ResourceType.UploadedMetadata))
            {
                metaDataFileName = string.Format("{0}_converted.xmd", Path.GetFileNameWithoutExtension(inputFileResource.FileName));
            }
            else
            {
                metaDataFileName = string.Format("{0}.xmd", Path.GetFileNameWithoutExtension(inputFileResource.FileName));
            }

            var metaDataResource = new Resource
            {
                FileName     = metaDataFileName,
                FullPath     = Path.Combine(resourceSessionDirector.SessionPath, metaDataFileName),
                ResourceType = ResourceType.ConvertedMetadata
            };

            var tmpDirPath = Path.Combine(resourceSessionDirector.SessionPath, "tmp");

            if (!Directory.Exists(tmpDirPath))
            {
                Directory.CreateDirectory(tmpDirPath);
            }

            var message    = resourceSessionDirector.GetSessionInfoValue <string>(SessionInfo.Message);
            var createTime = resourceSessionDirector.GetSessionInfoValue <DateTime>(SessionInfo.CreateTime);

            var versionProviderHelper = new VersionProviderHelper(message, createTime, m_bookRepository, m_versionIdGenerator);

            var settings = new DocxToTeiConverterSettings
            {
                Debug             = false,
                InputFilesPath    = inputFilesResource.Select(p => p.FullPath).ToArray(),
                UploadedFilesPath = resourceSessionDirector.Resources.GroupBy(resource => resource.ResourceType).
                                    ToDictionary(resourceGroup => resourceGroup.Key,
                                                 resourceGroup => resourceGroup.Select(resource => resource.FullPath).ToArray()),
                MetadataFilePath          = m_conversionMetadataPath,
                OutputDirectoryPath       = resourceSessionDirector.SessionPath,
                OutputMetadataFilePath    = metaDataResource.FullPath,
                TempDirectoryPath         = tmpDirPath,
                GetVersionList            = versionProviderHelper.GetVersionsByBookId,
                SplitDocumentByPageBreaks = true,
                DataDirectoryPath         = m_dataDirectoryPath
            };

            var converter        = new DocxToTeiConverter();
            var conversionResult = converter.Convert(settings);

            if (conversionResult.IsConverted)
            {
                resourceSessionDirector.Resources.Add(metaDataResource);
            }
            else
            {
                var exception = conversionResult.Errors.FirstOrDefault();
                throw new ConversionException(string.Format("File was not converted sucessfully. See InnerException : '{0}'", exception), exception);
            }
        }
Пример #4
0
        public void Process(ResourceSessionDirector resourceSessionDirector)
        {
            var inputFilesResource = resourceSessionDirector.Resources.Where(resource => resource.ResourceType == ResourceType.SourceDocument).OrderBy(r => r.FileName, StringComparer.CurrentCultureIgnoreCase);
            var inputFileResource  = inputFilesResource.First();

            string metaDataFileName;

            if (resourceSessionDirector.Resources.Any(x => x.ResourceType == ResourceType.UploadedMetadata))
            {
                metaDataFileName = string.Format("{0}_converted.xmd", Path.GetFileNameWithoutExtension(inputFileResource.FileName));
            }
            else
            {
                metaDataFileName = string.Format("{0}.xmd", Path.GetFileNameWithoutExtension(inputFileResource.FileName));
            }

            var metaDataResource = new FileResource
            {
                FileName     = metaDataFileName,
                FullPath     = Path.Combine(resourceSessionDirector.SessionPath, metaDataFileName),
                ResourceType = ResourceType.ConvertedMetadata
            };

            var tmpDirPath = Path.Combine(resourceSessionDirector.SessionPath, "tmp");

            if (!Directory.Exists(tmpDirPath))
            {
                Directory.CreateDirectory(tmpDirPath);
            }

            var message     = resourceSessionDirector.GetSessionInfoValue <string>(SessionInfo.Message);
            var createTime  = resourceSessionDirector.GetSessionInfoValue <DateTime>(SessionInfo.CreateTime);
            var projectType = (ProjectTypeEnum)resourceSessionDirector.GetSessionInfoValue <ProjectTypeContract>(SessionInfo.ProjectType);

            var versionProviderHelper = new VersionProviderHelper(message, createTime, m_projectRepository, m_versionIdGenerator, projectType);

            var settings = new DocxToTeiConverterSettings
            {
                Debug             = false,
                InputFilesPath    = inputFilesResource.Select(p => p.FullPath).ToArray(),
                UploadedFilesPath = resourceSessionDirector.Resources.GroupBy(resource => resource.ResourceType).
                                    ToDictionary(resourceGroup => resourceGroup.Key,
                                                 resourceGroup => resourceGroup.Select(resource => resource.FullPath).ToArray()),
                //MetadataFilePath = null,
                OutputDirectoryPath       = resourceSessionDirector.SessionPath,
                OutputMetadataFilePath    = metaDataResource.FullPath,
                TempDirectoryPath         = tmpDirPath,
                GetVersionList            = versionProviderHelper.GetVersionsByBookXmlId,
                SplitDocumentByPageBreaks = true,
                // HttpRuntime.BinDirectory is used instead of HostingEnvironment.ApplicationPhysicalPath because all required files are in bin folder
                DataDirectoryPath = Path.Combine(HttpRuntime.BinDirectory, m_dataDirectoryPath)
            };

            var evidenceFolderPath = Path.Combine(HttpRuntime.BinDirectory,
                                                  m_conversionMetadataPath);
            var evidenceXmlFiles = Directory.GetFiles(evidenceFolderPath);
            ConversionResult conversionResult = null;

            foreach (var evidenceXmlFile in evidenceXmlFiles)
            {
                settings.MetadataFilePath = evidenceXmlFile;

                var converter = new DocxToTeiConverter();
                conversionResult = converter.Convert(settings);

                if (conversionResult.Errors.Count == 0)
                {
                    break;
                }
            }

            if (conversionResult.IsConverted)
            {
                resourceSessionDirector.Resources.Add(metaDataResource);
            }
            else
            {
                var exception = conversionResult.Errors.FirstOrDefault();
                throw new ConversionException(string.Format("File was not converted sucessfully. See InnerException : '{0}'", exception), exception);
            }
        }