public FoodsViewModel( IMapper mapper, IDiagnosticsFacade diagnosticsFacade, IFoodsApi foodsApi, INavigationService navigationService, IFoodDetailViewModelFactory foodDetailViewModelFactory, IBasketItemsService basketItemsService) { _mapper = mapper; _diagnosticsFacade = diagnosticsFacade; _foodsApi = foodsApi; _navigationService = navigationService; _foodDetailViewModelFactory = foodDetailViewModelFactory; this.WhenAnyValue(x => x.SelectedFood) .Where(x => x != null) .Subscribe(async food => await NavigateToFoodDetail(food)); BasketItemsCount = basketItemsService.ItemsCount; basketItemsService.ItemsCountChange .Select(x => x.ToString()) .Subscribe(x => BasketItemsCount = x); GoToBasket = ReactiveCommand.CreateFromTask( async() => await _navigationService.NavigateAsync(typeof(IBasketViewModel))); }
public BasketsService(DataContext context, IMapper mapper, ILogger <BasketsService> logger, ICustomersService customerService, IBasketItemsService basketItemService) { _context = context; _mapper = mapper; _logger = logger; _customerService = customerService; _basketItemService = basketItemService; }
public FoodDetailViewModel( IFoodViewModel selectedFood, INavigationService navigationService, IBasketItemsService basketItemsService) { SelectedFood = selectedFood; CurrentBasketItem = new BasketItemViewModel(SelectedFood); AddToBasket = ReactiveCommand.Create(() => basketItemsService.Add(CurrentBasketItem)); GoToBasket = ReactiveCommand.CreateFromTask(async() => await navigationService.NavigateAsync(typeof(IBasketViewModel))); BasketItemsCount = basketItemsService.ItemsCount; basketItemsService.ItemsCountChange .Select(x => x.ToString()) .Subscribe(x => BasketItemsCount = x); }
public BasketViewModel( IBasketItemsService basketItemsService, IOrdersApi ordersApi, INavigationService navigationService, IOrderDtoAdapter orderDtoAdapter) { Items = basketItemsService.Items; _totalPrice = basketItemsService.Items.ToObservableChangeSet() .AutoRefresh(x => x.Quantity) .ToCollection() .Select(x => x.Sum(i => i.TotalPrice)) .ToProperty(this, x => x.TotalPrice); CompleteOrder = ReactiveCommand.CreateFromTask(async() => { var orderDto = orderDtoAdapter.GetOrderFromOrderViewModels(Items); basketItemsService.Clear(); await ordersApi.Create(orderDto); await navigationService.NavigateToRoot(); }); }