private void SendTripMessage(PageLoadMessage page) { if (page.Page == ApplicationPage.TripDetails) { PathResultsModel.SetSelectedPathOption(PathResultsModel.SelectedPathOption.Letter); } }
protected override void PageLoaded() { base.PageLoaded(); if (base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.ShowTripApplicationBar).Value) { ApplicationBarIsVisibile = true; } else { ApplicationBarIsVisibile = false; } Messenger.Default.Register <FlickMessage>(this, (action) => FlickPathItems(action)); PageTitleMessage.Send(AppResources.HeaderTripDetails); PathResultsModel = SimpleIoc.Default.GetInstance <PathResultsModel>(); PathResultsModel.SelectedRouteStops.Clear(); if (PathResultsModel.SelectedPathOption == null) { PathResultsModel.SetSelectedPathOption("A"); } this.timer.Interval = new TimeSpan(0, 0, 60 - DateTime.Now.Second); this.timer.Start(); tripResultsModel = SimpleIoc.Default.GetInstance <TripResultsModel>(); }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); #if !DEBUG FlurryWP8SDK.Api.LogPageView(); #endif string tripId; if (NavigationContext.QueryString.TryGetValue("tripId", out tripId)) { if (!String.IsNullOrEmpty(tripId)) { IUnitOfWork unitOfWork = SimpleIoc.Default.GetInstance <IUnitOfWork>(); Path pinnedPath = unitOfWork.PathRepository.GetPinned(Guid.Parse(tripId), unitOfWork.PublicTransportOperatorRepository.GetAll()); User user = unitOfWork.UserRepository.GetUser(); List <PathOption> pathOptions = new List <PathOption>(); pathOptions.Add(pinnedPath.PathOption); PathResultsModel results = new PathResultsModel(new Address(pinnedPath.LocationText, pinnedPath.LocationText, pinnedPath.Location), new Address(pinnedPath.DestinationText, pinnedPath.DestinationText, pinnedPath.Destination), pathOptions, SimpleIoc.Default.GetInstance <IBumbleApiService>(), user); SimpleIoc.Default.Unregister <PathResultsModel>(); SimpleIoc.Default.Register <PathResultsModel>(() => { return(results); }); SimpleIoc.Default.Unregister <TripResultsModel>(); SimpleIoc.Default.Register <TripResultsModel>(() => { return(new TripResultsModel()); }); } } NavigationContext.QueryString.Clear(); }
private void NextButton() { PathResultsModel.NextPathOption(); }
private void PreviousButton() { PathResultsModel.PreviousPathOption(); }
private void ContinuePreviousTrip() { if (ContrinuePreviousTripImageOption == "/Images/64/W/TripKarmaWhite.png") { // Check if we must load last trip from the database first. if (!SimpleIoc.Default.ContainsCreated <PathResultsModel>()) { IEnumerable <Path> paths = UnitOfWork.PathRepository.GetAllCached(UnitOfWork.PublicTransportOperatorRepository.GetAll()); List <PathOption> pathOptions = paths.Select(x => x.PathOption).ToList(); Path firstPath = paths.First(); IEnumerable <TransportMode> modes = UnitOfWork.TransportModeRepository.GetAll(); // Attempt to add an uber option. if (modes.Where(x => x.IsEnabled).Select(x => x.ApplicationTransportMode).Contains(ApplicationTransportMode.Taxi) && base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.UseUber).Value && !UnitOfWork.UberTripRepository.ExistsCached()) { double maxDurationInMinutes = (pathOptions.Where(x => !x.IsUber).SelectMany(x => x.Stages).Max(x => x.EndTime) - DateTime.Now).TotalMinutes; pathOptions.Add(new PathOption(pathOptions.Count(), uberService, firstPath.Location, firstPath.Destination, maxDurationInMinutes, user.UberInfo.AccessToken)); } PathResultsModel results = new PathResultsModel(new Address(firstPath.LocationText, firstPath.LocationText, firstPath.Location), new Address(firstPath.DestinationText, firstPath.DestinationText, firstPath.Destination), pathOptions, BumbleApiService, user); if (SimpleIoc.Default.IsRegistered <PathResultsModel>()) { SimpleIoc.Default.Unregister <PathResultsModel>(); } SimpleIoc.Default.Register <PathResultsModel>(() => { return(results); }); if (SimpleIoc.Default.IsRegistered <TripResultsModel>()) { SimpleIoc.Default.Unregister <TripResultsModel>(); } SimpleIoc.Default.Register <TripResultsModel>(() => { return(new TripResultsModel()); }); } if (base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.SkipTripSelection).Value) { this.NavigationService.NavigateTo("/Views/TripDetails.xaml"); } else { this.NavigationService.NavigateTo("/Views/TripSelection.xaml"); } } else { // Check if uber trip isn't already in memory if (!SimpleIoc.Default.ContainsCreated <UberTrip>()) { UberTrip uberTrip = UnitOfWork.UberTripRepository.GetAll().FirstOrDefault(); if (uberTrip != null) { if (SimpleIoc.Default.IsRegistered <UberTrip>()) { SimpleIoc.Default.Unregister <UberTrip>(); } SimpleIoc.Default.Register <UberTrip>(() => { return(uberTrip); }); this.NavigationService.NavigateTo("/Views/UberTripDetails.xaml"); } } else { this.NavigationService.NavigateTo("/Views/UberTripDetails.xaml"); } } }
private void Drumble() { if (!this.LocationSearchBoxModel.IsValid()) { base.ShowPopup(CustomPopupMessageType.Error, AppResources.WhereToLocationErrorPopupText, AppResources.CustomPopupGenericOkMessage, null); } else if (!this.DestinationSearchBoxModel.IsValid()) { base.ShowPopup(CustomPopupMessageType.Error, AppResources.WhereToDestinationErrorPopupText, AppResources.CustomPopupGenericOkMessage, null); } else if (departureTimeCustom != null && departureTimeCustom < DateTime.Now.AddMinutes(-5)) { base.ShowPopup(CustomPopupMessageType.Error, AppResources.WhereToCustomDateErrorPopupText, AppResources.CustomPopupGenericOkMessage, null); } else { IEnumerable <TransportMode> modes = UnitOfWork.TransportModeRepository.GetAll(); if (!modes.Any(x => x.IsEnabled)) { base.ShowPopup(CustomPopupMessageType.Error, AppResources.WhereToNoModesErrorPopupText, AppResources.CustomPopupGenericOkMessage, null); return; } IEnumerable <OperatorSetting> operatorSettings = UnitOfWork.OperatorSettingRepository.GetAll(); if (!operatorSettings.Any(x => x.IsEnabled)) { base.ShowPopup(CustomPopupMessageType.Error, AppResources.WhereToNoModesErrorPopupText, AppResources.CustomPopupGenericOkMessage, null); return; } DrumbleButtonIsEnabled = false; DrumbleCancelButtonVisibility = Visibility.Visible; ShowHeaderLoader(); Action getPath = async() => { try { DateTime createdDate = DateTime.UtcNow; // Try save a recent trip if user allows it. if (base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.StoreRecent).Value) { Recent recentTripLocation = new Recent(this.LocationSearchBoxModel.TripOptions.Location, this.LocationSearchBoxModel.TripOptions.Text, createdDate, createdDate); UnitOfWork.RecentTripRepository.Insert(recentTripLocation); Recent recentTripDestination = new Recent(this.DestinationSearchBoxModel.TripOptions.Location, this.DestinationSearchBoxModel.TripOptions.Text, createdDate, createdDate); UnitOfWork.RecentTripRepository.Insert(recentTripDestination); UnitOfWork.Save(); } int? timeOffSetInMinutes = null; DateTime?seletedDepartureDate = null; if (selectedPredefinedDepartureTime != null) { timeOffSetInMinutes = selectedPredefinedDepartureTime.DepartureTimeInMinutes; } else if (departureTimeCustom != null) { seletedDepartureDate = departureTimeCustom.Value.ToUniversalTime(); } else { timeOffSetInMinutes = 0; } List <string> excludedModes = modes.Where(x => x.IsEnabled == false).Select(x => x.ApplicationTransportMode.ToString()).ToList(); List <string> excludedOperators = operatorSettings.Where(x => x.IsEnabled == false).Select(x => x.OperatorName).ToList(); cancellationTokenSource = new CancellationTokenSource(); IEnumerable <PathOption> pathOptionResults = await BumbleApiService.Path(cancellationTokenSource.Token, UnitOfWork.UserRepository.GetUser(), this.LocationSearchBoxModel.TripOptions.Location, this.DestinationSearchBoxModel.TripOptions.Location, isDeparting, seletedDepartureDate, timeOffSetInMinutes, excludedModes, excludedOperators); List <PathOption> pathOptions = pathOptionResults.ToList(); // Attempt to add an uber option. if (modes.Where(x => x.IsEnabled).Select(x => x.ApplicationTransportMode).Contains(ApplicationTransportMode.Taxi) && base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.UseUber).Value && !UnitOfWork.UberTripRepository.ExistsCached()) { double maxDurationInMinutes = (!pathOptions.Any()) ? 0 : (pathOptions.Where(x => !x.IsUber).SelectMany(x => x.Stages).Max(x => x.EndTime) - DateTime.Now).TotalMinutes; pathOptions.Add(new PathOption(pathOptions.Count(), uberService, LocationSearchBoxModel.TripOptions.Location, DestinationSearchBoxModel.TripOptions.Location, maxDurationInMinutes, (user.UberInfo == null) ? null : user.UberInfo.AccessToken)); } if (!pathOptions.Any()) { base.ShowPopup(CustomPopupMessageType.Information, AppResources.WhereToNoResultsFound, AppResources.CustomPopupGenericOkMessage, null); HideHeaderLoader(); DrumbleButtonIsEnabled = true; DrumbleCancelButtonVisibility = Visibility.Collapsed; return; } DateTime startDate = DateTime.Now; UnitOfWork.PathRepository.RemoveAll(); UnitOfWork.Save(); foreach (PathOption pathOption in pathOptions.Where(x => !x.IsUber)) { if (pathOption.EndTime != null) { UnitOfWork.PathRepository.Insert(new Path(pathOption.TripId, startDate, pathOption.EndTime.Value, LocationSearchBoxModel.TripOptions.Text, DestinationSearchBoxModel.TripOptions.Text, LocationSearchBoxModel.TripOptions.Location, DestinationSearchBoxModel.TripOptions.Location, false, pathOption.JsonSerializedObject, pathOption.Order)); } } UnitOfWork.Save(); PathResultsModel results = new PathResultsModel(this.LocationSearchBoxModel.TripOptions.Address, this.DestinationSearchBoxModel.TripOptions.Address, pathOptions, BumbleApiService, user); SimpleIoc.Default.Unregister <PathResultsModel>(); SimpleIoc.Default.Register <PathResultsModel>(() => { return(results); }); SimpleIoc.Default.Unregister <TripResultsModel>(); SimpleIoc.Default.Register <TripResultsModel>(() => { return(new TripResultsModel()); }); if (base.InMemoryApplicationSettingModel.GetSetting(ApplicationSetting.SkipTripSelection).Value) { this.NavigationService.NavigateTo("/Views/TripDetails.xaml"); } else { this.NavigationService.NavigateTo("/Views/TripSelection.xaml"); } } catch (Exception e) { if (e.Message != "Cancelled") { base.ShowPopup(CustomPopupMessageType.Error, e.Message, AppResources.CustomPopupGenericOkMessage, null); } } HideHeaderLoader(); DrumbleButtonIsEnabled = true; DrumbleCancelButtonVisibility = Visibility.Collapsed; }; DispatcherHelper.CheckBeginInvokeOnUI(getPath); } }