public FileMoveCopyOperation(Tenant tenant, List<object> folders, List<object> files, object toFolder, bool copy, FileConflictResolveType resolveType) : base(tenant, folders, files) { this._toFolder = toFolder; this._copy = copy; this._resolveType = resolveType; }
public FileMoveCopyOperation(Tenant tenant, List <object> folders, List <object> files, object toFolder, bool copy, FileConflictResolveType resolveType) : base(tenant, folders, files) { this._toFolder = toFolder; this._copy = copy; this._resolveType = resolveType; }
public FileMoveCopyOperationData(List <object> folders, List <object> files, Tenant tenant, string toFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult = true, Dictionary <string, string> headers = null) : base(folders, files, tenant, holdResult) { ToFolderId = toFolderId; Copy = copy; ResolveType = resolveType; Headers = headers; }
public FileMoveCopyOperation(List <object> folders, List <object> files, string toFolderId, bool copy, FileConflictResolveType resolveType, Dictionary <string, string> headers) : base(folders, files) { this.toFolderId = toFolderId; this.copy = copy; this.resolveType = resolveType; this.headers = headers; }
public FileMoveCopyOperation(List <object> folders, List <object> files, string toFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult = true, Dictionary <string, string> headers = null) : base(folders, files, holdResult) { _toFolderId = toFolderId; _copy = copy; _resolveType = resolveType; _headers = headers; }
public FileMoveCopyOperation(IServiceProvider serviceProvider, FileMoveCopyOperationData data) : base(serviceProvider, data) { _toFolderId = data.ToFolderId; _copy = data.Copy; _resolveType = data.ResolveType; _headers = data.Headers; }
public FileMoveCopyOperation(Tenant tenant, List <object> folders, List <object> files, string toFolderId, bool copy, FileConflictResolveType resolveType, Dictionary <string, string> httpRequestHeaders) : this(tenant, folders, files, toFolderId, copy, resolveType) { this.httpRequestHeaders = httpRequestHeaders; }
public FileMoveCopyOperation(Tenant tenant, List<object> folders, List<object> files, string toFolderId, bool copy, FileConflictResolveType resolveType, Dictionary<string, string> httpRequestHeaders) : this(tenant, folders, files, toFolderId, copy, resolveType) { this.httpRequestHeaders = httpRequestHeaders; }
public FileMoveCopyOperation(List <object> folders, List <object> files, string toFolderId, bool copy, FileConflictResolveType resolveType, Dictionary <string, string> headers) : base(folders, files) { this.toFolderId = toFolderId; this.copy = copy; this.resolveType = resolveType; this.headers = headers; var toFolder = Global.DaoFactory.GetFolderDao().GetFolder(toFolderId); if (toFolder != null && toFolder.RootFolderType == FolderType.BUNCH) { recipients = Global.GetProjectTeam(toFolder).ToList(); } }
public FileMoveCopyOperationData(IEnumerable <T> folders, IEnumerable <T> files, Tenant tenant, JsonElement toFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult = true, IDictionary <string, StringValues> headers = null) : base(folders, files, tenant, holdResult) { if (toFolderId.ValueKind == JsonValueKind.String) { ThirdpartyFolderId = toFolderId.GetString(); } else if (toFolderId.ValueKind == JsonValueKind.Number) { DaoFolderId = toFolderId.GetInt32(); } Copy = copy; ResolveType = resolveType; Headers = headers; }
public FileMoveCopyOperationData(IEnumerable <T> folders, IEnumerable <T> files, Tenant tenant, object toFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult = true, Dictionary <string, string> headers = null) : base(folders, files, tenant, holdResult) { if (toFolderId is string thirdpartyFolderId) { ThirdpartyFolderId = thirdpartyFolderId; } else if (toFolderId is long daoFolderId) { DaoFolderId = (int)daoFolderId; } Copy = copy; ResolveType = resolveType; Headers = headers; }
public FileMoveCopyOperation(Tenant tenant, List<object> folders, List<object> files, string toFolderId, bool copy, FileConflictResolveType resolveType) : base(tenant, folders, files) { _toFolderId = toFolderId; _copy = copy; _resolveType = resolveType; var toFolder = Global.DaoFactory.GetFolderDao().GetFolder(toFolderId); if (toFolder != null && toFolder.RootFolderType == FolderType.BUNCH) _markAsNewRecipientIDs = Global.GetProjectTeam(toFolder).ToList(); }
public FileMoveCopyOperation(Tenant tenant, List <object> folders, List <object> files, string toFolderId, bool copy, FileConflictResolveType resolveType) : base(tenant, folders, files) { _toFolderId = toFolderId; _copy = copy; _resolveType = resolveType; var toFolder = Global.DaoFactory.GetFolderDao().GetFolder(toFolderId); if (toFolder != null && toFolder.RootFolderType == FolderType.BUNCH) { _markAsNewRecipientIDs = Global.GetProjectTeam(toFolder).ToList(); } }
public FileMoveCopyOperationData(IEnumerable <object> folders, IEnumerable <object> files, Tenant tenant, object toFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult = true, Dictionary <string, string> headers = null) : this(folders.OfType <T>(), files.OfType <T>(), tenant, toFolderId, copy, resolveType, holdResult, headers) { }
public List <FileOperationResult> MoveOrCopy(Guid userId, Tenant tenant, List <JsonElement> folders, List <JsonElement> files, JsonElement destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, IDictionary <string, StringValues> headers) { var(folderIntIds, folderStringIds) = GetIds(folders); var(fileIntIds, fileStringIds) = GetIds(files); var op1 = new FileMoveCopyOperation <int>(ServiceProvider, new FileMoveCopyOperationData <int>(folderIntIds, fileIntIds, tenant, destFolderId, copy, resolveType, holdResult, headers)); var op2 = new FileMoveCopyOperation <string>(ServiceProvider, new FileMoveCopyOperationData <string>(folderStringIds, fileStringIds, tenant, destFolderId, copy, resolveType, holdResult, headers)); var op = new FileMoveCopyOperation(ServiceProvider, op2, op1); return(QueueTask(userId, op)); }
private void MoveOrCopyFiles(ICollection fileIds, Folder toFolder, bool copy, FileConflictResolveType resolveType) { if (fileIds.Count == 0) { return; } var toFolderId = toFolder.ID; foreach (var fileId in fileIds) { if (Canceled) { return; } var file = FileDao.GetFile(fileId); if (file == null) { Error = FilesCommonResource.ErrorMassage_FileNotFound; } else if (!FilesSecurity.CanRead(file)) { Error = FilesCommonResource.ErrorMassage_SecurityException_ReadFile; } else if (Global.EnableUploadFilter && !Studio.Utility.FileUtility.ExtsUploadable.Contains(Studio.Utility.FileUtility.GetFileExtension(file.Title))) { Error = FilesCommonResource.ErrorMassage_NotSupportedFormat; } else if (!Equals(file.FolderID.ToString(), toFolderId)) { try { var conflict = FileDao.GetFile(toFolderId, file.Title); if (conflict != null && !FilesSecurity.CanEdit(conflict)) { Error = FilesCommonResource.ErrorMassage_SecurityException; } else if (conflict == null) { if (copy) { File newFile = null; try { newFile = FileDao.CopyFile(file.ID, toFolderId); //Stream copy will occur inside dao if (Equals(newFile.FolderID.ToString(), _toFolderId)) { _needToMarkAsNew.Add(newFile); } ProcessedFile(fileId); } catch { if (newFile != null) { FileDao.DeleteFile(newFile.ID); } throw; } } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileMarker.RemoveMarkAsNewForAll(file); var newFileId = FileDao.MoveFile(file.ID, toFolderId); if (Equals(toFolderId.ToString(), _toFolderId)) { _needToMarkAsNew.Add(FileDao.GetFile(newFileId)); } ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else { if (resolveType == FileConflictResolveType.Overwrite) { conflict.Version++; using (var stream = FileDao.GetFileStream(file)) { conflict.ContentLength = stream.Length; conflict = FileDao.SaveFile(conflict, stream); _needToMarkAsNew.Add(conflict); } if (copy) { ProcessedFile(fileId); } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileDao.DeleteFile(file.ID); FileDao.DeleteFolder(file.ID); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else if (resolveType == FileConflictResolveType.Skip) { //nothing } } } catch (Exception ex) { Error = ex.Message; Logger.Error(Error, ex); } } ProgressStep(); } }
public ItemList <FileOperationResult> MoveOrCopy(IEnumerable <JsonElement> folders, IEnumerable <JsonElement> files, JsonElement destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, IDictionary <string, StringValues> headers) { return(FileOperationsManager.MoveOrCopy(AuthContext, TenantManager, folders, files, destFolderId, copy, resolveType, holdResult, headers)); }
public ItemList <FileOperationResult> MoveOrCopy(AuthContext authContext, TenantManager tenantManager, IEnumerable <JsonElement> folders, IEnumerable <JsonElement> files, JsonElement destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, IDictionary <string, StringValues> headers) { var tenant = tenantManager.GetCurrentTenant(); var op1 = new FileMoveCopyOperation <int>(ServiceProvider, new FileMoveCopyOperationData <int>(folders.Where(r => r.ValueKind == JsonValueKind.Number).Select(r => r.GetInt32()), files.Where(r => r.ValueKind == JsonValueKind.Number).Select(r => r.GetInt32()), tenant, destFolderId, copy, resolveType, holdResult, headers)); var op2 = new FileMoveCopyOperation <string>(ServiceProvider, new FileMoveCopyOperationData <string>(folders.Where(r => r.ValueKind == JsonValueKind.String).Select(r => r.GetString()), files.Where(r => r.ValueKind == JsonValueKind.String).Select(r => r.GetString()), tenant, destFolderId, copy, resolveType, holdResult, headers)); var op = new FileMoveCopyOperation(ServiceProvider, op2, op1); return(QueueTask(authContext, op)); }
public ItemList <FileOperationResult> MoveOrCopy(AuthContext authContext, TenantManager tenantManager, IEnumerable <object> folders, IEnumerable <object> files, object destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, Dictionary <string, string> headers) { var tenant = tenantManager.GetCurrentTenant(); var op1 = new FileMoveCopyOperation <int>(ServiceProvider, new FileMoveCopyOperationData <int>(folders.OfType <long>().Select(Convert.ToInt32), files.OfType <long>().Select(Convert.ToInt32), tenant, destFolderId, copy, resolveType, holdResult, headers)); var op2 = new FileMoveCopyOperation <string>(ServiceProvider, new FileMoveCopyOperationData <string>(folders, files, tenant, destFolderId, copy, resolveType, holdResult, headers)); var op = new FileMoveCopyOperation(ServiceProvider, op2, op1); return(QueueTask(authContext, op)); }
public ItemList<FileOperationResult> MoveOrCopyItems([FromBody] ItemList<string> items, string destFolderId, FileConflictResolveType resolve, bool ic) { if (items.Count != 0) { List<object> foldersId; List<object> filesId; ParseArrayItems(items, out foldersId, out filesId); var task = new FileMoveCopyOperation( CoreContext.TenantManager.GetCurrentTenant(), foldersId, filesId, destFolderId, ic, resolve, GetHttpHeaders()); Tasks.Add(task); } return GetTasksStatuses(); }
public ItemList <FileOperationResult> MoveOrCopy(List <object> folders, List <object> files, string destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, Dictionary <string, string> headers) => FileOperationsManager.MoveOrCopy(AuthContext, TenantManager, folders, files, destFolderId, copy, resolveType, holdResult, headers);
public IEnumerable<FileOperationWraper> CopyBatchItems(String destFolderId, IEnumerable<String> folderIds, IEnumerable<String> fileIds, FileConflictResolveType conflictResolveType) { var itemList = new Web.Files.Services.WCFService.ItemList<String>(); itemList.AddRange((folderIds ?? new List<String>()).Select(x => "folder_" + x)); itemList.AddRange((fileIds ?? new List<String>()).Select(x => "file_" + x)); return _fileStorageService.MoveOrCopyItems(itemList, destFolderId, conflictResolveType, true).Select(o => new FileOperationWraper(o)); }
private void MoveOrCopyFiles(List <object> fileIds, object to, bool copy, FileConflictResolveType resolveType) { if (fileIds.Count == 0) { return; } foreach (var fileId in fileIds) { if (Canceled) { return; } var file = FileDao.GetFile(fileId); if (file == null) { Error = FilesCommonResource.ErrorMassage_FileNotFound; } else if (!FilesSecurity.CanRead(file)) { Error = FilesCommonResource.ErrorMassage_SecurityException_ReadFile; } else if (!Equals(file.FolderID.ToString(), to)) { var conflict = FileDao.GetFile(to, file.Title); if (conflict != null && !FilesSecurity.CanEdit(conflict)) { Error = FilesCommonResource.ErrorMassage_SecurityException; } else if (conflict == null) { if (copy) { File newFile = null; try { newFile = FileDao.CopyFile(file.ID, to); //Stream copy will occur inside dao ProcessedFile(fileId); } catch { if (newFile != null) { FileDao.DeleteFile(newFile.ID); } throw; } } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileDao.MoveFile(file.ID, to); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else { if (resolveType == FileConflictResolveType.Overwrite) { conflict.Version++; using (var stream = FileDao.GetFileStream(file)) { conflict = FileDao.SaveFile(conflict, stream); } Global.PublishUpdateDocument(conflict.ID); if (copy) { ProcessedFile(fileId); } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { NotifySource.Instance.GetSubscriptionProvider() .GetRecipients(NotifyConstants.Event_UpdateDocument, file.UniqID) .ToList() .ForEach(r => NotifySource.Instance.GetSubscriptionProvider().Subscribe(NotifyConstants.Event_UpdateDocument, conflict.UniqID, r)); NotifySource.Instance.GetSubscriptionProvider().UnSubscribe(NotifyConstants.Event_UpdateDocument, file.UniqID); FileDao.DeleteFile(file.ID); FileDao.DeleteFolder(file.ID); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else if (resolveType == FileConflictResolveType.Skip) { //nothing } } } ProgressStep(); } }
public ItemList <FileOperationResult> MoveOrCopy(AuthContext authContext, TenantManager tenantManager, List <object> folders, List <object> files, string destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, Dictionary <string, string> headers) { var op = new FileMoveCopyOperation(ServiceProvider, new FileMoveCopyOperationData(folders, files, tenantManager.GetCurrentTenant(), destFolderId, copy, resolveType, holdResult, headers)); return(QueueTask(authContext, op)); }
private void MoveOrCopyFiles(ICollection fileIds, Folder toFolder, bool copy, FileConflictResolveType resolveType) { if (fileIds.Count == 0) return; var toFolderId = toFolder.ID; foreach (var fileId in fileIds) { if (Canceled) return; var file = FileDao.GetFile(fileId); if (file == null) { Error = FilesCommonResource.ErrorMassage_FileNotFound; } else if (!FilesSecurity.CanRead(file)) { Error = FilesCommonResource.ErrorMassage_SecurityException_ReadFile; } else if (Global.EnableUploadFilter && !Studio.Utility.FileUtility.ExtsUploadable.Contains(Studio.Utility.FileUtility.GetFileExtension(file.Title))) { Error = FilesCommonResource.ErrorMassage_NotSupportedFormat; } else if (!Equals(file.FolderID.ToString(), toFolderId)) { try { var conflict = FileDao.GetFile(toFolderId, file.Title); if (conflict != null && !FilesSecurity.CanEdit(conflict)) { Error = FilesCommonResource.ErrorMassage_SecurityException; } else if (conflict == null) { if (copy) { File newFile = null; try { newFile = FileDao.CopyFile(file.ID, toFolderId); //Stream copy will occur inside dao if (Equals(newFile.FolderID.ToString(), _toFolderId)) _needToMarkAsNew.Add(newFile); ProcessedFile(fileId); } catch { if (newFile != null) FileDao.DeleteFile(newFile.ID); throw; } } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileMarker.RemoveMarkAsNewForAll(file); var newFileId = FileDao.MoveFile(file.ID, toFolderId); if (Equals(toFolderId.ToString(), _toFolderId)) _needToMarkAsNew.Add(FileDao.GetFile(newFileId)); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else { if (resolveType == FileConflictResolveType.Overwrite) { conflict.Version++; using (var stream = FileDao.GetFileStream(file)) { conflict.ContentLength = stream.Length; conflict = FileDao.SaveFile(conflict, stream); _needToMarkAsNew.Add(conflict); } if (copy) { ProcessedFile(fileId); } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileDao.DeleteFile(file.ID); FileDao.DeleteFolder(file.ID); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else if (resolveType == FileConflictResolveType.Skip) { //nothing } } } catch (Exception ex) { Error = ex.Message; Logger.Error(Error, ex); } } ProgressStep(); } }
public ItemList <FileOperationResult> MoveOrCopy(List <object> folders, List <object> files, string destFolderId, bool copy, FileConflictResolveType resolveType, bool holdResult, Dictionary <string, string> headers) { var op = new FileMoveCopyOperation(folders, files, destFolderId, copy, resolveType, holdResult, headers); return(QueueTask(op)); }
private void MoveOrCopyFiles(List<object> fileIds, object to, bool copy, FileConflictResolveType resolveType) { if (fileIds.Count == 0) return; foreach (var fileId in fileIds) { if (Canceled) return; var file = FileDao.GetFile(fileId); if (file == null) { Error = FilesCommonResource.ErrorMassage_FileNotFound; } else if (!FilesSecurity.CanRead(file)) { Error = FilesCommonResource.ErrorMassage_SecurityException_ReadFile; } else if (!Equals(file.FolderID.ToString(), to)) { var conflict = FileDao.GetFile(to, file.Title); if (conflict != null && !FilesSecurity.CanEdit(conflict)) { Error = FilesCommonResource.ErrorMassage_SecurityException; } else if (conflict == null) { if (copy) { File newFile = null; try { newFile = FileDao.CopyFile(file.ID, to); //Stream copy will occur inside dao ProcessedFile(fileId); } catch { if (newFile != null) FileDao.DeleteFile(newFile.ID); throw; } } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { FileDao.MoveFile(file.ID, to); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else { if (resolveType == FileConflictResolveType.Overwrite) { conflict.Version++; using (var stream = FileDao.GetFileStream(file)) { conflict = FileDao.SaveFile(conflict, stream); } Global.PublishUpdateDocument(conflict.ID); if (copy) { ProcessedFile(fileId); } else { if ((file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing) { Error = FilesCommonResource.ErrorMassage_SecurityException_UpdateEditingFile; } else if (FilesSecurity.CanDelete(file)) { NotifySource.Instance.GetSubscriptionProvider() .GetRecipients(NotifyConstants.Event_UpdateDocument, file.UniqID) .ToList() .ForEach(r => NotifySource.Instance.GetSubscriptionProvider().Subscribe(NotifyConstants.Event_UpdateDocument, conflict.UniqID, r)); NotifySource.Instance.GetSubscriptionProvider().UnSubscribe(NotifyConstants.Event_UpdateDocument, file.UniqID); FileDao.DeleteFile(file.ID); FileDao.DeleteFolder(file.ID); ProcessedFile(fileId); } else { Error = FilesCommonResource.ErrorMassage_SecurityException_DeleteFile; } } } else if (resolveType == FileConflictResolveType.Skip) { //nothing } } } ProgressStep(); } }