public RouteTime GetArrivalTime(AllRoutes allRoutes, Route route, bool searchOnDirectRoute, string stationOfDeparture) { var url = $"http://yartr.ru/config.php?vt={GetTransportType(route)}&nmar={route.RouteNumber}"; var doc = _webget.Load(url); var tableNodes = doc.DocumentNode.SelectNodes("//a").ToList(); var reverseRouteTableStart = allRoutes[route].DirectRoute.Count; tableNodes.RemoveAll(x => WebUtility.HtmlDecode(x.InnerText) == "назад"); if (tableNodes.Count > 0) { if (searchOnDirectRoute) { tableNodes.RemoveRange(reverseRouteTableStart, allRoutes[route].ReverseRoute.Count); return(ParseArrivalTime(route, stationOfDeparture, url, doc, ref tableNodes)); } else { tableNodes.RemoveRange(0, allRoutes[route].DirectRoute.Count); return(ParseArrivalTime(route, stationOfDeparture, url, doc, ref tableNodes)); } } else { return(null); } }
public Searcher() { _htmlWorker = new HtmlWorker(); var formatter = new BinaryFormatter(); using (var fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + @"data\allroutes.dat", FileMode.Open, FileAccess.Read)) { _allRoutes = (AllRoutes)formatter.Deserialize(fs); } using (var fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + @"data\allstations.dat", FileMode.Open, FileAccess.Read)) { _allStations = (AllStations)formatter.Deserialize(fs); _stations = new List <string>(); for (int i = 0; i < _allStations.Count; i++) { _stations.Add(_allStations.GetStation(i).StationName); } _stations.Sort(); } using (var fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + @"data\routematrix.dat", FileMode.Open, FileAccess.Read)) { _routeMatrix = (RouteMatrix)formatter.Deserialize(fs); } }
public Searcher(AllRoutes allRoutes, AllStations allStations, RouteMatrix routeMatrix) { _allRoutes = allRoutes; _allStations = allStations; _routeMatrix = routeMatrix; _htmlWorker = new HtmlWorker(); }
public static void DownloadDataBase(Stream AllRoutesStream, Stream AllStationsStream, Stream RouteMatrixStream) { if (_allStations == null) { var formatter = new BinaryFormatter(); Thread potok1 = new Thread(delegate() { _allRoutes = (AllRoutes)formatter.Deserialize(AllRoutesStream); }); potok1.Start(); Thread potok2 = new Thread(delegate() { _allStations = (AllStations)formatter.Deserialize(AllStationsStream); }); potok2.Start(); Thread potok3 = new Thread(delegate() { _routeMatrix = (RouteMatrix)formatter.Deserialize(RouteMatrixStream); }); potok3.Start(); var backingFile = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), "favorites.dat"); if (backingFile == null || !File.Exists(backingFile)) { return; } using (var reader = new FileStream(backingFile, FileMode.OpenOrCreate)) { _favoriteRoutes = new FavoriteRoutes(); _favoriteRoutes = (FavoriteRoutes)formatter.Deserialize(reader); } while (potok1.IsAlive || potok2.IsAlive || potok3.IsAlive) { continue; } } }
public Form1() { InitializeComponent(); var formatter = new BinaryFormatter(); _allRoutes = new AllRoutes(); _allStations = new AllStations(); _routeMatrix = new RouteMatrix(); }
private void FillRouteSource() { if (CurStation.Name == AllStations.First().Name) { ComboBoxRoutes.ItemsSource = AllRoutes.Concat(Db.Routes.Items); } else { StationSelect(); } }
private void FillStationSource() { if (CurRoute.Name == AllRoutes.First().Name) { ComboBoxStations.ItemsSource = AllStations.Concat(Db.Stations.Items); } else { ComboBoxStations.ItemsSource = AllStations.Concat(Db.Stations.Items.Where( s => CurRoute.Stations.FirstOrDefault(st => st.StationId == s.Id) != null)); } }
private void ButtonFavorites_Click(object sender, RoutedEventArgs e) { FavoritesWindow window = new FavoritesWindow(this) { Owner = this }; if (window.ShowDialog() == true) { CurStation = Db.Stations.Items.FirstOrDefault(s => s.Id == window.CurStation.Id); CurRoute = AllRoutes.First(); ComboBoxRoutes.SelectedItem = AllRoutes.First(); ComboBoxStations.SelectedItem = CurStation; StationSelect(); } }
public MainWindow() { InitializeComponent(); SetSelectItems(); if (MessageBox.Show("Do you want to load from database?", "Loading priority", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { Db = Factory.Instance.GetDatabaseStorage(); } else { Db = Factory.Instance.GetFileStorage(false); } CurRoute = AllRoutes.First(); CurStation = AllStations.First(); FillStationSource(); FillRouteSource(); }
public IRouteBuilder <T> SubRoute(string template) { AllRoutes.Add(this); return(new RouteBuilder <T>($"{Template}/{template.TrimStart('/')}", App, AllRoutes, Set)); }
public IRouteBuilder <T> Route(string template, IEnumerable <T> set) { AllRoutes.Add(this); return(new RouteBuilder <T>(template, App, AllRoutes, set)); }
public IRouteBuilder SubRoute(string template) { AllRoutes.Add(this); return(new RouteBuilder($"{Template}/{template.TrimStart('/')}", App, AllRoutes, BeforeEachActions)); }
public virtual IRouteBuilder Route(string template) { AllRoutes.Add(this); return(new RouteBuilder(template, App, AllRoutes)); }
private void StationSelect() { ComboBoxRoutes.ItemsSource = AllRoutes.Concat(Db.Routes.Items.Where(r => r.Stations.FirstOrDefault(s => s.StationId == CurStation.Id) != null)); }