public async Task <ActionResult <INode> > GetLowestCommonAncestorAsync(TreeStructureRequest dataRequest) { if (dataRequest == null || dataRequest.Node == null) { return(BadRequest("The request has invalid data or does not have any data at all")); } var rootNode = await this._treeBuilder.GetClosestCommonAncestorAsync(dataRequest.Node, dataRequest.FirstDescendant, dataRequest.SecondDescendant); if (rootNode == null) { return(Ok("Is possible that one or both descendants does not exist in the tree")); } return(Ok(rootNode)); }
public async Task <ActionResult <INode> > CreateBinaryTreeAsync(TreeStructureRequest dataRequest) { if (dataRequest == null || dataRequest.DataList == null || !dataRequest.DataList.Any()) { return(BadRequest("The request has invalid data or does not have any data at all")); } var rootNode = await this._treeBuilder.CreateTreeStructureAsync(dataRequest.DataList); if (rootNode == null) { return(Ok(null)); } return(Ok(rootNode)); }