public async Task <ActionResult <List <ParentIndexNodes> > > CreateParentNodes(CreateIndexParameters iParameters) { if (iParameters == null) { return(BadRequest()); } List <ParentIndexNodes> nodes = new List <ParentIndexNodes>(); try { IndexBuilder iBuilder = new IndexBuilder(); string json = GetJsonIndexFile(); ConnectParameters connector = Common.GetConnectParameters(connectionString, container, iParameters.DataConnector); iBuilder.InitializeIndex(connector, json); iBuilder.CreateRoot(); int parentNodes = iBuilder.JsonIndexArray.Count; for (int k = 0; k < parentNodes; k++) { JToken token = iBuilder.JsonIndexArray[k]; int parentCount = iBuilder.GetObjectCount(token, k); if (parentCount > 0) { int parentNodeId = iBuilder.CreateParentNodeIndex(); nodes.Add(new ParentIndexNodes() { NodeCount = parentCount, ParentNodeId = parentNodeId, Name = (string)token["DataName"] }); } } iBuilder.CloseIndex(); } catch (Exception ex) { return(BadRequest(ex.ToString())); } return(nodes); }