ProductionExportFileNameProvider
using kCura.WinEDDS.Exporters;
using System;
namespace kCura.WinEDDS
{
public class ProductionExportFileNameProvider : IFileNameProvider
{
private readonly ExportFile _exportSettings;
private readonly bool _nameTextAndNativesAfterBegBates;
public ProductionExportFileNameProvider(ExportFile exportSettings, bool nameTextAndNativesAfterBegBates)
{
_exportSettings = exportSettings;
_nameTextAndNativesAfterBegBates = nameTextAndNativesAfterBegBates;
}
public string GetName(ObjectExportInfo exportedObjectInfo)
{
if (exportedObjectInfo == null)
throw new ArgumentNullException("exportedObjectInfo");
return exportedObjectInfo.get_ProductionBeginBatesFileName(_exportSettings.AppendOriginalFileName, _nameTextAndNativesAfterBegBates);
}
string IFileNameProvider.GetName(ObjectExportInfo exportedObjectInfo)
{
return this.GetName(exportedObjectInfo);
}
public string GetTextName(ObjectExportInfo exportedObjectInfo)
{
if (exportedObjectInfo == null)
throw new ArgumentNullException("exportedObjectInfo");
return exportedObjectInfo.FullTextFileName(AreFilesNamedAfterIdentifier(), false, _exportSettings.AppendOriginalFileName);
}
string IFileNameProvider.GetTextName(ObjectExportInfo exportedObjectInfo)
{
return this.GetTextName(exportedObjectInfo);
}
public string GetPdfName(ObjectExportInfo exportedObjectInfo)
{
throw new InvalidOperationException("Production export doesn't support searchable PDFs");
}
string IFileNameProvider.GetPdfName(ObjectExportInfo exportedObjectInfo)
{
return this.GetPdfName(exportedObjectInfo);
}
private bool AreFilesNamedAfterIdentifier()
{
if (_exportSettings.TypeOfExport == ExportFile.ExportType.Production)
return _exportSettings.ExportNativesToFileNamedFrom == ExportNativeWithFilenameFrom.Identifier;
return false;
}
}
}