public WallActualContentViewModel(IEventAggregator eventAggregator, PullersController pullersController,
                                          VkPostViewModelBuilder postBuilder)
            : base(eventAggregator, pullersController)
        {
            _postBuilder = postBuilder;
            _pullersController.Actual.PullInvoked   += onActualPullInvoked;
            _pullersController.Actual.PullCompleted += onActualPullCompleted;

            PostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                       .ObservesProperty(() => IsBusy);

            PostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                           .ObservesProperty(() => IsBusy);
        }
        public HistoryContentViewModel(IEventAggregator eventAggregator, PullersController pullersController, HistoryPostViewModelBuilder postBuilder, Settings settings)
            : base(eventAggregator, pullersController)
        {
            _postBuilder = postBuilder;
            _settings    = settings;

            _pullersController.History.PullInvoked   += onHistoryPullerPullInvoked;
            _pullersController.History.PullCompleted += onHistoryPullerPullCompleted;

            PostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                       .ObservesProperty(() => IsBusy);

            PostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                           .ObservesProperty(() => IsBusy);
        }
示例#3
0
 public ContentViewModel(IEventAggregator eventAggregator, IRegionManager regionManager, PullersController pullersController,
                         SharedWallContext sharedWallContext)
 {
     _eventAggregator   = eventAggregator;
     _regionManager     = regionManager;
     _pullersController = pullersController;
     _sharedWallContext = sharedWallContext;
 }
        public WallContentLeftBlockViewModel(IEventAggregator eventAggregator, IRegionManager regionManager,
                                             PullersController pullersController, BusyObserver busyObserver, Settings settings)
        {
            SetProfilePhoto(AuthBarViewModel.DEFAULT_AVATAR);
            _eventAggregator               = eventAggregator;
            _regionManager                 = regionManager;
            _pullersController             = pullersController;
            _busyObserver                  = busyObserver;
            _settings                      = settings;
            _busyObserver.PropertyChanged += (sender, args) => {
                ContentIsBusy = _busyObserver.ContentIsBusy;
            };

            _pullersController.Postponed.WallHolderChanged += onPostponedWallHolderChanged;
            _pullersController.Postponed.PullCompleted     += onPostponedPullCompleted;
            _pullersController.History.PullCompleted       += onHistoryPullCompleted;

            ShowActualWallCommand =
                new DelegateCommand(
                    () => {
                var parameters = new NavigationParameters {
                    { "filter", "howdy" }
                };
                _regionManager.RequestNavigate(RegionNames.ContentMainRegion, ViewNames.WallActualContent,
                                               parameters);
            }, () => !ContentIsBusy)
                .ObservesProperty(() => ContentIsBusy);

            ShowPostponeWallCommand =
                new DelegateCommand(
                    () => {
                _regionManager.RequestNavigate(RegionNames.ContentMainRegion,
                                               $"{ViewNames.WallPostponeContent}?filter=sayhello");
            }, () => !ContentIsBusy)
                .ObservesProperty(() => ContentIsBusy);

            ShowHistoryCommand =
                new DelegateCommand(
                    () => {
                _regionManager.RequestNavigate(RegionNames.ContentMainRegion,
                                               $"{ViewNames.HistoryContent}?filter=sayhello", result => {
                    recountLastSeen();
                });
            }, () => !ContentIsBusy)
                .ObservesProperty(() => ContentIsBusy);


            ExpandAllCommand = new DelegateCommand(() => {
                _eventAggregator.GetEvent <ContentEvents.LeftBlockExpandAllRequest>().Publish();
            });
            CollapseAllCommand = new DelegateCommand(() => {
                _eventAggregator.GetEvent <ContentEvents.LeftBlockCollapseAllRequest>().Publish();
            });
        }
