Esempio n. 1
0
        public CakeModelService(
            ICakeApiService cakeApiService,
            IAppUserModelService appUserModelService,
            IPaymentApiService paymentApiService,
            ILogger logger)
        {
            _cakeApiService    = cakeApiService;
            _paymentApiService = paymentApiService;
            _nearbyCakes       = new SourceCache <CakeDto, int>(c => c.Id);
            _cd = new CompositeDisposable();

            //_nearbyCakes
            //    .Connect()
            //    .CacheChangeSet(_cacheKey, logger)
            //    .Subscribe();

            appUserModelService
            .UserObservable
            .ObserveOn(RxApp.TaskpoolScheduler)
            .Where(u => u != null)
            .SelectMany(async u => await cakeApiService.GetNearbyCakes(u.Position))
            .RetryWithBackoff(3)
            .LogException(logger)
            .Subscribe(cakes =>
            {
                _nearbyCakes.Edit(l => l.AddOrUpdate(cakes));
            });

            //Observable.FromAsync(async () => await _nearbyCakes.FromCache(_cacheKey, EqualityComparer<CakeDto>.Default)).Subscribe().DisposeWith(_cd);
        }
Esempio n. 2
0
        public PaymentViewModel(
            PaymentNavigation paymentNavigation,
            IAppUserModelService appUserModelService = null,
            IBakerModelService bakerModelService     = null,
            IPaymentApiService paymentApiService     = null)
        {
            _appUserModelService = appUserModelService ?? Locator.Current.GetService <IAppUserModelService>();
            _bakerModelService   = bakerModelService ?? Locator.Current.GetService <IBakerModelService>();
            _paymentApiService   = paymentApiService ?? Locator.Current.GetService <IPaymentApiService>();
            PayWithVippsCommand  = ReactiveCommand.CreateFromTask(PayWithVipps);
            var canGoToReceiptObservable = this.WhenAnyValue(vm => vm.PaymentSuccessfull)
                                           .Select(ps => ps)
                                           .StartWith(false);

            canGoToReceiptObservable.ToProperty(this, vm => vm.GoNextEnabled, out _goNextEnabled);

            GoNextCommand = ReactiveCommand.CreateFromTask(GoToReceipt, canGoToReceiptObservable);

            Prepare(paymentNavigation);
        }