private static void DeleteFolder(Request req, UUID id, AISv3ResultData resultData)
        {
            InventoryFolderContent content;
            InventoryFolder        folderData;

            if (!req.InventoryService.Folder.TryGetValue(req.Agent.ID, id, out folderData) ||
                !req.InventoryService.Folder.Content.TryGetValue(req.Agent.ID, id, out content))
            {
                return;
            }

            foreach (InventoryFolder folder in content.Folders)
            {
                DeleteSubFolder(req, folder.ID, resultData);
            }
            foreach (InventoryItem item in content.Items)
            {
                DeleteItem(req, item, resultData);
            }
            try
            {
                req.InventoryService.Folder.Delete(req.Agent.ID, id);
            }
            catch (InventoryFolderNotFoundException)
            {
                /* intentionally ignored */
            }
            if (req.InventoryService.Folder.TryGetValue(req.Agent.ID, folderData.ParentFolderID, out folderData))
            {
                resultData.AddUpdatedCategory(folderData);
            }
        }
        private static void PurgeFolder(Request req, UUID id, AISv3ResultData resultData)
        {
            InventoryFolderContent content;

            if (!req.InventoryService.Folder.Content.TryGetValue(req.Agent.ID, id, out content))
            {
                return;
            }

            foreach (InventoryFolder folder in content.Folders)
            {
                DeleteSubFolder(req, folder.ID, resultData);
            }
            foreach (InventoryItem item in content.Items)
            {
                DeleteItem(req, item, resultData);
            }
            InventoryFolder folderData;

            if (req.InventoryService.Folder.TryGetValue(req.Agent.ID, id, out folderData))
            {
                resultData.AddUpdatedCategory(folderData);
            }
        }