public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, LLUUID folderID, ItemCreatedFromAssetCallback callback) { if (_Client.Network.CurrentSim == null || _Client.Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = _Client.Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { LLSDMap query = new LLSDMap(); query.Add("folder_id", LLSD.FromUUID(folderID)); query.Add("asset_type", LLSD.FromString(AssetTypeToString(assetType))); query.Add("inventory_type", LLSD.FromString(InventoryTypeToString(invType))); query.Add("name", LLSD.FromString(name)); query.Add("description", LLSD.FromString(description)); byte[] postData = StructuredData.LLSDParser.SerializeXmlBytes(query); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += new CapsClient.CompleteCallback(CreateItemFromAssetResponse); request.UserData = new KeyValuePair<ItemCreatedFromAssetCallback, byte[]>(callback, data); request.StartRequest(postData); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
/// <summary> /// Create an inventory item and upload asset data /// </summary> /// <param name="data">Asset data</param> /// <param name="name">Inventory item name</param> /// <param name="description">Inventory item description</param> /// <param name="assetType">Asset type</param> /// <param name="invType">Inventory type</param> /// <param name="folderID">Put newly created inventory in this folder</param> /// <param name="permissions">Permission of the newly created item /// (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported)</param> /// <param name="callback">Delegate that will receive feedback on success or failure</param> public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, UUID folderID, Permissions permissions, ItemCreatedFromAssetCallback callback) { if (Client.Network.CurrentSim == null || Client.Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = Client.Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { OSDMap query = new OSDMap(); query.Add("folder_id", OSD.FromUUID(folderID)); query.Add("asset_type", OSD.FromString(Utils.AssetTypeToString(assetType))); query.Add("inventory_type", OSD.FromString(Utils.InventoryTypeToString(invType))); query.Add("name", OSD.FromString(name)); query.Add("description", OSD.FromString(description)); query.Add("everyone_mask", OSD.FromInteger((int)permissions.EveryoneMask)); query.Add("group_mask", OSD.FromInteger((int)permissions.GroupMask)); query.Add("next_owner_mask", OSD.FromInteger((int)permissions.NextOwnerMask)); query.Add("expected_upload_cost", OSD.FromInteger(Client.Settings.UPLOAD_COST)); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += CreateItemFromAssetResponse; request.UserData = new object[] { callback, data, Client.Settings.CAPS_TIMEOUT, query }; request.BeginGetResponse(query, OSDFormat.Xml, Client.Settings.CAPS_TIMEOUT); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
/// <summary> /// Create an inventory item and upload asset data /// </summary> /// <param name="data">Asset data</param> /// <param name="name">Inventory item name</param> /// <param name="description">Inventory item description</param> /// <param name="assetType">Asset type</param> /// <param name="invType">Inventory type</param> /// <param name="folderID">Put newly created inventory in this folder</param> /// <param name="callback">Delegate that will receive feedback on success or failure</param> public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, UUID folderID, ItemCreatedFromAssetCallback callback) { Permissions permissions = new Permissions(); permissions.EveryoneMask = PermissionMask.None; permissions.GroupMask = PermissionMask.None; permissions.NextOwnerMask = PermissionMask.All; RequestCreateItemFromAsset(data, name, description, assetType, invType, folderID, permissions, callback); }
public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, UUID folderID, CapsClient.ProgressCallback progCallback, ItemCreatedFromAssetCallback callback) { if (_Network.CurrentSim == null || _Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = _Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { LLSDMap query = new LLSDMap(); query.Add("folder_id", LLSD.FromUUID(folderID)); query.Add("asset_type", LLSD.FromString(AssetTypeToString(assetType))); query.Add("inventory_type", LLSD.FromString(InventoryTypeToString(invType))); query.Add("name", LLSD.FromString(name)); query.Add("description", LLSD.FromString(description)); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += new CapsClient.CompleteCallback(CreateItemFromAssetResponse); request.UserData = new object[] { progCallback, callback, data }; request.StartRequest(query); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, UUID folderID, ItemCreatedFromAssetCallback callback) { if (_Network.CurrentSim == null || _Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = _Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { OSDMap query = new OSDMap(); query.Add("folder_id", OSD.FromUUID(folderID)); query.Add("asset_type", OSD.FromString(Utils.AssetTypeToString(assetType))); query.Add("inventory_type", OSD.FromString(Utils.InventoryTypeToString(invType))); query.Add("name", OSD.FromString(name)); query.Add("description", OSD.FromString(description)); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += CreateItemFromAssetResponse; request.UserData = new object[] { callback, data, _Network.CapsTimeout }; request.BeginGetResponse(query, OSDFormat.Xml, _Network.CapsTimeout); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, LLUUID folderID, ItemCreatedFromAssetCallback callback) { if (_Client.Network.CurrentSim == null || _Client.Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); string url = _Client.Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != String.Empty) { Dictionary<string, object> query = new Dictionary<string, object>(); query.Add("folder_id", folderID); query.Add("asset_type", AssetTypeToString(assetType)); query.Add("inventory_type", InventoryTypeToString(invType)); query.Add("name", name); query.Add("description", description); byte[] postData = LLSD.LLSDParser.SerializeXmlBytes(query); // Make the request CapsRequest request = new CapsRequest(url, _Client.Network.CurrentSim); request.OnCapsResponse += new CapsRequest.CapsResponseCallback(CreateItemFromAssetResponse); request.MakeRequest(postData, "application/xml", 0, new KeyValuePair<ItemCreatedFromAssetCallback, byte[]>(callback, data)); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }