Canguro.Model.Model.BuildAnalysisCaseAdjacency C# (CSharp) Method

BuildAnalysisCaseAdjacency() public method

Builds an adjacencyList of dependant abstract cases, so that each entry has its dependant cases in its list
public BuildAnalysisCaseAdjacency ( ) : LinkedList>.Dictionary
return LinkedList>.Dictionary
        public Dictionary<AbstractCase, LinkedList<AbstractCase>> BuildAnalysisCaseAdjacency()
        {
            Dictionary<AbstractCase, LinkedList<AbstractCase>> adjancencyList = new Dictionary<AbstractCase, LinkedList<AbstractCase>>();

            AnalysisCase aCase = null;
            LoadCombination combo = null;

            foreach (AbstractCase ac in abstractCases)
            {
                if ((aCase = ac as AnalysisCase) != null)
                {
                    if (aCase.Properties.DependsOn == null)
                    {
                        if (!adjancencyList.ContainsKey(aCase))
                            adjancencyList.Add(aCase, new LinkedList<AbstractCase>());
                    }
                    else if (adjancencyList.ContainsKey(aCase.Properties.DependsOn))
                        adjancencyList[aCase.Properties.DependsOn].AddLast(aCase);
                    else
                    {
                        adjancencyList.Add(aCase.Properties.DependsOn, new LinkedList<AbstractCase>());
                        adjancencyList[aCase.Properties.DependsOn].AddLast(aCase);
                    }
                }
                else if ((combo = ac as LoadCombination) != null)
                {
                    foreach (AbstractCaseFactor acf in combo.Cases)
                    {
                        if (adjancencyList.ContainsKey(acf.Case))
                            adjancencyList[acf.Case].AddLast(combo);
                        else
                        {
                            adjancencyList.Add(acf.Case, new LinkedList<AbstractCase>());
                            adjancencyList[acf.Case].AddLast(combo);
                        }
                    }
                }
            }

            return adjancencyList;
        }