public ConversionResultModel ConvertAndGetTargetFileName(BookSourceModel source, BookFormatEnum outputFormat, bool compress = true) { Guid id = ExtractBook(source.FileName, source.Body); if (outputFormat != DefaultBookFormat) { Convert(id, outputFormat); var sourceFile = GetTempFileName(id, DefaultBookFormat); if (File.Exists(sourceFile)) File.Delete(sourceFile); } var result = new ConversionResultModel { DownloadFileName = string.Format("{0}.{1}", Transliterator.FromCyrillicToTransliteration(TextHelper.CleanCharacters(source.Name)), outputFormat).ToLower(), FullFileName = GetTempFileName(id, outputFormat) }; if (compress) result = Compress(result); return result; }
public ConversionResultModel Compress(ConversionResultModel source) { var fileName = string.Format("{0}.zip", source.FullFileName); using (var zip = ZipFile.Create(fileName)) { zip.BeginUpdate(); zip.Add(source.FullFileName, source.DownloadFileName); zip.CommitUpdate(); } if (File.Exists(source.FullFileName)) File.Delete(source.FullFileName); source.FullFileName = fileName; source.DownloadFileName = string.Format("{0}.zip", source.DownloadFileName); return source; }