SimpleIproImageLineFactory
using Microsoft.VisualBasic.CompilerServices;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace kCura.WinEDDS.Exporters.LineFactory
{
public class SimpleIproImageLineFactory : ImageLineFactoryBase
{
private string ImportCodeIdentifier => "IM";
private string ImageKey => base.BatesNumber;
private string DocumentDesignation {
get {
if (base.PageNumber != 1)
return "";
return "D";
}
}
private string TiffFileOffset {
get {
int num;
switch (base.ImageType) {
case ExportFile.ImageType.MultiPageTiff:
num = base.PageNumber;
return num.ToString();
case ExportFile.ImageType.Pdf:
num = base.PageNumber;
return num.ToString();
case ExportFile.ImageType.SinglePage:
num = 0;
return num.ToString();
default:
return null;
}
}
}
private string VolumeIdentifier => "@" + base.VolumeName;
private string DirectoryPath => Path.GetDirectoryName(base.FullFilePath);
private string Filename => Path.GetFileName(base.FullFilePath);
private string IproImageFileType {
get {
string left = Path.GetExtension(base.FullFilePath).ToLower().Trim(".".ToCharArray());
int num;
if (Operators.CompareString(left, "pdf", false) == 0) {
num = 7;
return num.ToString();
}
if (Operators.CompareString(left, "jpg", false) != 0 && Operators.CompareString(left, "jpeg", false) != 0) {
if (Operators.CompareString(left, "tif", false) != 0 && Operators.CompareString(left, "tiff", false) != 0)
return null;
num = 2;
return num.ToString();
}
num = 4;
return num.ToString();
}
}
public SimpleIproImageLineFactory(string batesNumber, int pageNumber, string fullFilePath, string volumeName, ExportFile.ImageType imageType)
: base(batesNumber, pageNumber, fullFilePath, volumeName, imageType)
{
}
public override void WriteLine(StreamWriter stream, ConcurrentBag<KeyValuePair<string, string>> linesToWriteOpt)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(ImportCodeIdentifier);
stringBuilder.Append(",");
stringBuilder.Append(ImageKey);
stringBuilder.Append(",");
stringBuilder.Append(DocumentDesignation);
stringBuilder.Append(",");
stringBuilder.Append(TiffFileOffset);
stringBuilder.Append(",");
stringBuilder.Append(VolumeIdentifier);
stringBuilder.Append(";");
stringBuilder.Append(DirectoryPath);
stringBuilder.Append(";");
stringBuilder.Append(Filename);
stringBuilder.Append(";");
stringBuilder.Append(IproImageFileType);
stringBuilder.Append("\r\n");
linesToWriteOpt.Add(new KeyValuePair<string, string>(ImageKey, stringBuilder.ToString()));
}
}
}