public StoreDetailViewModel( IParameterViewStackService parameterViewStackService, IPopupViewStackService popupViewStackService, IStoreService storeService, IQueueService queueService, IDialogs dialogs) : base(parameterViewStackService) { _popupViewStackService = popupViewStackService; _storeService = storeService; _queueService = queueService; _dialogs = dialogs; var getStore = ReactiveCommand.CreateFromObservable <Guid, Unit>(ExecuteGetStore); this.WhenAnyValue(x => x.StoreId) .Where(x => x != Guid.Empty) .DistinctUntilChanged() .InvokeCommand(getStore) .DisposeWith(Subscriptions); InitializeData = ReactiveCommand.CreateFromObservable <Guid, Unit>(ExecuteInitializeData); Add = ReactiveCommand.CreateFromObservable(ExecuteAdd); }
/// <summary> /// Initializes a new instance of the <see cref="QueuesViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> /// <param name="queueService">The queue service.</param> public QueuesViewModel(IPopupViewStackService popupViewStackService, IQueueService queueService) : base(popupViewStackService) { _queueService = queueService; _queueService .Queue .Connect() .RefCount() .Transform(x => new QueuedItemViewModel(x)) .AutoRefresh(x => x.CurrentQueueTime) .Sort(SortExpressionComparer <QueuedItemViewModel> .Descending(x => x.CurrentQueueTime)) .ObserveOn(RxApp.MainThreadScheduler) .Bind(out _queue) .DisposeMany() .Subscribe() .DisposeWith(Subscriptions); Observable .Interval(TimeSpan.FromSeconds(5)) .Subscribe(_ => _queueService.GetQueue(Guid.Empty)) .DisposeWith(Subscriptions); InitializeData = ReactiveCommand.CreateFromObservable(ExecuteInitialize); }
/// <summary> /// Initializes a new instance of the <see cref="TabViewModel"/> class. /// </summary> /// <param name="tabTitle">The tab title.</param> /// <param name="tabIcon">The tab icon.</param> /// <param name="stackService">The stack service.</param> /// <param name="pageCreate">The page factory.</param> public TabViewModel(string tabTitle, string tabIcon, IPopupViewStackService stackService, Func <ViewModelBase> pageCreate) : base(stackService) { TabIcon = tabIcon; TabTitle = tabTitle; ViewModel = pageCreate(); }
/// <summary> /// Initializes a new instance of the <see cref="UserViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> /// <param name="settings">The settings.</param> public UserViewModel(IPopupViewStackService popupViewStackService, ISettings settings) : base(popupViewStackService) { settings .WhenPropertyValueChanges(x => x.UserName) .ToProperty(this, nameof(UserName), string.Empty) .DisposeWith(Subscriptions); SignUp = ReactiveCommand.CreateFromObservable(ExecuteSignUp); }
/// <summary> /// Initializes a new instance of the <see cref="MainViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> /// <param name="notificationManager">The notification manager.</param> /// <param name="blobCache">The blob cache.</param> public MainViewModel( IPopupViewStackService popupViewStackService, INotificationManager notificationManager, IBlobCache blobCache) : base(popupViewStackService) { _popupViewStackService = popupViewStackService; _notificationManager = notificationManager; _blobCache = blobCache; }
/// <summary> /// Initializes a new instance of the <see cref="StoreSearchViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> /// <param name="storeService">The store service.</param> /// <param name="notificationManager">The notification manager.</param> public StoreSearchViewModel( IPopupViewStackService popupViewStackService, IStoreService storeService, INotificationManager notificationManager) : base(popupViewStackService) { _popupViewStackService = popupViewStackService; _storeService = storeService; _notificationManager = notificationManager; _filterFunction.DisposeWith(Subscriptions); _storeService .Stores .Connect() .RefCount() .Filter(_filterFunction.AsObservable()) .Transform(x => new StoreCardViewModel(x)) .ObserveOn(RxApp.MainThreadScheduler) .Bind(out _stores) .DisposeMany() .Subscribe() .DisposeWith(Subscriptions); _storeService .Metadata .ObserveOn(RxApp.MainThreadScheduler) .Bind(out _storeNames) .DisposeMany() .Subscribe() .DisposeWith(Subscriptions); var isLoading = this.WhenAnyObservable( x => x.Search.IsExecuting, x => x.InitializeData.IsExecuting, x => x.Details.IsExecuting, x => x.Category.IsExecuting, (search, initialize, details, category) => search || initialize || details || category); isLoading .ToProperty(this, nameof(IsLoading), out _isLoading, deferSubscription: true) .DisposeWith(Subscriptions); var canExecute = isLoading.Select(x => !x).StartWith(true); Search = ReactiveCommand.CreateFromObservable(ExecuteSearch, canExecute); Details = ReactiveCommand.CreateFromObservable <StoreCardViewModel, Unit>(ExecuteDetails); InitializeData = ReactiveCommand.CreateFromObservable(ExecuteInitializeData); Category = ReactiveCommand.CreateFromObservable <string, Unit>(ExecuteCategory, canExecute); }
public DrinkCollectionViewModel() { _viewStackService = Locator.Current.GetService <IPopupViewStackService>(); _coffeeService = Locator.Current.GetService <ICoffeeService>(); CoffeeDetails = ReactiveCommand.CreateFromObservable <DrinkViewModel, Unit>(ExecuteNavigate).DisposeWith(Garbage); _coffeeService .ChangeSet .SubscribeOn(RxApp.TaskpoolScheduler) .Transform(x => new DrinkViewModel(x.Id, x.Name, x.Species, x.Regions, x.Image)) // .Sort(SortExpressionComparer<DrinkViewModel>.Ascending(p => p.Name)) .ObserveOn(RxApp.MainThreadScheduler) .Bind(out _coffeeList) .DisposeMany() .Subscribe() .DisposeWith(Garbage); }
public NavigationMenuViewModel(IDetailNavigation detailNavigation) { _detailNavigation = detailNavigation; Items = new ReadOnlyObservableCollection <NavigationItemViewModel>( new ObservableCollection <NavigationItemViewModel> { new NavigationItemViewModel { Title = "List View", Icon = ListAlt, IViewFor = typeof(ListOptionsViewModel) }, new NavigationItemViewModel { Title = "Collection View", Icon = LayerGroup, IViewFor = typeof(CollectionOptionsViewModel) } }); Navigate = ReactiveCommand.CreateFromObservable <NavigationItemViewModel, Unit>(ExecuteNavigate); }
public CollectionOptionsViewModel() { _viewStackService = Locator.Current.GetService <IPopupViewStackService>(); Navigate = ReactiveCommand.CreateFromObservable <CollectionOptionViewModel, Unit>(ExecuteNavigate); Items = new ObservableCollection <CollectionOptionViewModel> { new CollectionOptionViewModel { Option = CollectionOption.DetailNavigation }, new CollectionOptionViewModel { Option = CollectionOption.Search }, new CollectionOptionViewModel { Option = CollectionOption.InfiniteScroll } }; }
public CoffeeListViewModel(IPopupViewStackService parameterViewStackService, ICoffeeService coffeeService) { _viewStackService = parameterViewStackService; _coffeeService = coffeeService; CoffeeDetails = ReactiveCommand.CreateFromObservable <CoffeeCellViewModel, Unit>(ExecuteNavigate); Refresh = ReactiveCommand.CreateFromTask(ExecuteRefresh); _coffeeService .ChangeSet .Transform(x => new CoffeeCellViewModel(x.Id, x.Name, x.Species, x.Regions, x.Image)) .Sort(SortExpressionComparer <CoffeeCellViewModel> .Ascending(p => p.Name)) .Bind(out _coffeeList) .DisposeMany() .Subscribe() .DisposeWith(Garbage); CoffeeDetails = ReactiveCommand.CreateFromObservable <CoffeeCellViewModel, Unit>(ExecuteNavigate).DisposeWith(Garbage); }
/// <summary> /// Initializes a new instance of the <see cref="SplashViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> /// <param name="appStartup">The app startup.</param> public SplashViewModel(IPopupViewStackService popupViewStackService, IAppStartup appStartup) : base(popupViewStackService) { _appStartup = appStartup; Initialize = ReactiveCommand.CreateFromObservable(ExecuteInitialize); Navigate = ReactiveCommand.CreateFromObservable(ExecuteNavigate); var initializing = this.WhenAnyObservable(x => x.Initialize.IsExecuting) .StartWith(false); initializing .Zip(initializing.Skip(1), (first, second) => first && !second) .Where(x => x) .Select(_ => Unit.Default) .InvokeCommand(Navigate); _appStartup .WhenPropertyValueChanges(x => x.IsCompleted) .DistinctUntilChanged() .ToProperty(this, nameof(IsLoading), out _loading, scheduler: RxApp.MainThreadScheduler) .DisposeWith(Subscriptions); }
/// <summary> /// Initializes a new instance of the <see cref="BottomMenuViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> public BottomMenuViewModel(IPopupViewStackService popupViewStackService) : base(popupViewStackService) => TabViewModels = new List <Func <IPopupViewStackService, TabViewModel> >
/// <summary> /// Initializes a new instance of the <see cref="ViewModelBase"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> protected ViewModelBase(IPopupViewStackService popupViewStackService) => ViewStackService = popupViewStackService;
/// <summary> /// Initializes a new instance of the <see cref="SignUpViewModel"/> class. /// </summary> /// <param name="popupViewStackService">The popup view stack service.</param> public SignUpViewModel(IPopupViewStackService popupViewStackService) : base(popupViewStackService) => Cancel = ReactiveCommand.CreateFromObservable(ExecuteCancel);