public Pattern(IScarletCommandBuilder commandBuilder, IScarletCommandManager commandManager, DirectoriesViewModel directoriesViewModel, string value) : base(commandBuilder) { _directoriesViewModel = directoriesViewModel ?? throw new ArgumentNullException(nameof(directoriesViewModel)); Value = value ?? throw new ArgumentNullException(nameof(value)); UpdatePreviewCommand = commandBuilder .Create(UpdatePreview, CanUpdatePreview) .WithSingleExecution() .Build(); }
protected ViewModelBase(IScarletCommandBuilder commandBuilder) : base((commandBuilder?.Messenger) !) { CommandBuilder = commandBuilder ?? throw new ArgumentNullException(nameof(commandBuilder)); Dispatcher = commandBuilder.Dispatcher ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.Dispatcher)); CommandManager = commandBuilder.CommandManager ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.CommandManager)); Exit = commandBuilder.Exit ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.Exit)); WeakEventManager = commandBuilder.WeakEventManager ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.WeakEventManager)); BusyStack = new ObservableBusyStack((hasItems) => IsBusy = hasItems); }
public static IScarletCommandBuilder GetTestCommandBuilder(IScarletDispatcher dispatcher = null, IScarletCommandManager commandManager = null, IScarletExceptionHandler exceptionHandler = null, IMessenger messenger = null, IExitService exitService = null, IScarletEventManager <INotifyPropertyChanged, PropertyChangedEventArgs> eventManager = null, Func <Action <bool>, IBusyStack> busyStackFactory = null) { return(new ScarletCommandBuilder(dispatcher ?? GetTestDispatcher(), commandManager ?? GetTestCommandManager(), exceptionHandler ?? GetTestExceptionHandler(), messenger ?? GetTestMessenger(), exitService ?? GetTestExitService(), eventManager ?? GetTestEventManager(), busyStackFactory ?? GetTestBusyStackFactory())); }
protected PagedSourceListViewModelBase(IScarletCommandBuilder commandBuilder, SynchronizationContext synchronizationContext, Func <TViewModel, string> selector, IPagedDataProvider <TViewModel> pagedDataProvider) : base(synchronizationContext, selector) { CommandBuilder = commandBuilder ?? throw new ArgumentNullException(nameof(commandBuilder)); Dispatcher = commandBuilder.Dispatcher ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.Dispatcher)); CommandManager = commandBuilder.CommandManager ?? throw new ArgumentNullException(nameof(IScarletCommandBuilder.CommandManager)); _pagedDataProvider = pagedDataProvider ?? throw new ArgumentNullException(nameof(pagedDataProvider)); SelectedItems = new ObservableCollection <TViewModel>(); BusyStack = new ObservableBusyStack((hasItems) => IsBusy = hasItems); PageSize = 50; _loadCommand = commandBuilder .Create(Load, CanLoad) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); _refreshCommand = commandBuilder .Create(Refresh, CanRefresh) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); _unloadCommand = commandBuilder .Create(Unload, CanUnload) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); NextCommand = commandBuilder .Create(Next, CanNext) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); PreviousCommand = commandBuilder .Create(Previous, CanPrevious) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); FirstCommand = commandBuilder .Create(First, CanFirst) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); LastCommand = commandBuilder .Create(Last, CanLast) .WithSingleExecution() .WithBusyNotification(BusyStack) .WithAsyncCancellation() .Build(); }