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; }
private HotelQueue[] getHotelQueues(Hotel[] hotels) { List<HotelQueue> hotelQueues = new List<HotelQueue>(); for (int i = 0; i < hotels.Length; i++) { HotelQueue queue = new HotelQueue(); queue.Hotel = hotels[i]; queue.Nodes = new string[11][]; queue.Nodes[0] = new string[] { hotels[i].region.Country.Name }; queue.Nodes[1] = new string[] { hotels[i].region.Name }; queue.Nodes[2] = new string[] { hotels[i].destination }; queue.Nodes[3] = new string[] { hotels[i].location }; queue.Nodes[4] = new string[] { hotels[i].level }; queue.Nodes[5] = new string[] { hotels[i].type }; queue.Nodes[6] = new string[] { hotels[i].meals }; queue.Nodes[7] = hotels[i].hotelServices; queue.Nodes[8] = hotels[i].roomServices; queue.Nodes[9] = hotels[i].childServices; queue.Nodes[10] = new string[] { hotels[i].price }; hotelQueues.Add(queue); } return hotelQueues.ToArray(); }