Ejemplo n.º 1
0
        private bool CheckLineageTree(LineageNode node, string val)
        {
            bool result = false;

            if (node.Name == val)
            {
                return(true);
            }
            else
            {
                if (node.Items != null && node.Items.Any())
                {
                    foreach (LineageNode n in node.Items)
                    {
                        if (!result)
                        {
                            result = CheckLineageTree(n, val);
                        }
                    }
                }
                else
                {
                    return(false);
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        private void AddLineageTree(LineageNode node, IList <string> lineage)
        {
            int         index    = 0;
            LineageNode lastNode = node;

            while (CheckLineageTree(node, lineage[index]) && lineage.Count - 1 > index)
            {
                index++;
            }
            if (index == 0)
            {
                node.Name = lineage[0];
            }
            else
            {
                lastNode = GetLastKnownNode(node, lineage[index - 1]);
                if (lastNode.Items == null)
                {
                    lastNode.Items = new List <LineageNode>();
                }
                if (!lastNode.Items.Select(x => x.Name).Contains(lineage[index]))
                {
                    lastNode.Items.Add(new LineageNode()
                    {
                        Name = lineage[index], BranchNo = index
                    });
                }
            }
            if (index < lineage.Count - 1)
            {
                AddLineageTree(node, lineage);
            }
        }
Ejemplo n.º 3
0
        public string GetLineage()
        {
            LineageNode lineageTree = bioService.GetLineageTree(GetActualUserProject().ProjectId);
            var         list        = Newtonsoft.Json.JsonConvert.SerializeObject(lineageTree);

            return(list);
        }
Ejemplo n.º 4
0
        public LineageNode GetLineageTree(ObjectId projectId)
        {
            LineageNode      lineage = new LineageNode();
            IList <CazyItem> items   = GetSequenceData(projectId);

            foreach (CazyItem item in items.Where(x => x.Lineage != null))
            {
                int            index      = 0;
                IList <string> hlpLineage = new List <string>();
                while (!item.Lineage[index].EndsWith("idea") && item.Lineage.Count - 1 > index)
                {
                    hlpLineage.Add(item.Lineage[index++]);
                }
                AddLineageTree(lineage, hlpLineage);
            }
            return(lineage);
        }
Ejemplo n.º 5
0
 private LineageNode GetLastKnownNode(LineageNode node, string val)
 {
     if (node.Name == val)
     {
         return(node);
     }
     else
     {
         if (node.Items != null && node.Items.Any())
         {
             foreach (LineageNode n in node.Items)
             {
                 node = GetLastKnownNode(n, val);
             }
         }
     }
     return(node);
 }