public VehicleTypeService(INetworkRoamingService networkRoamingService, ICacheService cacheService) { _networkRoamingService = networkRoamingService; _cacheService = cacheService; Observe(networkRoamingService.GetAndObserveMarketSettings(), marketSettings => MarketChanged(marketSettings)); }
public OrderReviewViewModel ( IOrderWorkflowService orderWorkflowService, IPaymentService paymentService, IAccountService accountService, IVehicleTypeService vehicleTypeService, INetworkRoamingService networkRoamingService ) { _vehicleTypeService = vehicleTypeService; _orderWorkflowService = orderWorkflowService; _accountService = accountService; _paymentService = paymentService; _networkRoamingService = networkRoamingService; Observe(_orderWorkflowService.GetAndObserveBookingSettings(), settings => SettingsUpdated(settings)); Observe(_orderWorkflowService.GetAndObservePickupAddress(), address => Address = address); Observe(_orderWorkflowService.GetAndObservePickupDate(), DateUpdated); //We are throttling to prevent cases where we can cause the app to become unresponsive after typing fast. Observe(_orderWorkflowService.GetAndObserveNoteToDriver().Throttle(TimeSpan.FromMilliseconds(500)), note => Note = note); Observe(_orderWorkflowService.GetAndObserveTipIncentive().Throttle(TimeSpan.FromMilliseconds(500)), tipIncentive => DriverBonus = tipIncentive); Observe(_orderWorkflowService.GetAndObservePromoCode(), code => PromoCode = code); Observe(_networkRoamingService.GetAndObserveMarketSettings(), MarketChanged); _driverBonus = 5; GetIsCmtRideLinq().FireAndForget(); }
private async Task <Tariff> GetMarketTariffIfPossible() { var marketSettings = await _networkRoamingService.GetAndObserveMarketSettings().Take(1); return(marketSettings.IsLocalMarket || !marketSettings.OverrideEnableAppFareEstimates ? null : marketSettings.MarketTariff); }
public IObservable <bool> GetAndObserveIsUsingGeo() { return(_networkRoamingService.GetAndObserveMarketSettings() .Select(marketSettings => !marketSettings.IsLocalMarket ? _appSettings.Data.ExternalAvailableVehiclesMode == ExternalAvailableVehiclesModes.Geo : _appSettings.Data.LocalAvailableVehiclesMode == LocalAvailableVehiclesModes.Geo )); }
private async Task HandleChargeTypeSelectionAccess() { var marketSettings = await _networkRoamingService.GetAndObserveMarketSettings().Take(1).ToTask(); var isLocalMarket = marketSettings.IsLocalMarket; // We ignore the DisableChargeTypeWhenCardOnFile when on external market because the override in marketSetting will decide if we can change the charge type. if (!isLocalMarket) { IsChargeTypesEnabled = Payments.Length > 1; return; } // If the setting DisableChargeTypeWhenCardOnFile is true, prevent changing the chargetype to something else then credit card. var isChargeTypeLocked = _accountService.CurrentAccount.DefaultCreditCard != null && Settings.DisableChargeTypeWhenCardOnFile; IsChargeTypesEnabled = !isChargeTypeLocked && Payments.Length > 1; }
private async Task VehicleTypesChanged(IList <VehicleType> vehicleTypes) { var isLocalMarket = await _networkRoamingService.GetAndObserveMarketSettings() .Select(marketSettings => marketSettings.IsLocalMarket) .Take(1); if (isLocalMarket && vehicleTypes.None()) { // in local market but no vehicle types, create a fake // vehicle type with the default value of reference data await SetDefaultVehicleType(); } else { VehicleTypes = vehicleTypes; } RaisePropertyChanged(() => ShowVehicleSelection); }
public OrderWorkflowService(ILocationService locationService, IAccountService accountService, IGeolocService geolocService, IAppSettings configurationManager, ILocalization localize, IBookingService bookingService, ICacheService cacheService, IAccountPaymentService accountPaymentService, INetworkRoamingService networkRoamingService, IPaymentService paymentService, ILogger logger, IPOIProvider poiProvider, IVehicleTypeService vehicleTypeService, IDeviceCollectorService deviceCollectorService) { _cacheService = cacheService; _appSettings = configurationManager; _geolocService = geolocService; _accountService = accountService; _vehicleTypeService = vehicleTypeService; _locationService = locationService; _deviceCollectorService = deviceCollectorService; _bookingSettingsSubject = new BehaviorSubject <BookingSettings>(accountService.CurrentAccount.Settings); _vehicleTypeSubject = new BehaviorSubject <int?>( _appSettings.Data.VehicleTypeSelectionEnabled ? accountService.CurrentAccount.Settings.VehicleTypeId : null); _localize = localize; _bookingService = bookingService; _accountPaymentService = accountPaymentService; _networkRoamingService = networkRoamingService; _paymentService = paymentService; _logger = logger; _poiProvider = poiProvider; _estimatedFareDisplaySubject = new BehaviorSubject <string>(_localize[_appSettings.Data.DestinationIsRequired ? "NoFareTextIfDestinationIsRequired" : "NoFareText"]); Observe(_networkRoamingService.GetAndObserveMarketSettings(), marketSettings => MarketChanged(marketSettings).FireAndForget()); Observe(_vehicleTypeService.GetAndObserveVehiclesList(), vehiclesList => PreselectDefaultVehicleType(vehiclesList)); }
public HomeViewModel(IOrderWorkflowService orderWorkflowService, IMvxWebBrowserTask browserTask, ILocationService locationService, ITutorialService tutorialService, IPushNotificationService pushNotificationService, IVehicleService vehicleService, IAccountService accountService, IPhoneService phoneService, ITermsAndConditionsService termsService, IPaymentService paymentService, IMvxLifetime mvxLifetime, IPromotionService promotionService, IMetricsService metricsService, IBookingService bookingService, INetworkRoamingService networkRoamingService) { _locationService = locationService; _orderWorkflowService = orderWorkflowService; _tutorialService = tutorialService; _pushNotificationService = pushNotificationService; _vehicleService = vehicleService; _termsService = termsService; _mvxLifetime = mvxLifetime; _metricsService = metricsService; _bookingService = bookingService; _accountService = accountService; _paymentService = paymentService; Panel = new PanelMenuViewModel(browserTask, orderWorkflowService, accountService, phoneService, paymentService, promotionService); Map = AddChild <MapViewModel>(); OrderOptions = AddChild <OrderOptionsViewModel>(); OrderReview = AddChild <OrderReviewViewModel>(); OrderEdit = AddChild <OrderEditViewModel>(); OrderAirport = AddChild <OrderAirportViewModel>(); BottomBar = AddChild <BottomBarViewModel>(); AddressPicker = AddChild <AddressPickerViewModel>(); BookingStatus = AddChild <BookingStatusViewModel>(); DropOffSelection = AddChild <DropOffSelectionMidTripViewModel>(); Observe(_vehicleService.GetAndObserveAvailableVehiclesWhenVehicleTypeChanges(), ZoomOnNearbyVehiclesIfPossible); Observe(networkRoamingService.GetAndObserveMarketSettings(), MarketChanged); }
public AccountService(IAppSettings appSettings, IFacebookService facebookService, ITwitterService twitterService, ILocalization localize, IConnectivityService connectivityService, INetworkRoamingService networkRoamingService, IPaymentService paymentService) { _localize = localize; _twitterService = twitterService; _facebookService = facebookService; _appSettings = appSettings; _connectivityService = connectivityService; _paymentService = paymentService; if (networkRoamingService != null) { Observe(networkRoamingService.GetAndObserveMarketSettings(), marketSettings => MarketChanged(marketSettings).FireAndForget()); } }
public BottomBarViewModel(IOrderWorkflowService orderWorkflowService, IMvxPhoneCallTask phone, IAccountService accountService, IPaymentService paymentService, INetworkRoamingService networkRoamingService, IBookingService bookingService) { _bookingService = bookingService; _phone = phone; _orderWorkflowService = orderWorkflowService; _accountService = accountService; _paymentService = paymentService; _networkRoamingService = networkRoamingService; if (!Settings.HideDestination) { Observe(_orderWorkflowService.GetAndObserveIsDestinationModeOpened(), isDestinationModeOpened => EstimateSelected = isDestinationModeOpened); } if (Settings.PromotionEnabled) { Observe(ObserveIsPromoCodeApplied(), isPromoCodeApplied => IsPromoCodeActive = isPromoCodeApplied); } RefreshAppBarViewState(HomeViewModelState.Initial); // We ensure that we correctly update IsFutureBookingDisabled. var observeValidationResultAndMarkertSettings = Observable.CombineLatest( _orderWorkflowService.GetAndObserveOrderValidationResult(), _networkRoamingService.GetAndObserveMarketSettings(), (orderValidationResult, marketSettings) => new { OrderValidationResult = orderValidationResult, MarketSettings = marketSettings }); Observe(observeValidationResultAndMarkertSettings, mergedResult => HandleOrderValidatedtAndMarketSettingsChanged(mergedResult.OrderValidationResult, mergedResult.MarketSettings)); Observe(_orderWorkflowService.GetAndObserveCanExecuteBookingOperation(), canExecuteBookOperation => CanExecuteBookOperation = canExecuteBookOperation); }