Files: added new checkconversion method's param
This commit is contained in:
parent
36fa4131cc
commit
4a2342f39b
@ -48,6 +48,7 @@ using ASC.Data.Storage;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Model;
|
||||
using ASC.Files.Core.Resources;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Core.Services.NotifyService;
|
||||
@ -1524,7 +1525,7 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
return FileOperationsManager.Delete(AuthContext.CurrentAccount.ID, TenantManager.GetCurrentTenant(), foldersId, filesId, false, true, false, GetHttpHeaders());
|
||||
}
|
||||
|
||||
public List<FileOperationResult> CheckConversion(List<List<string>> filesInfoJSON, bool sync = false)
|
||||
public List<FileOperationResult> CheckConversion(List<CheckConversionModel<T>> filesInfoJSON, bool sync = false)
|
||||
{
|
||||
if (filesInfoJSON == null || filesInfoJSON.Count == 0) return new List<FileOperationResult>();
|
||||
|
||||
@ -1533,17 +1534,15 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
var files = new List<KeyValuePair<File<T>, bool>>();
|
||||
foreach (var fileInfo in filesInfoJSON)
|
||||
{
|
||||
var fileId = (T)Convert.ChangeType(fileInfo[0], typeof(T));
|
||||
|
||||
var file = int.TryParse(fileInfo[1], out var version) && version > 0
|
||||
? fileDao.GetFile(fileId, version)
|
||||
: fileDao.GetFile(fileId);
|
||||
var file = fileInfo.Version > 0
|
||||
? fileDao.GetFile(fileInfo.FileId, fileInfo.Version)
|
||||
: fileDao.GetFile(fileInfo.FileId);
|
||||
|
||||
if (file == null)
|
||||
{
|
||||
var newFile = ServiceProvider.GetService<File<T>>();
|
||||
newFile.ID = fileId;
|
||||
newFile.Version = version;
|
||||
newFile.ID = fileInfo.FileId;
|
||||
newFile.Version = fileInfo.Version;
|
||||
|
||||
files.Add(new KeyValuePair<File<T>, bool>(newFile, true));
|
||||
continue;
|
||||
@ -1551,18 +1550,17 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
|
||||
ErrorIf(!FileSecurity.CanRead(file), FilesCommonResource.ErrorMassage_SecurityException_ReadFile);
|
||||
|
||||
var startConvert = Convert.ToBoolean(fileInfo[2]);
|
||||
if (startConvert && FileConverter.MustConvert(file))
|
||||
if (fileInfo.StartConvert && FileConverter.MustConvert(file))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (sync)
|
||||
{
|
||||
results.Add(FileConverter.ExecSync(file, fileInfo.Count > 3 ? fileInfo[3] : null));
|
||||
results.Add(FileConverter.ExecSync(file, fileInfo.Password));
|
||||
}
|
||||
else
|
||||
{
|
||||
FileConverter.ExecAsync(file, false, fileInfo.Count > 3 ? fileInfo[3] : null);
|
||||
FileConverter.ExecAsync(file, false, fileInfo.Password);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -1,7 +1,11 @@
|
||||
namespace ASC.Files.Core.Model
|
||||
{
|
||||
public class CheckConversionModel
|
||||
public class CheckConversionModel<T>
|
||||
{
|
||||
public T FileId { get; set; }
|
||||
public bool Sync { get; set; }
|
||||
public bool StartConvert { get; set; }
|
||||
public int Version { get; set; }
|
||||
public string Password { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -1179,15 +1179,17 @@ namespace ASC.Api.Documents
|
||||
/// <param name="fileId"></param>
|
||||
/// <returns>Operation result</returns>
|
||||
[Update("file/{fileId}/checkconversion")]
|
||||
public IEnumerable<ConversationResult<string>> StartConversion(string fileId, [FromBody(EmptyBodyBehavior = Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow)] CheckConversionModel model)
|
||||
public IEnumerable<ConversationResult<string>> StartConversion(string fileId, [FromBody(EmptyBodyBehavior = Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow)] CheckConversionModel<string> model)
|
||||
{
|
||||
return FilesControllerHelperString.StartConversion(fileId, model?.Sync ?? false);
|
||||
model.FileId = fileId;
|
||||
return FilesControllerHelperString.StartConversion(model);
|
||||
}
|
||||
|
||||
[Update("file/{fileId:int}/checkconversion")]
|
||||
public IEnumerable<ConversationResult<int>> StartConversion(int fileId, [FromBody(EmptyBodyBehavior = Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow)] CheckConversionModel model)
|
||||
public IEnumerable<ConversationResult<int>> StartConversion(int fileId, [FromBody(EmptyBodyBehavior = Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow)] CheckConversionModel<int> model)
|
||||
{
|
||||
return FilesControllerHelperInt.StartConversion(fileId, model?.Sync ?? false);
|
||||
model.FileId = fileId;
|
||||
return FilesControllerHelperInt.StartConversion(model);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1201,13 +1203,21 @@ namespace ASC.Api.Documents
|
||||
[Read("file/{fileId}/checkconversion")]
|
||||
public IEnumerable<ConversationResult<string>> CheckConversion(string fileId, bool start)
|
||||
{
|
||||
return FilesControllerHelperString.CheckConversion(fileId, start);
|
||||
return FilesControllerHelperString.CheckConversion(new CheckConversionModel<string>()
|
||||
{
|
||||
FileId = fileId,
|
||||
StartConvert = start
|
||||
});
|
||||
}
|
||||
|
||||
[Read("file/{fileId:int}/checkconversion")]
|
||||
public IEnumerable<ConversationResult<int>> CheckConversion(int fileId, bool start)
|
||||
{
|
||||
return FilesControllerHelperInt.CheckConversion(fileId, start);
|
||||
return FilesControllerHelperInt.CheckConversion(new CheckConversionModel<int>()
|
||||
{
|
||||
FileId = fileId,
|
||||
StartConvert = start
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -2541,7 +2551,7 @@ namespace ASC.Api.Documents
|
||||
/// Result file of operation.
|
||||
/// </summary>
|
||||
[JsonPropertyName("result")]
|
||||
public FileWrapper<T> File { get; set; }
|
||||
public object File { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Error during conversation.
|
||||
|
@ -381,17 +381,15 @@ namespace ASC.Files.Helpers
|
||||
.Select(FileOperationWraperHelper.Get);
|
||||
}
|
||||
|
||||
public IEnumerable<ConversationResult<T>> StartConversion(T fileId, bool sync = false)
|
||||
public IEnumerable<ConversationResult<T>> StartConversion(CheckConversionModel<T> model)
|
||||
{
|
||||
return CheckConversion(fileId, true, sync);
|
||||
model.StartConvert = true;
|
||||
return CheckConversion(model);
|
||||
}
|
||||
|
||||
public IEnumerable<ConversationResult<T>> CheckConversion(T fileId, bool start, bool sync = false)
|
||||
public IEnumerable<ConversationResult<T>> CheckConversion(CheckConversionModel<T> model)
|
||||
{
|
||||
return FileStorageService.CheckConversion(new List<List<string>>
|
||||
{
|
||||
new List<string> { fileId.ToString(), "0", start.ToString() }
|
||||
}, sync)
|
||||
return FileStorageService.CheckConversion(new List<CheckConversionModel<T>>() { model })
|
||||
.Select(r =>
|
||||
{
|
||||
var o = new ConversationResult<T>
|
||||
@ -417,6 +415,7 @@ namespace ASC.Files.Helpers
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
o.File = r.Result;
|
||||
Logger.Error(e);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user