示例#5
0
        public WallContentViewModel(IEventAggregator eventAggregator, PullersController pullersController)
        {
            _eventAggregator   = eventAggregator;
            _pullersController = pullersController;
            CurrentPostFilter  = new CompositePostFilter();
            UnfilteredItems    = new List <PostViewModelBase>();
            FilteredItems      = new RangeObservableCollection <PostViewModelBase>();

            FilterPostsIsChecked   = true;
            FilterRepostsIsChecked = true;

            _eventAggregator.GetEvent <ContentEvents.LeftBlockExpandAllRequest>().Subscribe(expandAllItems);
            _eventAggregator.GetEvent <ContentEvents.LeftBlockCollapseAllRequest>().Subscribe(collapseAllItems);

            IsActiveChanged += onIsActiveChanged;
        }
        public WallPostponeContentViewModel(IEventAggregator eventAggregator, PullersController pullersController, VkPostViewModelBuilder postBuilder)
            : base(eventAggregator, pullersController)
        {
            _postBuilder = postBuilder;

            FilterMissingIsChecked = true;

            _pullersController.Postponed.PullInvoked   += onPostponedPullInvoked;
            _pullersController.Postponed.PullCompleted += onPostponedPullCompleted;
            //_pullersController.Postponed.UploadRequested += onVkPullerUploadRequest;

            PostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                       .ObservesProperty(() => IsBusy);

            PostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                         .ObservesProperty(() => IsBusy);

            RepostFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                           .ObservesProperty(() => IsBusy);

            MissingFilterCheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                          .ObservesProperty(() => IsBusy);

            MissingFilterUncheckedCommand = new DelegateCommand(() => {
                updateFilter();
                filterOut(UnfilteredItems);
            }, () => !IsBusy)
                                            .ObservesProperty(() => IsBusy);
        }
示例#7
0
        public UploaderViewModel(IEventAggregator eventAggregator, VkUploader uploader, UploadSettings uploadSettings,
                                 VkApiProvider vkApi, PullersController pullersController)
        {
            _eventAggregator   = eventAggregator;
            _uploader          = uploader;
            _uploadSettings    = uploadSettings;
            _vkApi             = vkApi;
            _pullersController = pullersController;
            MissingDates       = new List <int>();

            _pullersController.Postponed.PullInvoked       += onPostponedPullInvoked;
            _pullersController.Postponed.PullCompleted     += onPostponedPullCompleted;
            _pullersController.Postponed.WallHolderChanged += onPostponedWallHolderChanged;

            _shrinkAfterPublish = _uploadSettings.CloseUploadWindowAfterPublish;
            _signedPost         = _uploadSettings.SignedPosting;
            _postFromGroup      = _uploadSettings.PostFromGroup;

            Attachments = new ObservableCollection <AttachmentItem>();

            _cts = new CancellationTokenSource();

            CancelCommand = new DelegateCommand(() => {
                _cts.Cancel();
            }, () => IsShowing)
                            .ObservesProperty(() => IsShowing);

            ShowHideCommand = new DelegateCommand(() => {
                IsShowing = !IsShowing;
            });

            PublishCommand = DelegateCommand.FromAsyncHandler(publishExecute,
                                                              () => IsEnabled && IsShowing && !IsBusy && (!string.IsNullOrWhiteSpace(Message) || Attachments.Any()))
                             .ObservesProperty(() => IsShowing)
                             .ObservesProperty(() => IsBusy)
                             .ObservesProperty(() => Message)
                             .ObservesProperty(() => Attachments)
                             .ObservesProperty(() => IsEnabled);

            BrowseCommand = DelegateCommand.FromAsyncHandler(browseExecute, () => IsShowing)
                            .ObservesProperty(() => IsShowing);

            MovePreviousCommand = new DelegateCommand(moveToPreviousMissing);
            MoveNextCommand     = new DelegateCommand(moveToNextMissing);

            //_eventAggregator.GetEvent<MainBottomEvents.Refresh>().Subscribe(async () => {
            //   if (IsBusy || !IsEnabled) return;
            //   IsBusy = true;
            //   ProgressString = "Pull...";
            //   try {
            //      await _wallContainer.PullWithScheduleHightlightAsync(new MissingPostFilter(), new Schedule());
            //   }
            //   finally {
            //      IsBusy = false;
            //      ProgressString = "";
            //   }
            //});

            _eventAggregator.GetEvent <UploaderEvents.SetVisibility>().Subscribe(onSetVisibility);
            _eventAggregator.GetEvent <UploaderEvents.Configure>().Subscribe(onConfigure);
        }