public void SetUp() { _recordIdGenerator = Substitute.For <IRecordIdGenerator>(); _fileIdGenerator = Substitute.For <IFileIdGenerator>(); _recordIdGenerator.GetRecordId().Returns(_uniqueId); _safe = Substitute.For <ISafe>(); _addOperationViewModel = new AddOperationViewModel(() => { _isDiscardActionPerformed = true; }, (x) => { _idAtSaveAction = x; }, _recordIdGenerator, _fileIdGenerator, _safe); _saveCommandObserver = _addOperationViewModel.SaveCommand.GetDelegateCommandObserver(); }
public AddOperationViewModel(Action discardAction, Action <string> saveAction, IRecordIdGenerator recordIdGenerator, IFileIdGenerator fileIdGenerator, ISafe safe) { Record = new RecordViewModel(CreateEmptyRecord(recordIdGenerator.GetRecordId()), safe, fileIdGenerator); Record.PropertyChanged += (sender, args) => { CanExecuteSaveCommand = !string.IsNullOrWhiteSpace(Record.Name); }; DiscardCommand = new DelegateCommand (() => { safe.ReorganizeFiles(Record.Id); discardAction.Invoke(); } ); SaveCommand = new DelegateCommand(() => { var record = Record.GetRecord(); safe.UpsertRecord(record); safe.ReorganizeFiles(Record.Id); saveAction.Invoke(Record.Id); }, () => CanExecuteSaveCommand); }