private void raiseInitializationCompleted(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { if (InitializationCompleted != null) { InitializationCompleted(download, downloadSlotsViewModel); } }
public DownloadViewModel(IDownloadModel downloadModel, IDownloadSlotsViewModel downloadSlotsViewModel, IFileSystemManager fileSystemManager) { if (downloadModel == null) { throw new ArgumentNullException("download"); } if (downloadSlotsViewModel == null) { throw new ArgumentNullException("downloadSlotsViewModel"); } if (fileSystemManager == null) { throw new ArgumentNullException("fileSystemManager"); } this.downloadModel = downloadModel; this.downloadSlotsViewModel = downloadSlotsViewModel; this.fileSystemManager = fileSystemManager; this.downloadSlotsViewModel.DownloadCompleted += downloadSlotsViewModel_DownloadCompleted; this.downloadSlotsViewModel.DownloadProgressChanged += downloadSlotsViewModel_DownloadProgressChanged; this.downloadSlotsViewModel.DownloadFailed += downloadSlotsViewModel_DownloadFailed; }
public void TryInitializeDownloadSlotsViewModelAsync(Download download) { IDownloadSlotsViewModel downloadSlotsViewModel = CreateDownloadSlotsViewModel(download); Task <bool> initializeDownloadingSlotsTask = new Task <bool>(downloadSlotsViewModel.TryInitialize); initializeDownloadingSlotsTask.ContinueWith((faultedTask) => { logger.LogException(faultedTask.Exception); }, TaskContinuationOptions.OnlyOnFaulted); initializeDownloadingSlotsTask.ContinueWith((completedTask) => { if (completedTask.Status != TaskStatus.Faulted && completedTask.Result) { raiseInitializationCompleted(download, downloadSlotsViewModel); } else { NotificationService.Alert(Properties.Resources.DownloadStartFailedMessage, Properties.Resources.DownloadingFailedHeader); } }, TaskScheduler.FromCurrentSynchronizationContext()); initializeDownloadingSlotsTask.Start(); }
private void addDownload(Download download) { IDownloadSlotsViewModel downloadSlotsViewModel = this.downloadSlotsViewModelAsyncFactory.CreateDownloadSlotsViewModel(download); addDownloadViewModel(download, downloadSlotsViewModel); }
public IDownloadViewModel CreateDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { DownloadViewModel downloadViewModel = new DownloadViewModel(download, downloadSlotsViewModel, fileSystemManager); return downloadViewModel; }
public IDownloadViewModel CreateDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { DownloadViewModel downloadViewModel = new DownloadViewModel(download, downloadSlotsViewModel, fileSystemManager); return(downloadViewModel); }
private IDownloadViewModel createDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { IDownloadViewModel downloadViewModel = downloadViewModelFactory.CreateDownloadViewModel(download, downloadSlotsViewModel); items.Add(downloadViewModel); return(downloadViewModel); }
private IDownloadViewModel addDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { IDownloadViewModel downloadViewModel = this.createDownloadViewModel(download, downloadSlotsViewModel); downloadViewModel.OnRemove += () => { this.removeFromDownloadModels(download); this.removeFromDownloadViewModels(downloadViewModel); }; return(downloadViewModel); }
protected override void Establish_context() { base.Establish_context(); download = new Download("some uri"); generatedViewModel = new Mock<IDownloadSlotsViewModel>(); generatedViewModel.Setup(viewModel => viewModel.TryInitialize()).Returns(true); DownloadSlotsViewModelFactory.Setup(factory => factory.CreateDownloadSlotsViewModel(download)). Returns(generatedViewModel.Object); DownloadSlotsViewModelAsyncFactory.InitializationCompleted += (forDownload, viewModel) => { createdIsRaised = true; forDownloadCreated = forDownload; viewModelCreated = viewModel; resetEvent.Set(); }; SynchronizationContext.SetSynchronizationContext(new SynchronizationContext()); }
protected override void Establish_context() { base.Establish_context(); download = new Download("some uri"); generatedViewModel = new Mock <IDownloadSlotsViewModel>(); generatedViewModel.Setup(viewModel => viewModel.TryInitialize()).Returns(true); DownloadSlotsViewModelFactory.Setup(factory => factory.CreateDownloadSlotsViewModel(download)). Returns(generatedViewModel.Object); DownloadSlotsViewModelAsyncFactory.InitializationCompleted += (forDownload, viewModel) => { createdIsRaised = true; forDownloadCreated = forDownload; viewModelCreated = viewModel; resetEvent.Set(); }; SynchronizationContext.SetSynchronizationContext(new SynchronizationContext()); }
private IDownloadViewModel addDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { IDownloadViewModel downloadViewModel = this.createDownloadViewModel(download, downloadSlotsViewModel); downloadViewModel.OnRemove += () => { this.removeFromDownloadModels(download); this.removeFromDownloadViewModels(downloadViewModel); }; return downloadViewModel; }
void downloadSlotsViewModelAsyncFactoryInitializationCompleted(Download download, IDownloadSlotsViewModel initializedViewModel) { downloads.Add(download); var newDownloadViewModel = addDownloadViewModel(download, initializedViewModel); newDownloadViewModel.Start(); }
private IDownloadViewModel createDownloadViewModel(Download download, IDownloadSlotsViewModel downloadSlotsViewModel) { IDownloadViewModel downloadViewModel = downloadViewModelFactory.CreateDownloadViewModel(download, downloadSlotsViewModel); items.Add(downloadViewModel); return downloadViewModel; }
public DownloadViewModel(IDownloadModel downloadModel, IDownloadSlotsViewModel downloadSlotsViewModel, IFileSystemManager fileSystemManager) { if (downloadModel == null) throw new ArgumentNullException("download"); if (downloadSlotsViewModel == null) throw new ArgumentNullException("downloadSlotsViewModel"); if (fileSystemManager == null) throw new ArgumentNullException("fileSystemManager"); this.downloadModel = downloadModel; this.downloadSlotsViewModel = downloadSlotsViewModel; this.fileSystemManager = fileSystemManager; this.downloadSlotsViewModel.DownloadCompleted += downloadSlotsViewModel_DownloadCompleted; this.downloadSlotsViewModel.DownloadProgressChanged += downloadSlotsViewModel_DownloadProgressChanged; this.downloadSlotsViewModel.DownloadFailed += downloadSlotsViewModel_DownloadFailed; }
void downloadSlotsViewModelAsyncFactoryInitializationCompleted(Download download, IDownloadSlotsViewModel initializedViewModel) { downloads.Add(download); var newDownloadViewModel = addDownloadViewModel(download, initializedViewModel); newDownloadViewModel.Start(); }