public async Task <object> Delete(string token, dynamic data, string json = "") { try { data = data ?? JsonConvert.DeserializeObject <dynamic>(json); if (data != null)//单实体 { if (data.GetType().IsValueType) { OnEntityDeleting?.Invoke(new object[] { data }); int r = await Delete(data); OnEntityDeleted?.Invoke(new object[] { data }); return(r); } else if (data.GetType() == typeof(JArray)) { JArray array = data as JArray; object[] key = array.ToObject <object[]>(); OnEntityDeleting?.Invoke(key); int r = await Delete(key); OnEntityDeleted?.Invoke(key); return(r); } } throw new Exception("获取删除关键字失败,未找到id或ids"); } catch (Exception e) { throw e; } }
public void DeleteEntity(BIWEntity entityToDelete, bool checkSelection) { if (entityToDelete.IsSelected && checkSelection) { DeselectEntity(entityToDelete); } if (selectedEntities.Contains(entityToDelete)) { selectedEntities.Remove(entityToDelete); hudController?.UpdateEntitiesSelection(selectedEntities.Count); } string entityName = entityToDelete.GetDescriptiveName(); if (entityNameList.Contains(entityName)) { entityNameList.Remove(entityName); } RemoveConvertedEntity(entityToDelete.rootEntity); entityToDelete.rootEntity.OnRemoved -= RemoveConvertedEntity; entityToDelete.Delete(); string idToRemove = entityToDelete.rootEntity.entityId; OnEntityDeleted?.Invoke(entityToDelete); creatorController.RemoveLoadingObjectInmediate(entityToDelete.rootEntity.entityId); if (sceneToEdit.entities.ContainsKey(idToRemove)) { sceneToEdit.RemoveEntity(idToRemove, true); } hudController?.RefreshCatalogAssetPack(); EntityListChanged(); bridge?.RemoveEntityOnKernel(idToRemove, sceneToEdit); }