public TreeDto UpdateTree(Guid guid, UpsertTreeDto upsert) { var updateBuilder = Builders <TreeEntity> .Update; var updates = new List <UpdateDefinition <TreeEntity> >(); if (upsert.Name != null) { updates.Add(updateBuilder.Set(t => t.Name, upsert.Name)); } if (upsert.Description != null) { updates.Add(updateBuilder.Set(t => t.Description, upsert.Description)); } updates.Add(updateBuilder.Set(t => t.UpdatedAt, DateTime.Now)); var entity = _treesCollections.FindOneAndUpdate <TreeEntity>( t => t.Guid == guid, updateBuilder.Combine(updates), new FindOneAndUpdateOptions <TreeEntity> { ReturnDocument = ReturnDocument.After }); return(entity?.ToDto() ?? throw new TreeNotFoundException(guid)); }
public ActionResult Post([FromBody] UpsertTreeDto upsertTree) { if (!upsertTree.IsValid) { return(BadRequest()); } var tree = _treeStorage.CreateTree(upsertTree); return(Ok(tree)); }
public TreeDto CreateTree(UpsertTreeDto tree) { var entity = new TreeEntity( Guid.NewGuid(), tree.Name, tree.Description, createdAt: DateTime.Now, updatedAt: DateTime.Now); _treesCollections.InsertOne(entity); return(entity.ToDto()); }
public ActionResult Put(Guid guid, [FromBody] UpsertTreeDto upsertTree) { if (upsertTree.IsEmpty) { return(BadRequest()); } try { return(Ok(_treeStorage.UpdateTree(guid, upsertTree))); } catch (NotFoundException e) { return(NotFound(e)); } }