protected override NodeBase Move(NodeBase toBeMovedNode, DirectoryNode targetDirectory) { try { using (var scope = _factory.CreateScope()) { var callPath = $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}"; var uow = scope.ServiceProvider.GetRequiredService <IUnitOfWork>(); if (toBeMovedNode.NodeType == NodeType.Directory) { var toBeMovedEntity = CompositeFileSystemHelper.FolderPathToEntity(uow, _userEntity, toBeMovedNode.Path.StringPath); var toBeMovedPath = CompositeFileSystemHelper.FolderEntityToPath(uow, _userEntity, toBeMovedEntity); var targetEntity = CompositeFileSystemHelper.FolderPathToEntity(uow, _userEntity, targetDirectory.Path.StringPath); var targetPath = CompositeFileSystemHelper.FolderEntityToPath(uow, _userEntity, targetEntity); toBeMovedEntity.ParentId = targetEntity.Id; uow.UserFolders.Update(toBeMovedEntity); uow.Commit(); Log.Information($"'{callPath}' '{_userEntity.IdentityAlias}' from '{toBeMovedPath}' to '{targetPath}'"); return(new DirectoryNode(toBeMovedNode.Name, targetDirectory)); } else if (toBeMovedNode.NodeType == NodeType.File) { var toBeMovedEntity = CompositeFileSystemHelper.FilePathToEntity(uow, _userEntity, toBeMovedNode.Path.StringPath); var toBeMovedPath = CompositeFileSystemHelper.FileEntityToPath(uow, _userEntity, toBeMovedEntity); var targetEntity = CompositeFileSystemHelper.FilePathToEntity(uow, _userEntity, targetDirectory.Path.StringPath); var targetPath = CompositeFileSystemHelper.FileEntityToPath(uow, _userEntity, targetEntity); toBeMovedEntity.FolderId = targetEntity.Id; uow.UserFiles.Update(toBeMovedEntity); uow.Commit(); Log.Information($"'{callPath}' '{_userEntity.IdentityAlias}' from '{toBeMovedPath}' to '{targetPath}'"); return(new FileNode(toBeMovedNode.Name, targetDirectory)); } else { throw new NotImplementedException(); } } } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
protected override NodeBase Rename(NodeBase node, string newName) { try { using (var scope = _factory.CreateScope()) { var callPath = $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}"; var uow = scope.ServiceProvider.GetRequiredService <IUnitOfWork>(); if (node.NodeType == NodeType.Directory) { var folderEntity = CompositeFileSystemHelper.FolderPathToEntity(uow, _userEntity, node.Path.StringPath); folderEntity.VirtualName = newName; uow.UserFolders.Update(folderEntity); uow.Commit(); var folderPath = CompositeFileSystemHelper.FolderEntityToPath(uow, _userEntity, folderEntity); Log.Information($"'{callPath}' '{_userEntity.IdentityAlias}' from '{node.Path}' to '{folderPath}'"); return(new DirectoryNode(newName, node.Parent)); } else if (node.NodeType == NodeType.File) { var fileEntity = CompositeFileSystemHelper.FilePathToEntity(uow, _userEntity, node.Path.StringPath); fileEntity.VirtualName = newName; uow.UserFiles.Update(fileEntity); uow.Commit(); var filePath = CompositeFileSystemHelper.FileEntityToPath(uow, _userEntity, fileEntity); Log.Information($"'{callPath}' '{_userEntity.IdentityAlias}' from '{node.Path}' to '{filePath}'"); return(new FileNode(newName, node.Parent)); } else { throw new NotImplementedException(); } } } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }