// Заполнение матрицы связей
        void GetСityLinksList(Carriers carriers)
        {
            /* Считываем все routeID (3-15 это номер маршрута, в номере 3 - номер города 15 -
             * номер города, для связи) у всех имеющихся перевозчиков, чтобы заполнить матрицу
             * связей для поиска оптимального маршрута
             */

            /* routeID содержит запись 3-15, где 3 вершина  15 это признак второй вершины с которой
             * есть связь, например у вершины 3-15 есть связь с вершиной 15-18 */

            foreach (Carrier i in carriers.carriersList)
            {
                for (int r = 0; r != i.carrierRoutesIdList.Length; r++)
                {
                    string   str      = i.carrierRoutesIdList[r];
                    int      node     = Convert.ToInt32(str.Substring(0, str.IndexOf('-')));
                    int      nextNode = Convert.ToInt32(str.Substring(str.IndexOf('-') + 1));
                    CityLink tmp      = new CityLink(node, nextNode);
                    cityLinks.Add(tmp);

                    Console.WriteLine($"Город {tmp.node} связан с городом {tmp.nextNode}");
                    //Console.WriteLine(i.carrierRoutesIdList[r]);
                }
            }
        }
Exemple #2
0
        public async Task <IActionResult> CreateLink([Bind("FromCity,ToCity,Media,Distance,Price,Speed,Emission")] CityLink link)
        {
            if (ModelState.IsValid)
            {
                await _client.CreateEdge(link.FromCity, link.ToCity, link.Media, link.Distance, link.Price, link.Emission, link.Speed);

                return(RedirectToAction(nameof(Index)));
            }
            return(View());
        }