public void GiveInventoryFolderAsync(UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId, GiveFolderParam success) { throw new NotImplementedException(); }
/// <summary> /// Give an entire inventory folder from one user to another. The entire contents (including all descendent /// folders) is given. /// </summary> /// <param name="recipientId"></param> /// <param name="senderId">ID of the sender of the item</param> /// <param name="folderId"></param> /// <param name="recipientParentFolderId"> /// The id of the recipient folder in which the send folder should be placed. If UUID.Zero then the /// recipient folder is the root folder /// </param> /// <param name="success"></param> /// <returns> /// The inventory folder copy given, null if the copy was unsuccessful /// </returns> public void GiveInventoryFolderAsync( UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId, GiveFolderParam success) { Util.FireAndForget(o => { // Retrieve the folder from the sender InventoryFolderBase folder = GetFolder(new InventoryFolderBase(folderId)); if (null == folder) { MainConsole.Instance.ErrorFormat( "[InventoryService]: Could not find inventory folder {0} to give", folderId); success(null); return; } //Find the folder for the receiver if (recipientParentFolderId == UUID.Zero) { InventoryFolderBase recipientRootFolder = GetRootFolder(recipientId); if (recipientRootFolder != null) recipientParentFolderId = recipientRootFolder.ID; else { MainConsole.Instance.WarnFormat( "[InventoryService]: Unable to find root folder for receiving agent"); success(null); return; } } UUID newFolderId = UUID.Random(); InventoryFolderBase newFolder = new InventoryFolderBase( newFolderId, folder.Name, recipientId, folder.Type, recipientParentFolderId, folder.Version); AddFolder(newFolder); // Give all the subfolders InventoryCollection contents = GetFolderContent(senderId, folderId); foreach (InventoryFolderBase childFolder in contents.Folders) { GiveInventoryFolderAsync(recipientId, senderId, childFolder.ID, newFolder.ID, null); } // Give all the items foreach (InventoryItemBase item in contents.Items) { InnerGiveInventoryItem(recipientId, senderId, item, newFolder.ID, true, true); } success(newFolder); }); }
public void GiveInventoryFolderAsync(UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId, GiveFolderParam success) { }