public void AddEdges()
        {
            foreach (var block in GetActionResultBlocks())
            {
                int    startOfViewName  = block[0].IndexOf("public ActionResult ") + 20;
                int    lengthOfViewName = block[0].IndexOf('(', startOfViewName) - startOfViewName;
                string viewName         = block[0].Substring(startOfViewName, lengthOfViewName);
                if (viewName.Contains("<IActionResult> "))
                {
                    viewName = viewName.Substring(viewName.LastIndexOf(" ") + 1);
                }

                string currentNode = _controller + '/' + viewName;
                _applicationData.AddAction(currentNode);
                if (!_applicationData.GetViewDataGraph().ContainsVertex(currentNode))
                {
                    _applicationData.GetViewDataGraph().AddVertex(currentNode);
                }

                block.Remove(block[0]);
                foreach (string line in block)
                {
                    string temp = line;
                    if (temp.Contains("RedirectToContract("))
                    {
                        temp = temp.Replace("RedirectToContract(", "RedirectToAction(\"Edit\",");
                    }

                    if (temp.Contains("RedirectToAction"))
                    {
                        int startOfRedirectedViewName = temp.IndexOf("RedirectToAction(\"") + 18;

                        if (startOfRedirectedViewName == 17)
                        {
                            startOfRedirectedViewName = temp.IndexOf("RedirectToAction(nameof(") + 24;
                            int lengthOfRedirectedViewName =
                                temp.IndexOf(')', startOfRedirectedViewName) - startOfRedirectedViewName;

                            string redirectedViewName =
                                temp.Substring(startOfRedirectedViewName, lengthOfRedirectedViewName);


                            string from = currentNode;
                            string to   = redirectedViewName.Contains("Controller.")
                                ? redirectedViewName.Replace("Controller.", "/")
                                : _controller + '/' + redirectedViewName;
                            AddEdge(from, to);
                        }
                        else
                        {
                            int lengthOfRedirectedViewName =
                                temp.IndexOf('\"', startOfRedirectedViewName) - startOfRedirectedViewName;


                            string redirectedViewName =
                                temp.Substring(startOfRedirectedViewName, lengthOfRedirectedViewName);

                            string to;
                            if (line.Contains(redirectedViewName + '"' + ','))
                            {
                                int startOfRedirectedControllerName =
                                    temp.IndexOf('"',
                                                 temp.IndexOf(redirectedViewName + '"' + ',') + redirectedViewName.Length + 1) +
                                    1;
                                int lengthOfRedirectedConreollerName =
                                    temp.IndexOf('"', startOfRedirectedControllerName + 1) -
                                    startOfRedirectedControllerName;
                                string toController = temp.Substring(startOfRedirectedControllerName,
                                                                     lengthOfRedirectedConreollerName);
                                to = toController + '/' + redirectedViewName;
                            }
                            else
                            {
                                to = _controller + '/' + redirectedViewName;
                            }

                            AddEdge(currentNode, to);
                        }
                    }
                    else if (temp.Contains("RedirectToIndex(") || temp.Contains("Delete(") ||
                             temp.Contains("DeleteChild("))
                    {
                        string to = _controller + '/' + "Index";

                        AddEdge(currentNode, to);
                    }
                    else if (temp.Contains("RedirectToLocal(\"/\""))
                    {
                        string from = currentNode;
                        int    startIndexOfDestionation = temp.IndexOf("RedirectToLocal(\"/\"") + 19;
                        int    lengthOfDestination      = temp.IndexOf("\"", startIndexOfDestionation);
                        string destination = lengthOfDestination == -1
                            ? "Index"
                            : temp.Substring(startIndexOfDestionation, lengthOfDestination);
                        string to = _controller + '/' + destination;

                        AddEdge(from, to);
                    }
                }
            }
        }