private QuestTree getQuestTree(HotelsTree hotelTree) { QuestTree tree = new QuestTree(); tree.Root = new QuestNode("START"); QuestNode node; QuestLink link; for (int i = 0; i < hotelTree.Root.Children.Count; i++) { node = new QuestNode("C" + i); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Страна"; link.Function = "="; link.Link = hotelTree.Root.Children[i].NodeName; link.Node = node; tree.Root.Links.Add(link); } QuestNode node_all_c = new QuestNode("ALL"); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Страна"; link.Function = "="; link.Link = "все"; link.Node = node_all_c; tree.Root.Links.Add(link); for (int i = 0; i < hotelTree.Root.Children.Count; i++) { QuestNode cn = tree.Root.Links[i].Node; QuestNode node_all = new QuestNode("ALL_" + i); for (int j = 0; j < hotelTree.Root.Children[i].Children.Count; j++) { node = new QuestNode("R" + i + "_" + j); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Регион"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].NodeName; link.Node = node; cn.Links.Add(link); Region region = Region.GetRegion(hotelTree.Root.Children[i].NodeName, hotelTree.Root.Children[i].Children[j].NodeName); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Климат"; link.Function = "="; link.Link = II.CurentII.Climate[region]; link.Node = node; node_all_c.Links.Add(link); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Климат"; link.Function = "="; link.Link = II.CurentII.Climate[region]; link.Node = node; node_all.Links.Add(link); } link = new QuestLink(); link.KU = "1.0"; link.Arg = "Регион"; link.Link = "все"; link.Function = "="; link.Node = node_all; cn.Links.Add(link); } for (int i = 0; i < hotelTree.Root.Children.Count; i++) { for (int j = 0; j < hotelTree.Root.Children[i].Children.Count; j++) { Region region = Region.GetRegion(hotelTree.Root.Children[i].NodeName, hotelTree.Root.Children[i].Children[j].NodeName); string climate = II.CurentII.Climate[region]; QuestNode cn = tree.Root.Links[i].Node.Links[j].Node; node = new QuestNode("CZ" + i + "_" + j); link = new QuestLink(); link.KU = II.CurentII.ClimateHealthKU[climate]["плохое"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "плохое"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.ClimateHealthKU[climate]["ниже среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "ниже среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.ClimateHealthKU[climate]["среднее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "среднее"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.ClimateHealthKU[climate]["выше среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "выше среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.ClimateHealthKU[climate]["хорошее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "хорошее"; link.Node = node; cn.Links.Add(link); } } for (int i = 0; i < hotelTree.Root.Children.Count; i++) { for (int j = 0; j < hotelTree.Root.Children[i].Children.Count; j++) { Region region = Region.GetRegion(hotelTree.Root.Children[i].NodeName, hotelTree.Root.Children[i].Children[j].NodeName); string climate = II.CurentII.Climate[region]; QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node; node = new QuestNode("CV" + i + "_" + j); link = new QuestLink(); link.KU = "Климат/Возраст"; link.Arg = "Возраст"; link.Function = "подходит к"; link.Link = climate; link.Node = node; cn.Links.Add(link); } } List<QuestNode> questNodeList = new List<QuestNode>(); for (int i = 0; i < hotelTree.Root.Children.Count; i++) { for (int j = 0; j < hotelTree.Root.Children[i].Children.Count; j++) { for (int k = 0; k < hotelTree.Root.Children[i].Children[j].Children.Count; k++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node; node = new QuestNode("DIS" + i + "_" + j + "_" + k); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Назначение"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].NodeName; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } } } List<QuestNode> questNodeList_2 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); string dis = hotelTree.Root.Children[i].Children[j].Children[k].NodeName; QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node; node = new QuestNode("DIN" + i + "_" + j + "_" + k); link = new QuestLink(); link.KU = II.CurentII.DestinationInsuranceKU[dis][Values.InsuranceYes] + ""; link.Arg = "Страховка"; link.Function = "="; link.Link = Values.InsuranceYes; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.DestinationInsuranceKU[dis][Values.InsuranceNo] + ""; link.Arg = "Страховка"; link.Function = "="; link.Link = Values.InsuranceNo; link.Node = node; cn.Links.Add(link); questNodeList_2.Add(node); } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_2.Count; z++) { string[] sbstr = questNodeList_2[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); string dis = hotelTree.Root.Children[i].Children[j].Children[k].NodeName; QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node; node = new QuestNode("DIZ" + i + "_" + j + "_" + k); link = new QuestLink(); link.KU = II.CurentII.DestinationHealthKU[dis]["плохое"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "плохое"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.DestinationHealthKU[dis]["ниже среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "ниже среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.DestinationHealthKU[dis]["среднее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "среднее"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.DestinationHealthKU[dis]["выше среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "выше среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.DestinationHealthKU[dis]["хорошее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "хорошее"; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } questNodeList_2 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node; node = new QuestNode("DIV" + i + "_" + j + "_" + k); link = new QuestLink(); link.KU = "Назначение/Возраст"; link.Arg = "Возраст"; link.Function = "подходит"; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].NodeName; link.Node = node; cn.Links.Add(link); questNodeList_2.Add(node); } List<QuestNode> questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList_2.Count; z++) { string[] sbstr = questNodeList_2[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); for (int l = 0; l < hotelTree.Root.Children[i].Children[j].Children[k].Children.Count; l++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node; node = new QuestNode("LOC" + i + "_" + j + "_" + k + "_" + l); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Расположение"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].NodeName; link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_1.Count; z++) { string[] sbstr = questNodeList_1[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); for (int m = 0; m < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children.Count; m++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node; node = new QuestNode("LVL" + i + "_" + j + "_" + k + "_" + l + "_" + m); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Уровень"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].NodeName; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } } questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); for (int n = 0; n < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children.Count; n++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node; node = new QuestNode("TPY" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Тип"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].NodeName; link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_1.Count; z++) { string[] sbstr = questNodeList_1[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); for (int o = 0; o < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children.Count; o++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node; node = new QuestNode("MLS" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Питание"; link.Function = "="; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].NodeName; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } } questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node; node = new QuestNode("MLZ" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o); string meals = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].NodeName; link = new QuestLink(); link.KU = II.CurentII.MealHealthKU[meals]["плохое"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "плохое"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.MealHealthKU[meals]["ниже среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "ниже среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.MealHealthKU[meals]["среднее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "среднее"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.MealHealthKU[meals]["выше среднего"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "выше среднего"; link.Node = node; cn.Links.Add(link); link = new QuestLink(); link.KU = II.CurentII.MealHealthKU[meals]["хорошее"] + ""; link.Arg = "Здоровье"; link.Function = "="; link.Link = "хорошее"; link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_1.Count; z++) { string[] sbstr = questNodeList_1[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node; node = new QuestNode("MLV" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o); link = new QuestLink(); link.KU = "Питание/Возраст"; link.Arg = "Возраст"; link.Function = "подходит к"; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].NodeName; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); for (int p = 0; p < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children.Count; p++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node.Links[0].Node; node = new QuestNode("UHT" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o + "_" + p); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Услуги в отеле"; link.Function = "содержат"; link.Link = String.Join(", ", hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].NodeNameList); link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_1.Count; z++) { string[] sbstr = questNodeList_1[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); int p = Int32.Parse(sbstr[7]); for (int q = 0; q < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children.Count; q++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node.Links[0].Node.Links[p].Node; node = new QuestNode("URM" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o + "_" + p + "_" + q); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Услуги в номере"; link.Function = "содержат"; link.Link = String.Join(", ", hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].NodeNameList); link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } } questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); int p = Int32.Parse(sbstr[7]); int q = Int32.Parse(sbstr[8]); for (int r = 0; r < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children.Count; r++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node.Links[0].Node.Links[p].Node.Links[q].Node; node = new QuestNode("UCH" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o + "_" + p + "_" + q + "_" + r); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Услуги для детей"; link.Function = "содержат"; link.Link = String.Join(", ", hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children[r].NodeNameList); link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } } questNodeList = new List<QuestNode>(); for (int z = 0; z < questNodeList_1.Count; z++) { string[] sbstr = questNodeList_1[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); int p = Int32.Parse(sbstr[7]); int q = Int32.Parse(sbstr[8]); int r = Int32.Parse(sbstr[9]); for (int s = 0; s < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children[r].Children.Count; s++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node.Links[0].Node.Links[p].Node.Links[q].Node.Links[r].Node; node = new QuestNode("SRM" + i + "_" + j + "_" + k + "_" + l + "_" + m + "_" + n + "_" + o + "_" + p + "_" + q + "_" + r + "_" + s); link = new QuestLink(); link.KU = "Сумма"; link.Arg = "Сумма"; link.Function = "без услуг приблизительно равна"; link.Link = hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children[r].Children[s].NodeName; link.Node = node; cn.Links.Add(link); questNodeList.Add(node); } } questNodeList_1 = new List<QuestNode>(); for (int z = 0; z < questNodeList.Count; z++) { string[] sbstr = questNodeList[z].Name.Substring(3).Split('_'); int i = Int32.Parse(sbstr[0]); int j = Int32.Parse(sbstr[1]); int k = Int32.Parse(sbstr[2]); int l = Int32.Parse(sbstr[3]); int m = Int32.Parse(sbstr[4]); int n = Int32.Parse(sbstr[5]); int o = Int32.Parse(sbstr[6]); int p = Int32.Parse(sbstr[7]); int q = Int32.Parse(sbstr[8]); int r = Int32.Parse(sbstr[9]); int s = Int32.Parse(sbstr[10]); for (int t = 0; t < hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children[r].Children[s].Children.Count; t++) { QuestNode cn = tree.Root.Links[i].Node.Links[j].Node.Links[0].Node.Links[0].Node.Links[k].Node.Links[0].Node.Links[0].Node.Links[0].Node.Links[l].Node.Links[m].Node.Links[n].Node.Links[o].Node.Links[0].Node.Links[0].Node.Links[p].Node.Links[q].Node.Links[r].Node.Links[s].Node; node = new QuestNode(hotelTree.Root.Children[i].Children[j].Children[k].Children[l].Children[m].Children[n].Children[o].Children[p].Children[q].Children[r].Children[s].Children[t].NodeName); link = new QuestLink(); link.KU = "1.0"; link.Arg = "Отель"; link.Function = "является"; link.Link = ""; link.Node = node; cn.Links.Add(link); questNodeList_1.Add(node); } } return tree; }
private HotelsTree getHotelsTree(HotelQueue[] queues) { HotelsTree tree = new HotelsTree(); tree.Root = new HotelNode("Root_Node"); List<List<HotelQueue>> queueListList = new List<List<HotelQueue>>(); List<HotelNode> NodeList = new List<HotelNode>(); for (int i = 0; i < countrys.Length; i++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int j = 0; j < queues.Length; j++) { if (queues[j].Nodes[0][0].Equals(countrys[i].Name)) { queueList.Add(queues[j]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(countrys[i].Name); tree.Root.Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } List<List<HotelQueue>> queueListList_1 = new List<List<HotelQueue>>(); List<HotelNode> NodeList_1 = new List<HotelNode>(); for (int i = 0; i < NodeList.Count; i++) { for (int j = 0; j < regions.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList[i].Count; k++) { if (queueListList[i][k].Nodes[1][0].Equals(regions[j].Name)) { queueList.Add(queueListList[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(regions[j].Name); NodeList[i].Children.Add(Node); NodeList_1.Add(Node); queueListList_1.Add(queueList); } } } queueListList = new List<List<HotelQueue>>(); NodeList = new List<HotelNode>(); for (int i = 0; i < NodeList_1.Count; i++) { for (int j = 0; j < destinations.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList_1[i].Count; k++) { if (queueListList_1[i][k].Nodes[2][0].Equals(destinations[j])) { queueList.Add(queueListList_1[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(destinations[j]); NodeList_1[i].Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } } queueListList_1 = new List<List<HotelQueue>>(); NodeList_1 = new List<HotelNode>(); for (int i = 0; i < NodeList.Count; i++) { for (int j = 0; j < locations.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList[i].Count; k++) { if (queueListList[i][k].Nodes[3][0].Equals(locations[j])) { queueList.Add(queueListList[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(locations[j]); NodeList[i].Children.Add(Node); NodeList_1.Add(Node); queueListList_1.Add(queueList); } } } queueListList = new List<List<HotelQueue>>(); NodeList = new List<HotelNode>(); for (int i = 0; i < NodeList_1.Count; i++) { for (int j = 0; j < levels.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList_1[i].Count; k++) { if (queueListList_1[i][k].Nodes[4][0].Equals(levels[j])) { queueList.Add(queueListList_1[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(levels[j]); NodeList_1[i].Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } } queueListList_1 = new List<List<HotelQueue>>(); NodeList_1 = new List<HotelNode>(); for (int i = 0; i < NodeList.Count; i++) { for (int j = 0; j < types.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList[i].Count; k++) { if (queueListList[i][k].Nodes[5][0].Equals(types[j])) { queueList.Add(queueListList[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(types[j]); NodeList[i].Children.Add(Node); NodeList_1.Add(Node); queueListList_1.Add(queueList); } } } queueListList = new List<List<HotelQueue>>(); NodeList = new List<HotelNode>(); for (int i = 0; i < NodeList_1.Count; i++) { for (int j = 0; j < mealses.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList_1[i].Count; k++) { if (queueListList_1[i][k].Nodes[6][0].Equals(mealses[j])) { queueList.Add(queueListList_1[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(mealses[j]); NodeList_1[i].Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } } queueListList_1 = new List<List<HotelQueue>>(); NodeList_1 = new List<HotelNode>(); for (int i = 0; i < NodeList.Count; i++) { for (int k = 0; k < queueListList[i].Count; k++) { List<HotelQueue> queueList = new List<HotelQueue>(); int j; for (j = 0; j < hotelServicesSets.Count; j++) { bool flag = queueListList[i][k].Nodes[7].Length == hotelServicesSets[j].Count; for (int l = 0; flag && l < queueListList[i][k].Nodes[7].Length && l < hotelServicesSets[j].Count; l++) { if (!queueListList[i][k].Nodes[7][l].Equals(hotelServicesSets[j][l])) { flag = false; } } if (flag) { queueList.Add(queueListList[i][k]); break; } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(hotelServicesSets[j].ToArray()); NodeList[i].Children.Add(Node); NodeList_1.Add(Node); queueListList_1.Add(queueList); } } } queueListList = new List<List<HotelQueue>>(); NodeList = new List<HotelNode>(); for (int i = 0; i < NodeList_1.Count; i++) { for (int k = 0; k < queueListList_1[i].Count; k++) { List<HotelQueue> queueList = new List<HotelQueue>(); int j; for (j = 0; j < roomServicesSets.Count; j++) { bool flag = queueListList_1[i][k].Nodes[8].Length == roomServicesSets[j].Count; for (int l = 0; flag && l < queueListList_1[i][k].Nodes[8].Length && l < roomServicesSets[j].Count; l++) { if (!queueListList_1[i][k].Nodes[8][l].Equals(roomServicesSets[j][l])) { flag = false; } } if (flag) { queueList.Add(queueListList_1[i][k]); break; } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(roomServicesSets[j].ToArray()); NodeList_1[i].Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } } queueListList_1 = new List<List<HotelQueue>>(); NodeList_1 = new List<HotelNode>(); for (int i = 0; i < NodeList.Count; i++) { for (int k = 0; k < queueListList[i].Count; k++) { List<HotelQueue> queueList = new List<HotelQueue>(); int j; for (j = 0; j < childServicesSets.Count; j++) { bool flag = queueListList[i][k].Nodes[9].Length == childServicesSets[j].Count; for (int l = 0; flag && l < queueListList[i][k].Nodes[9].Length && l < childServicesSets[j].Count; l++) { if (!queueListList[i][k].Nodes[9][l].Equals(childServicesSets[j][l])) { flag = false; } } if (flag) { queueList.Add(queueListList[i][k]); break; } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(childServicesSets[j].ToArray()); NodeList[i].Children.Add(Node); NodeList_1.Add(Node); queueListList_1.Add(queueList); } } } queueListList = new List<List<HotelQueue>>(); NodeList = new List<HotelNode>(); for (int i = 0; i < NodeList_1.Count; i++) { for (int j = 0; j < prices.Length; j++) { List<HotelQueue> queueList = new List<HotelQueue>(); for (int k = 0; k < queueListList_1[i].Count; k++) { if (queueListList_1[i][k].Nodes[10][0].Equals(prices[j])) { queueList.Add(queueListList_1[i][k]); } } if (queueList.Count != 0) { HotelNode Node = new HotelNode(prices[j]); NodeList_1[i].Children.Add(Node); NodeList.Add(Node); queueListList.Add(queueList); } } } for (int i = 0; i < NodeList.Count; i++) { for (int j = 0; j < queueListList[i].Count; j++) { HotelNode Node = new HotelNode(queueListList[i][j].Hotel.name); NodeList[i].Children.Add(Node); } } return tree; }