public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; this.navigationHelper = new NavigationHelper(this); this.navigationHelper.LoadState += navigationHelper_LoadState; this.navigationHelper.SaveState += navigationHelper_SaveState; IEnumerable <Ticket> data = AppDataManager.RetrieveTickets(); tickets = data == null ? new ObservableCollection <Ticket>() : new ObservableCollection <Ticket>(data); IEnumerable <Request> data1 = AppDataManager.RetrieveRequests(); requests = data1 == null ? new ObservableCollection <Request>() : new ObservableCollection <Request>(data1); sugg = new ObservableCollection <City>(); fromBox.DataContext = this; toBox.DataContext = this; trainReqBox.DataContext = trainRequest; }
private static async Task checkRequestsAsyncHelper() { IEnumerable <Request> requests = AppDataManager.RetrieveRequests(); int addedForRequests = 0; try { foreach (Request req in requests) { bool found = false; TrainRequest trainReq = new TrainRequest() { from = req.from, to = req.to, date = req.depDateFrame.since, time = req.depTimeFrame.since, roundTrip = false }; TrainResponse trainResp; try { trainResp = Factory.Instance.getTrainResponse( await Requests.makeRequestAsync(Requests.TRAIN_URL, trainReq.getParameters())); } catch (Exception) { continue; } foreach (Train train in trainResp.Trains) { int available = 0; foreach (CoachType type in train.CoachTypes) { try { CoachResponse coachResp = Factory.Instance.getCoachResponse( await Requests.makeRequestAsync(Requests.COACH_URL, train.getParameters(type, false))); foreach (Coach coach in coachResp.Wrapper.Coaches) { CarriageResponse carResp = Factory.Instance.getCarriageResponse( await Requests.makeRequestAsync(Requests.CARRIAGE_URL, train.getParameters(coach))); available += countAvailavle(req, train, type, coach, carResp.Value.Places); } } catch (Exception) { } } if (!req.available.ContainsKey(train.Number)) { req.available[train.Number] = 0; } if (available > req.available[train.Number] + 1) { Notification.SendToast( "З'явилось " + (available - req.available[train.Number]) + " місць", train.Number + " " + req.from.Name + " - " + req.to.Name + ", " + train.From.Date, DateTimeOffset.Now.AddSeconds(15), "UZTracer.TrainPage?" + JsonConvert.SerializeObject(train)); found = true; } req.available[train.Number] = available; } addedForRequests += found ? 1 : 0; } } catch (Exception) { } finally { Notification.UpdateBadge(addedForRequests); AppDataManager.SaveRequests(requests); } }