public WsFile Add(WsFolderPath folderPath, string fileName, string fileIdent, long fileSize) { FolderItemsResolver folderItemsResolver = _dic.GetOrAdd( folderPath, x => new FolderItemsResolver(folderPath, _apiClient, RemoveFolder)); return(folderItemsResolver.Add(fileName, fileIdent, fileSize, folderPath.IsPrivate)); }
private bool RemoveFolder(WsFolderPath folderPath, out FolderItemsResolver folderItemsResolver) { if (_dic.TryRemove(folderPath, out folderItemsResolver)) { Log("Remove folder", folderPath); return(true); } return(false); }
public void MoveItem(WsItem item, WsFolder targetFolder) { FolderItemsResolver sourceFolderItemsResolver = (FindFolderItemsResolver(item.PathInfoGeneric.Folder) as FolderItemsResolver); if (sourceFolderItemsResolver == null) { return; } if (item is WsFile file) { sourceFolderItemsResolver.RemoveFileAndFolderIfEmpty(file); if (file.IsReady == false) { Add(targetFolder.PathInfo, file.PathInfo.Name, file.Ident, file.Size); } } else if (item is WsFolder folder) { MoveFolder(folder.PathInfo, targetFolder.PathInfo); } }