public async Task DeleteAsync(string id) { _nodeRepository.Delete(id); var node = await _nodeRepository.GetAsync(n => n.Id == id); if (node.ChildCount > 0) { throw new Exception("Node has children."); } if (!string.IsNullOrEmpty(node.ParentId)) { var parent = await _nodeRepository.GetAsync(n => n.Id == node.ParentId); parent.ChildCount--; await _nodeRepository.UpdateAsync(parent); } if (!string.IsNullOrEmpty(node.Path)) { var nodes = await GetAncestors(node); foreach (var ancestorNode in nodes) { ancestorNode.DescendantCount--; await _nodeRepository.UpdateAsync(ancestorNode); } } await _nodeRepository.SaveChangesAsync(); }
public async Task <IActionResult> Delete(long?id) { //データの入力チェック if (id == null) { return(JsonBadRequest("Invalid inputs.")); } //データの存在チェック var node = await nodeRepository.GetByIdAsync(id.Value); if (node == null) { return(JsonNotFound($"Node ID {id.Value} is not found.")); } if (string.IsNullOrEmpty(node.Partition) != false) { //パーティションが設定されていたら、消す //既にノードが外されている場合を考慮し、もし失敗しても気にせず削除処理を続ける await clusterManagementLogic.UpdatePartitionLabelAsync(node.Name, ""); } nodeRepository.ResetAssinedTenants(node.Id); nodeRepository.Delete(node); unitOfWork.Commit(); return(JsonNoContent()); }
public async Task <IActionResult> Delete(long?id, [FromServices] ITenantRepository tenantRepository) { //データの入力チェック if (id == null) { return(JsonBadRequest("Invalid inputs.")); } //データの存在チェック var node = await nodeRepository.GetByIdAsync(id.Value); if (node == null) { return(JsonNotFound($"Node ID {id.Value} is not found.")); } // 削除対象のノードでコンテナ稼働中の場合、削除しない var response = await clusterManagementLogic.GetAllContainerDetailsInfosAsync(); if (response.IsSuccess) { int runningCount = 0; foreach (var container in response.Value) { // ステータスによらず、全て稼働中と見做す if (node.Name.Equals(container.NodeName)) { runningCount++; } } if (runningCount > 0) { return(JsonConflict($"Running containers exists deleting node. node name=[{node.Name}], running container count=[{runningCount}]")); } } if (string.IsNullOrEmpty(node.Partition) != false) { //パーティションが設定されていたら、消す //既にノードが外されている場合を考慮し、もし失敗しても気にせず削除処理を続ける await clusterManagementLogic.UpdatePartitionLabelAsync(node.Name, ""); } // 全てのアサイン情報を削除する var tenants = tenantRepository.GetAllTenants(); foreach (Tenant tenant in tenants) { await clusterManagementLogic.UpdateTenantEnabledLabelAsync(node.Name, tenant.Name, false); } // KQI管理者用名前空間のアサイン情報を削除する await clusterManagementLogic.UpdateTenantEnabledLabelAsync(node.Name, containerManageOptions.KqiAdminNamespace, false); nodeRepository.ResetAssinedTenants(node.Id); nodeRepository.Delete(node); unitOfWork.Commit(); return(JsonNoContent()); }
public void DeleteNodes(int id) { var mainNode = _nodeRepository.Get(id); foreach (Node node in mainNode.ChildNodes.ToList()) { if (node.ChildNodes.Count() > 0) { DeleteNodes(node.Id); } else { _nodeRepository.Delete(node.Id); } } _nodeRepository.Delete(id); }
public void Delete(int id) { var item = _repository.GetAll().FirstOrDefault(u => u.Id == id); if (item != null) { _repository.Delete(item); _repository.SaveCganges(); } }
public async Task <IActionResult> Delete(string name) { var nodeFromDb = await _nodeRepository.GetNode(name); if (nodeFromDb == null) { return(new NotFoundResult()); } await _nodeRepository.Delete(name); return(new OkResult()); }
public ICommandResult Handle(DeleteNodeCommand command) { //Fail Fast Validation command.Validate(); if (command.Invalid) { return(new GenericCommandResult(false, Messages.Ex_ExceptionGeneric, command.Notifications)); } var node = _repository.GetById(command.Id); if (node == null) { return(new GenericCommandResult(false, Messages.Ex_ItemNotFound.ToFormat(command.Id.ToString() ?? ""), command.Notifications)); } _repository.Delete(node); return(new GenericCommandResult(true, Messages.Act_Deleted, node)); }
public async Task<BlResult> DeleteAsync(int id) { BlResult blResult = new BlResult(); try { var entity = await _nodeRepository.GetByIdWithReferencAsync(id); if (entity != null) { if (entity.ConnectionsFrom.Count + entity.ConnectionsTo.Count > 0) { blResult.Fail(ConstDictionary.CantDeleteNodeWithConnections); } else { EnsureTransaction(); _nodeRepository.Delete(id); await SaveChangesAsync(); blResult.Success(); } } else { throw new ArgumentException(); } } catch (ArgumentException) { blResult.Fail(BLErrorCodeTypeEnum.NoSuchEntityExistsWithID); } catch (Exception ex) { blResult.Fail(BLErrorCodeTypeEnum.Unknown, ex); } return blResult; }
public async Task DeleteAsync(string id) { _nodeRepository.Delete(id); var node = await _nodeRepository.GetAsync(id); if (!string.IsNullOrEmpty(node.ParentId)) { var parent = await _nodeRepository.GetAsync(node.ParentId); parent.ChildCount -= 1; _nodeRepository.Update(parent); } if (!string.IsNullOrEmpty(node.RootId)) { var root = await _nodeRepository.GetAsync(node.RootId); root.DescendantCount -= 1; _nodeRepository.Update(root); } await _nodeRepository.SaveChangesAsync(); }
public void Remove(int id) { _repository.Delete(id); }
public void Delete(Node node) { _session.Delete(node); }
public void Reset() { _nodeRepository.Delete(RootNode.Id); }