convert ooxml(pr 1304)
This commit is contained in:
parent
422e0bf3f2
commit
c8cb5d087a
@ -83,7 +83,7 @@ public static class DocumentService
|
||||
/// <exception>
|
||||
/// </exception>
|
||||
|
||||
public static Task<(int ResultPercent, string ConvertedDocumentUri)> GetConvertedUriAsync(
|
||||
public static Task<(int ResultPercent, string ConvertedDocumentUri, string convertedFileType)> GetConvertedUriAsync(
|
||||
FileUtility fileUtility,
|
||||
string documentConverterUrl,
|
||||
string documentUri,
|
||||
@ -112,7 +112,7 @@ public static class DocumentService
|
||||
return InternalGetConvertedUriAsync(fileUtility, documentConverterUrl, documentUri, fromExtension, toExtension, documentRevisionId, password, region, thumbnail, spreadsheetLayout, isAsync, signatureSecret, clientFactory);
|
||||
}
|
||||
|
||||
private static async Task<(int ResultPercent, string ConvertedDocumentUri)> InternalGetConvertedUriAsync(
|
||||
private static async Task<(int ResultPercent, string ConvertedDocumentUri, string convertedFileType)> InternalGetConvertedUriAsync(
|
||||
FileUtility fileUtility,
|
||||
string documentConverterUrl,
|
||||
string documentUri,
|
||||
@ -907,7 +907,7 @@ public static class DocumentService
|
||||
/// <param name="jsonDocumentResponse">The resulting json from editing service</param>
|
||||
/// <param name="responseUri">Uri to the converted document</param>
|
||||
/// <returns>The percentage of completion of conversion</returns>
|
||||
private static (int ResultPercent, string responseuri) GetResponseUri(string jsonDocumentResponse)
|
||||
private static (int ResultPercent, string responseuri, string convertedFileType) GetResponseUri(string jsonDocumentResponse)
|
||||
{
|
||||
if (string.IsNullOrEmpty(jsonDocumentResponse))
|
||||
{
|
||||
@ -930,9 +930,11 @@ public static class DocumentService
|
||||
|
||||
int resultPercent;
|
||||
var responseUri = string.Empty;
|
||||
var responseType = string.Empty;
|
||||
if (isEndConvert)
|
||||
{
|
||||
responseUri = responseFromService.Value<string>("fileUrl");
|
||||
responseType = responseFromService.Value<string>("fileType");
|
||||
resultPercent = 100;
|
||||
}
|
||||
else
|
||||
@ -944,6 +946,6 @@ public static class DocumentService
|
||||
}
|
||||
}
|
||||
|
||||
return (resultPercent, responseUri);
|
||||
return (resultPercent, responseUri, responseType);
|
||||
}
|
||||
}
|
||||
|
@ -247,10 +247,16 @@ public class FileUtility
|
||||
return GetInternalExtension(googleExtension);
|
||||
}
|
||||
|
||||
public string GetInternalConvertExtension(string fileName)
|
||||
{
|
||||
return "ooxml";
|
||||
}
|
||||
|
||||
public static string ReplaceFileExtension(string fileName, string newExtension)
|
||||
{
|
||||
newExtension = string.IsNullOrEmpty(newExtension) ? string.Empty : newExtension;
|
||||
return Path.GetFileNameWithoutExtension(fileName) + newExtension;
|
||||
return Path.GetFileNameWithoutExtension(fileName)
|
||||
+ "." + newExtension.TrimStart('.');
|
||||
}
|
||||
|
||||
public static FileType GetFileTypeByFileName(string fileName)
|
||||
|
@ -69,7 +69,7 @@ public class DocumentServiceConnector
|
||||
return ASC.Files.Core.Helpers.DocumentService.GenerateRevisionId(expectedKey);
|
||||
}
|
||||
|
||||
public Task<(int ResultPercent, string ConvertedDocumentUri)> GetConvertedUriAsync(string documentUri,
|
||||
public Task<(int ResultPercent, string ConvertedDocumentUri, string convertedFileType)> GetConvertedUriAsync(string documentUri,
|
||||
string fromExtension,
|
||||
string toExtension,
|
||||
string documentRevisionId,
|
||||
|
@ -456,13 +456,14 @@ public class FileConverter
|
||||
|
||||
var fileUri = _pathProvider.GetFileStreamUrl(file);
|
||||
var fileExtension = file.ConvertedExtension;
|
||||
var toExtension = _fileUtility.GetInternalExtension(file.Title);
|
||||
var toExtension = _fileUtility.GetInternalConvertExtension(file.Title);
|
||||
var docKey = _documentServiceHelper.GetDocKey(file);
|
||||
|
||||
fileUri = _documentServiceConnector.ReplaceCommunityAdress(fileUri);
|
||||
|
||||
var uriTuple = await _documentServiceConnector.GetConvertedUriAsync(fileUri, fileExtension, toExtension, docKey, null, CultureInfo.CurrentUICulture.Name, null, null, false);
|
||||
var convertUri = uriTuple.ConvertedDocumentUri;
|
||||
var convertType = uriTuple.convertedFileType;
|
||||
|
||||
var operationResult = new FileConverterOperationResult
|
||||
{
|
||||
@ -484,7 +485,7 @@ public class FileConverter
|
||||
|
||||
var operationResultError = string.Empty;
|
||||
|
||||
var newFile = await SaveConvertedFileAsync(file, convertUri);
|
||||
var newFile = await SaveConvertedFileAsync(file, convertUri, convertType);
|
||||
if (newFile != null)
|
||||
{
|
||||
await _socketManager.CreateFileAsync(file);
|
||||
@ -545,13 +546,13 @@ public class FileConverter
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<File<T>> SaveConvertedFileAsync<T>(File<T> file, string convertedFileUrl)
|
||||
public async Task<File<T>> SaveConvertedFileAsync<T>(File<T> file, string convertedFileUrl, string convertedFileType)
|
||||
{
|
||||
var fileDao = _daoFactory.GetFileDao<T>();
|
||||
var folderDao = _daoFactory.GetFolderDao<T>();
|
||||
File<T> newFile = null;
|
||||
var markAsTemplate = false;
|
||||
var newFileTitle = FileUtility.ReplaceFileExtension(file.Title, _fileUtility.GetInternalExtension(file.Title));
|
||||
var newFileTitle = FileUtility.ReplaceFileExtension(file.Title, convertedFileType);
|
||||
|
||||
if (!_filesSettingsHelper.StoreOriginalFiles && await _fileSecurity.CanEditAsync(file))
|
||||
{
|
||||
|
@ -122,7 +122,8 @@ internal class FileConverterService<T> : BackgroundService
|
||||
var file = await daoFactory.GetFileDao<T>().GetFileAsync(fileId, fileVersion);
|
||||
var fileUri = file.Id.ToString();
|
||||
|
||||
string convertedFileUrl;
|
||||
string convertedFileUrl;
|
||||
string convertedFileType;
|
||||
|
||||
try
|
||||
{
|
||||
@ -147,12 +148,12 @@ internal class FileConverterService<T> : BackgroundService
|
||||
|
||||
fileUri = pathProvider.GetFileStreamUrl(file);
|
||||
|
||||
var toExtension = fileUtility.GetInternalExtension(file.Title);
|
||||
var toExtension = fileUtility.GetInternalConvertExtension(file.Title);
|
||||
var fileExtension = file.ConvertedExtension;
|
||||
var docKey = documentServiceHelper.GetDocKey(file);
|
||||
|
||||
fileUri = documentServiceConnector.ReplaceCommunityAdress(fileUri);
|
||||
(operationResultProgress, convertedFileUrl) = await documentServiceConnector.GetConvertedUriAsync(fileUri, fileExtension, toExtension, docKey, password, CultureInfo.CurrentUICulture.Name, null, null, true);
|
||||
(operationResultProgress, convertedFileUrl, convertedFileType) = await documentServiceConnector.GetConvertedUriAsync(fileUri, fileExtension, toExtension, docKey, password, CultureInfo.CurrentUICulture.Name, null, null, true);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
@ -213,13 +214,13 @@ internal class FileConverterService<T> : BackgroundService
|
||||
|
||||
try
|
||||
{
|
||||
newFile = await fileConverter.SaveConvertedFileAsync(file, convertedFileUrl);
|
||||
newFile = await fileConverter.SaveConvertedFileAsync(file, convertedFileUrl, convertedFileType);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
operationResultError = e.Message;
|
||||
|
||||
logger.ErrorOperation(operationResultError, convertedFileUrl, fileUri, e);
|
||||
logger.ErrorOperation(operationResultError, convertedFileUrl, fileUri, convertedFileType, e);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
@ -39,8 +39,8 @@ public static partial class FileConverterLogger
|
||||
[LoggerMessage(Level = LogLevel.Error, Message = "Error convert {fileId} with url {url}")]
|
||||
public static partial void ErrorConvertFileWithUrl(this ILogger logger, string fileId, string url, Exception exception);
|
||||
|
||||
[LoggerMessage(Level = LogLevel.Error, Message = "{operationResultError} ConvertUrl: {convertedFileUrl} fromUrl: {fileUri}")]
|
||||
public static partial void ErrorOperation(this ILogger logger, string operationResultError, string convertedFileUrl, string fileUri, Exception exception);
|
||||
[LoggerMessage(Level = LogLevel.Error, Message = "{operationResultError} ConvertUrl: {convertedFileUrl} fromUrl: {fileUri} ConvertedFileType: {convertedFileType}")]
|
||||
public static partial void ErrorOperation(this ILogger logger, string operationResultError, string convertedFileUrl, string fileUri, string convertedFileType, Exception exception);
|
||||
|
||||
[LoggerMessage(Level = LogLevel.Error, Message = "CheckConvertFilesStatus timeout: {fileId} ({contentLengthString})")]
|
||||
public static partial void ErrorCheckConvertFilesStatus(this ILogger logger, string fileId, long contentLengthString);
|
||||
|
@ -303,7 +303,7 @@ public class Builder<T>
|
||||
}
|
||||
};
|
||||
|
||||
var (operationResultProgress, url) = await _documentServiceConnector.GetConvertedUriAsync(fileUri, fileExtension, toExtension, docKey, null, CultureInfo.CurrentCulture.Name, thumbnail, spreadsheetLayout, false);
|
||||
var (operationResultProgress, url, _) = await _documentServiceConnector.GetConvertedUriAsync(fileUri, fileExtension, toExtension, docKey, null, CultureInfo.CurrentCulture.Name, thumbnail, spreadsheetLayout, false);
|
||||
|
||||
operationResultProgress = Math.Min(operationResultProgress, 100);
|
||||
return (operationResultProgress, url);
|
||||
|
Loading…
Reference in New Issue
Block a user