private void ConvertFolder(IReaderContract reader, IWriterContract writer, string inputParam, string outputParam) { List <byte[]> imageBytes = new List <byte[]>(); List <string> imageNames = new List <string>(); if (LogHelper.CanDebug()) { LogHelper.Begin("BookFileConverter.ConvertFolder"); } try { string msg = CultureManager.Instance.GetLocalization("ByCode", "Convert.Converting", "Converting {0}..."); Progress(string.Format(msg, inputParam)); string outputFolder, outputFile; // one single output folder or same as input if (!string.IsNullOrEmpty(Settings.DestinationPath) && Directory.Exists(Settings.DestinationPath)) { outputFolder = Settings.DestinationPath; } else { outputFolder = outputParam; } outputFile = inputParam.Split(new char[] { '\\' }).Last(); bool result = true; //only case we need folder input in memory, else we write directly if (Settings.OutputType.Type == DocumentType.XPS) { result = reader.Read(inputParam, null, imageBytes, imageNames, Settings, Progress); } if (result) { writer.Write(outputFile, inputParam, outputFolder, imageBytes, imageNames, Settings, Progress); } } catch (Exception err) { Settings.Result = false; LogHelper.Manage("BookFileConverter.ConvertFolder", err); } finally { if (imageBytes != null) { imageBytes.Clear(); } if (imageNames != null) { imageNames.Clear(); } LogHelper.End("BookFileConverter.ConvertFolder"); } }
/// <summary> /// convert one file to an output folder regarding the settings mode /// </summary> /// <param name="inputfile"></param> /// <param name="outputFolder"></param> private void ConvertFile(IReaderContract reader, IWriterContract writer, string inputFile, string outputParam) { List <byte[]> imageBytes = new List <byte[]>(); List <string> imageNames = new List <string>(); try { string msg = CultureManager.Instance.GetLocalization("ByCode", "Convert.Converting", "Converting {0}..."); Progress(string.Format(msg, inputFile)); string outputFolder, tmpFolderForReader = null; // one single output folder or same as input if (!string.IsNullOrEmpty(Settings.DestinationPath) && Directory.Exists(Settings.DestinationPath)) { outputFolder = Settings.DestinationPath; } else { outputFolder = outputParam; } // particular case to win time if (Settings.InputType.Type == DocumentType.ZIPBased || Settings.InputType.Type == DocumentType.RARBased) { if (Settings.OutputType.Type == DocumentType.ImageFile) //direct in ouput { tmpFolderForReader = outputFolder; } if (Settings.OutputType.Type == DocumentType.ZIPBased) //use temp folder for compress { tmpFolderForReader = Path.Combine(DirectoryHelper.TempPath, Path.GetFileNameWithoutExtension(inputFile)); } } if (reader.Read(inputFile, tmpFolderForReader, imageBytes, imageNames, Settings, Progress)) { writer.Write(Path.GetFileNameWithoutExtension(inputFile), null, outputFolder, imageBytes, imageNames, Settings, Progress); } } catch (Exception error) { LogHelper.Manage("BookFileConverter:ConvertFile", error); Settings.Result = false; } finally { if (imageBytes != null) { imageBytes.Clear(); } if (imageNames != null) { imageNames.Clear(); } } }