Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
            }
        }