async void GetStopByUri(string Uri) { try { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://m.sofiatraffic.bg/schedules/"); var response = await client.GetAsync(Uri); var responseText = await response.Content.ReadAsStringAsync(); StringBuilder result = new StringBuilder(); ObservableCollection<ResultModel> resultList = new ObservableCollection<ResultModel>(); string stop = responseText.Substring(responseText.IndexOf("Спирка (код):") + 20, responseText.IndexOf("Направлениe:") - responseText.IndexOf("Спирка (код):") - 35); result.Append("Спирка (код): "); result.Append(stop); result.Append("\n"); string direction = responseText.Substring(responseText.IndexOf("Направлениe:") + 27, responseText.IndexOf("Информация") - responseText.IndexOf("Направлениe:") - 73); result.Append("Направлениe:"); result.Append(direction); result.Append("\n"); string time = responseText.Substring(responseText.IndexOf("Информация") + 15, 16); result.Append("Информация към "); result.Append(time); string firstBusNumber = responseText.Substring(responseText.IndexOf("page_title") + 25, 4); while (true) { if (firstBusNumber[0] == ' ' || firstBusNumber[0] == 'у' || firstBusNumber[0] == 'с') { firstBusNumber = firstBusNumber.Remove(0, 1); } else break; } while (true) { if (firstBusNumber[firstBusNumber.Length - 1] == '<' || firstBusNumber[firstBusNumber.Length - 1] == '/' || firstBusNumber[firstBusNumber.Length - 1] == 'b') { firstBusNumber = firstBusNumber.Remove(firstBusNumber.Length - 1, 1); } else break; } string firstBus = responseText.Substring(responseText.IndexOf("пристигане") + 24, 17); if(firstBus[0]=='<') firstBus="Няма информация"; resultList.Add(new ResultModel { Time = firstBus, Number = firstBusNumber }); List<char> numbers = new List<char>{'0','1','2','3','4','5','6','7','8','9'}; if (responseText.IndexOf("Автобуси") != -1) { int start = responseText.IndexOf("arr_info_1"); while (start != -1) { string bus = responseText.Substring(start + 90, 3); if (bus[2] == '<' || bus[2] == '/') bus = bus.Remove(2, 1); if (bus[1] == '<') bus = bus.Remove(1, 1); string busTime = responseText.Substring(start + 115, 20); while (!numbers.Contains(busTime[busTime.Length - 1])) { busTime= busTime.Remove(busTime.Length - 1, 1); } while (!numbers.Contains(busTime[0])) { busTime = busTime.Remove(0, 1); } resultList.Add(new ResultModel { Number = bus, Time = busTime }); start = responseText.IndexOf("arr_info_1", start + 1); } } if (responseText.IndexOf("Тролейбуси") != -1) { int start = responseText.IndexOf("arr_info_2"); while (start != -1) { string bus = responseText.Substring(start + 90, 3); if (bus[2] == '<' || bus[2] == '/') bus = bus.Remove(2, 1); if (bus[1] == '<') bus = bus.Remove(1, 1); while (true) { if (bus[bus.Length - 1] == '<' || bus[bus.Length - 1] == '/') bus = bus.Remove(bus.Length - 1, 1); else break; } string busTime = responseText.Substring(start + 115, 20); while (!numbers.Contains(busTime[busTime.Length - 1])) { busTime = busTime.Remove(busTime.Length - 1, 1); } while (!numbers.Contains(busTime[0])) { busTime = busTime.Remove(0, 1); } resultList.Add(new ResultModel { Number = bus, Time = busTime }); start = responseText.IndexOf("arr_info_2", start + 1); } } if (responseText.IndexOf("Трамваи") != -1) { int start = responseText.IndexOf("arr_info_3"); while (start != -1) { string bus = responseText.Substring(start + 90, 3); while (true) { if (bus[bus.Length - 1] == '<' || bus[bus.Length - 1] == '/') bus = bus.Remove(bus.Length - 1, 1); else break; } string busTime = responseText.Substring(start + 115, 20); while (!numbers.Contains(busTime[busTime.Length - 1])) { busTime = busTime.Remove(busTime.Length - 1, 1); } while (!numbers.Contains(busTime[0])) { busTime = busTime.Remove(0, 1); } resultList.Add(new ResultModel { Number = bus, Time = busTime }); start = responseText.IndexOf("arr_info_3", start + 1); } } Posts.Text = result.ToString(); ResultsListBox.ItemsSource = resultList; } catch (Exception) { Posts.Text = "Няма намерена информация"; ResultsListBox.ItemsSource = null; } }
private void OnBusNumbersComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e) { if (BusNumbers.SelectedItem != null) { bus = BusNumbers.SelectedItem as BusModel; Direction.ItemsSource = bus.Directions; Stop.ItemsSource = null; } }