Esempio n. 1
0
        protected override void OnActivate(IResourceScope resources)
        {
            var repo = resources.Resolve <IEntityStreamService>();

            this.PropertyChanges(nameof(AppFilter))
            .Select(_ =>
            {
                return(repo.GetApps().Select(x => new AppViewModel(x))
                       .Where(x => x.Name != null)
                       .Where(x => x.Name.StrContains(AppFilter))
                       .ObserveOnDispatcher());
            })
            .Subscribe(apps => Apps = apps)
            .ManageUsing(resources);
        }
Esempio n. 2
0
        protected override void OnActivate(IResourceScope res)
        {
            this.PropertyChanges()
            .Where(x =>
                   x == nameof(RangeEnd) ||
                   x == nameof(RangeStart))
            .Throttle(TimeSpan.FromMilliseconds(100))
            .Select(x => new { RangeStart, RangeEnd })
            .Subscribe(dataRange =>
            {
                if (dataRange.RangeStart == null && dataRange.RangeEnd == null)
                {
                    return;
                }

                var stats = res.Resolve <IAppStatsStreamService>();
                var appDurationsStream =
                    stats.GetAppDurations(dataRange.RangeStart ?? DateTime.MinValue,
                                          dataRange.RangeEnd); //.Publish();


                AppDurations = appDurationsStream
                               .Select(x =>
                {
                    var appDur = new AppDurationViewModel(x.App);

                    x.Duration
                    .Subscribe(d =>
                    {
                        if (!d.JustStarted)
                        {
                            appDur.Duration += d.Value;
                        }
                    })
                    .ManageUsing(res);

                    return(appDur);
                });
            }).ManageUsing(res);
        }
Esempio n. 3
0
        public void NavigateToType(Type value)
        {
            if (value == null || !typeof(PageViewModel).IsAssignableFrom(value))
            {
                return;
            }
            if (_existingViewModels.TryGetValue(value, out var viewModel) &&
                _existingViews.TryGetValue(value, out var view))
            {
                ActivePage = view;
                ActivateItem(viewModel);
            }
            else
            {
                var vm = _resolver.Resolve <PageViewModel>(value);
                ActivePage = (PageView)ViewLocator.LocateForModel(vm, null, null);
                ViewModelBinder.Bind(vm, ActivePage, null);
                ActivateItem(vm);

                _existingViewModels.Add(value, vm);
                _existingViews.Add(value, ActivePage);
            }
        }