public BooksViewModel( IBooksService booksService, ILaunchProtocolService launchProtocolService, IPackageNameService packageNameService, IUpdateTileService updateTileService, IAppServiceClientService appServiceClientService, IRunOnUIThreadService runOnUIThreadService) { _booksService = booksService ?? throw new ArgumentNullException(nameof(booksService)); _launchProtocolService = launchProtocolService ?? throw new ArgumentNullException(nameof(launchProtocolService)); _updateTileService = updateTileService ?? throw new ArgumentNullException(nameof(updateTileService)); _appServiceClientService = appServiceClientService ?? throw new ArgumentNullException(nameof(appServiceClientService)); _runOnUIThreadService = runOnUIThreadService ?? throw new ArgumentNullException(nameof(runOnUIThreadService)); Package = packageNameService?.GetPackageName() ?? throw new ArgumentNullException(nameof(packageNameService)); _appServiceClientService.MessageReceived += (sender, e) => { // app service event is coming on a different thread, switch thread _runOnUIThreadService.RunOnUIThreadAsync(() => Messages.Add(e)); }; LaunchUWPCommand = new DelegateCommand(OnLaunchUWP); UpdateTileCommand = new DelegateCommand(OnUpdateTile); AppServiceCommand = new DelegateCommand(OnAppService); }
public BooksViewModel(IBooksService booksService, ILaunchProtocolService launchProtocolService, IPackageNameService packageNameService, IUpdateTileService updateTileService, IAppServiceClientService appServiceClientService) { _booksService = booksService ?? throw new ArgumentNullException(nameof(booksService)); _launchProtocolService = launchProtocolService ?? throw new ArgumentNullException(nameof(launchProtocolService)); _updateTileService = updateTileService ?? throw new ArgumentNullException(nameof(updateTileService)); _appServiceClientService = appServiceClientService ?? throw new ArgumentNullException(nameof(appServiceClientService)); _package = packageNameService?.GetPackageName() ?? throw new ArgumentNullException(nameof(packageNameService)); LaunchUWPCommand = new DelegateCommand(OnLaunchUWP); UpdateTileCommand = new DelegateCommand(OnUpdateTile); AppServiceCommand = new DelegateCommand(OnAppService); }