public async Task<object> GetPath(int from, int to)
        {
            var nodes = await this.nodeStorage.GetAllNodesAsync().ConfigureAwait(false);
            this.graph.MakeAdjactedBothWay(nodes);
            var pathSearch = new SearchPath(nodes);
            var path = pathSearch.ShortestPath(from, to);

            return new
            {
                edges = this.graph.GetHightlightedEdgeIds(from, path),
                nodes = this.graph.GetHightlightedNodeIds(from, path)
            };
        }
        public void SearchNoWay()
        {
            var nodes = new NodeContainer
            {
                new Node()
                {
                    id = 1,
                    adjacentNodes = new int[] {1},
                    label = "top"
                },
                new Node()
                {
                    id = 2,
                    adjacentNodes = new int[] {2},
                    label = "second"
                }
            };

            var search = new SearchPath(nodes);
            var result = search.ShortestPath(1, 2);
            Assert.AreEqual(new int[] {}, result);
        }
        public void SearchPathSuccess()
        {
            var nodes = new NodeContainer
            {
                new Node()
                {
                    id = 1,
                    adjacentNodes = new int[] {2, 3},
                    label = "top"
                },
                new Node()
                {
                    id = 2,
                    adjacentNodes = new int[] {1},
                    label = "second"
                },
                new Node()
                {
                    id = 3,
                    adjacentNodes = new int[] {1, 5, 4},
                    label = "second"
                },
                new Node()
                {
                    id = 4,
                    adjacentNodes = new int[] {3},
                    label = "second"
                },
              new Node()
                {
                    id = 5,
                    adjacentNodes = new int[] {3},
                    label = "blind"
                },
              new Node()
                {
                    id = 6,
                    adjacentNodes = new int[] {4},
                    label = "end"
                },
                new Node()
                {
                    id = 7,
                    adjacentNodes = new int[] {1},
                    label = "blind"
                },
            };

            var graphService = new Graph();
            graphService.MakeAdjactedBothWay(nodes);
            var search = new SearchPath(nodes);

            var result = search.ShortestPath(1, 6);

            Assert.AreEqual(new int[] {6,4,3}, result);
        }