public ActionResult PutNode(Guid guid, [FromBody] UpdateNodeDto updateNode) { if (updateNode.IsEmpty) { return(BadRequest()); } try { return(Ok(_treeStorage.UpdateNode(guid, updateNode))); } catch (NotFoundException e) { return(NotFound(e)); } }
public NodeDto UpdateNode(Guid guid, UpdateNodeDto updateNode) { var updateBuilder = Builders <NodeEntity> .Update; var updates = new List <UpdateDefinition <NodeEntity> >(); if (updateNode.Name != null) { updates.Add(updateBuilder.Set(n => n.Name, updateNode.Name)); } if (updateNode.Description != null) { updates.Add(updateBuilder.Set(n => n.Description, updateNode.Description)); } var entity = _nodesCollections.FindOneAndUpdate <NodeEntity>( t => t.Guid == guid, updateBuilder.Combine(updates), new FindOneAndUpdateOptions <NodeEntity> { ReturnDocument = ReturnDocument.After }); return(entity?.ToDto() ?? throw new NodeNotFoundException(guid)); }