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();
        }
예제 #2
0
        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);
        }