Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 public Searcher(AllRoutes allRoutes, AllStations allStations, RouteMatrix routeMatrix)
 {
     _allRoutes   = allRoutes;
     _allStations = allStations;
     _routeMatrix = routeMatrix;
     _htmlWorker  = new HtmlWorker();
 }
Esempio n. 4
0
        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;
                }
            }
        }
Esempio n. 5
0
        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));
 }
Esempio n. 12
0
 public IRouteBuilder SubRoute(string template)
 {
     AllRoutes.Add(this);
     return(new RouteBuilder($"{Template}/{template.TrimStart('/')}", App, AllRoutes, BeforeEachActions));
 }
Esempio n. 13
0
 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));
 }