private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { if (!isLoaded) { Constant.Loader(this.resourceLoader.GetString("GlobalLoading"), true); param = JsonConvert.DeserializeObject <StopNameAllSQL>(e.NavigationParameter.ToString()); this.DefaultViewModel["Title"] = param.name; this.DefaultViewModel["Favorite"] = Database.IfAllStopsAreFavorite(Int32.Parse(param.id)) ? Constant.FavoriteStar : Constant.UnFavoriteStar; await Task.Run(() => LoadRoutes(param)); isLoaded = true; Constant.Loader(this.resourceLoader.GetString("GlobalLoadingSuccess"), false); await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { while (true) { await Task.Delay(10000); foreach (var item in Buses) { Buses.Where(d => d.d_id == item.d_id).First().Next_Bus = time.getNextBusTime(item.schedule, item.days); } foreach (var item in Trolls) { Trolls.Where(d => d.d_id == item.d_id).First().Next_Bus = time.getNextBusTime(item.schedule, item.days); } foreach (var item in Tramms) { Tramms.Where(d => d.d_id == item.d_id).First().Next_Bus = time.getNextBusTime(item.schedule, item.days); } } } ); } }
private void ListView_ItemClick(object sender, ItemClickEventArgs e) { JObject obj = JObject.Parse(JsonConvert.SerializeObject(e.ClickedItem)); StopNameAllSQL new_obj = new StopNameAllSQL() { id = obj["id"].ToString(), isBus = obj["isBus"].ToString(), isTramm = obj["isTramm"].ToString(), isTroll = obj["isTroll"].ToString(), name = obj["name"].ToString(), width = screenWidth }; if (!Frame.Navigate(typeof(Views.StopsTransport), JsonConvert.SerializeObject(new_obj as StopNameAllSQL))) { throw new Exception(this.resourceLoader.GetString("NavigationFailedExceptionMessage")); } }
private async Task LoadRoutes(StopNameAllSQL param) { Time time = new Time(); SQLiteConnection connection = new SQLiteConnection(dbPath); Buses = new ObservableCollection <DirectionStopSQL>(); Trolls = new ObservableCollection <DirectionStopSQL>(); Tramms = new ObservableCollection <DirectionStopSQL>(); var items = connection.Query <DirectionStopSQL>( "SELECT s.r_id as r_id, s.n_id as n_id, s.d_id as d_id,s.favorite as favorite,d.name as d_name,sn.name as sn_name, r.number as number, s.schedule as schedule, s.days as days, r.type as type " + "FROM stop AS s " + "LEFT JOIN direction as d ON d_id = d.id " + "LEFT JOIN route as r ON r_id = r.id " + "LEFT JOIN stopname as sn ON n_id = sn.id " + "WHERE sn_name LIKE '%" + param.name + "%' " + "GROUP BY d_name,r_id " + "ORDER BY r_id"); foreach (var item in items) { if (item.type == 0) { Buses.Add(new DirectionStopSQL() { width = param.width, d_name = item.d_name, r_id = item.r_id, number = item.number, type = item.type, d_id = item.d_id, n_id = item.n_id, days = item.days, schedule = item.schedule, next_bus = time.getNextBusTime(item.schedule, item.days), favorite = Int32.Parse(item.favorite) == 1 ? Constant.FavoriteStar : Constant.UnFavoriteStar }); } else if (item.type == 1) { Trolls.Add(new DirectionStopSQL() { width = param.width, d_name = item.d_name, r_id = item.r_id, number = item.number, d_id = item.d_id, type = item.type, n_id = item.n_id, days = item.days, schedule = item.schedule, next_bus = time.getNextBusTime(item.schedule, item.days), favorite = Int32.Parse(item.favorite) == 1 ? Constant.FavoriteStar : Constant.UnFavoriteStar }); } else if (item.type == 2) { Tramms.Add(new DirectionStopSQL() { width = param.width, d_name = item.d_name, r_id = item.r_id, number = item.number, d_id = item.d_id, type = item.type, n_id = item.n_id, days = item.days, schedule = item.schedule, next_bus = time.getNextBusTime(item.schedule, item.days), favorite = Int32.Parse(item.favorite) == 1 ? Constant.FavoriteStar : Constant.UnFavoriteStar }); } } this.DefaultViewModel["Buses"] = Buses.Count != 0 ? Buses : null; this.DefaultViewModel["Trolls"] = Trolls.Count != 0 ? Trolls : null; this.DefaultViewModel["Tramms"] = Tramms.Count != 0 ? Tramms : null; await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { if (Buses.Count == 0) { PivotMain.Items.RemoveAt(PivotMain.Items.IndexOf(PItemBus)); } if (Trolls.Count == 0) { PivotMain.Items.RemoveAt(PivotMain.Items.IndexOf(PItemTroll)); } if (Tramms.Count == 0) { PivotMain.Items.RemoveAt(PivotMain.Items.IndexOf(PItemTramm)); } } ); }