Ejemplo n.º 1
0
        public HistoryPageViewModel(IShareDataRepository shareDataRepository, INavigationService navigationService, IDataTransferService dataTransferService)
        {
            ShareDataList = new ObservableCollection <HistoryItemViewModel>();

            _sharedItemsSubscription = shareDataRepository.ShareDataObservable.Subscribe(AddHistoryItem);

            GoBackCommand  = new DelegateCommand(navigationService.GoBack);
            ReshareCommand = new DelegateCommand <HistoryItemViewModel>(historyItem => ShareLink(dataTransferService, historyItem));
        }
Ejemplo n.º 2
0
        public void Initialize()
        {
            _windowService              = A.Fake <IWindowService>();
            _dataTransferService        = A.Fake <IDataTransferService>();
            _clipboardService           = A.Fake <IClipboardService>();
            _httpService                = A.Fake <IHttpService>();
            _schedulerProvider          = A.Fake <ISchedulerProvider>();
            _textToSpeechService        = A.Fake <ITextToSpeechService>();
            _applicationSettingsService = new ApplicationSettingsService(new MockApplicationDataContainer());
            _uiSettingsService          = A.Fake <ISettingsService>();
            _shareDataRepository        = A.Fake <IShareDataRepository>();
            _navigationService          = A.Fake <INavigationService>();

            A.CallTo(() => _schedulerProvider.Default).Returns(_testScheduler);
        }
        public DataTransferService(IShareDataRepository shareDataRepository)
        {
            var dataTransferManager   = DataTransferManager.GetForCurrentView();
            var sharingDataObservable = Observable.FromEventPattern <TypedEventHandler <DataTransferManager, DataRequestedEventArgs>, DataTransferManager, DataRequestedEventArgs>(
                h => dataTransferManager.DataRequested += h,
                h => dataTransferManager.DataRequested -= h)
                                        .Select(ev => ev.EventArgs.Request.Data)
                                        .Where(_ => _shareData != null);

            _dataTransferSubscription = sharingDataObservable.Subscribe(ShareTextHandler);



            ShareTargetObservable = Observable.FromEventPattern <TypedEventHandler <DataTransferManager, TargetApplicationChosenEventArgs>, DataTransferManager, TargetApplicationChosenEventArgs>(
                h => dataTransferManager.TargetApplicationChosen += h,
                h => dataTransferManager.TargetApplicationChosen -= h)
                                    .Select(ev => ev.EventArgs.ApplicationName);

            _dataSharedSubscription = sharingDataObservable.Select(shareData => ShareTargetObservable.Select(applicationName => new { ShareData = _shareData, Application = applicationName }))
                                      .Switch()
                                      .Subscribe(sharedData => HandleSharedData(shareDataRepository, sharedData.ShareData, sharedData.Application));
        }
 private static void HandleSharedData(IShareDataRepository repository, ShareData data, string applicationName)
 {
     data.ApplicationName = applicationName;
     repository.Add(data);
 }