public async Task <VMGetNodes> UpdateAsync(VMEditNode node, Guid id) { if (!_validator.Validate(node.Name)) { throw new ArgumentException("Data not valid. Name must start with character and has maximum 30 chars."); } var nodeToEdit = _context.Nodes.Where(x => x.IdNode == id).FirstOrDefault(); if (nodeToEdit == null) { return(null); } nodeToEdit.Name = node.Name; var result = _context.Nodes.Update(nodeToEdit); await _context.SaveChangesAsync(); var editedNode = result.Entity; var viewModel = new VMGetNodes(); viewModel.IdNode = editedNode.IdNode; viewModel.Level = editedNode.Level; viewModel.Name = editedNode.Name; viewModel.ParentId = editedNode.ParentId; return(viewModel); }
public async Task <IActionResult> Edit(Guid id, [FromBody] VMEditNode node) { if (id.Equals(Guid.Empty)) { return(BadRequest()); } try { var result = await _service.UpdateAsync(node, id); return(CreatedAtAction(nameof(GetNodes), new { id = result.IdNode }, result)); } catch (Exception) { return(BadRequest()); } }