public IResult <INoteReturn> AddNote(string notebookKey, ICreateNoteParameters parameters)
        {
            if (notebookKey == null)
            {
                throw new ArgumentNullException("notebookKey");
            }

            var keyResult = KeyParserHelper.ParseResult <INotebookKey>(notebookKey);

            if (!keyResult.Success)
            {
                return(keyResult.ConvertTo <INoteReturn>());
            }
            var key = new NotebookKey(keyResult.ResultingObject);

            var createNoteResult = new CreateNoteCommand(_notebookUnitOfWork).Execute(key, _timeStamper.CurrentTimeStamp, parameters);

            if (!createNoteResult.Success)
            {
                return(createNoteResult.ConvertTo <INoteReturn>());
            }

            _notebookUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult <INoteReturn>(new[] { createNoteResult.ResultingObject }.Select(NoteProjectors.Select().Compile()).FirstOrDefault()), key));
        }
예제 #2
0
        private IResult <Notebook> CreateNotebook(DateTime timestamp, Employee employee, string comment)
        {
            var createNotebookResult = new CreateNotebookCommand(_inventoryUnitOfWork).Execute(timestamp);

            if (!createNotebookResult.Success)
            {
                return(createNotebookResult.ConvertTo((Notebook)null));
            }
            var notebook = createNotebookResult.ResultingObject;

            if (!string.IsNullOrWhiteSpace(comment))
            {
                var createNoteResult = new CreateNoteCommand(_inventoryUnitOfWork).Execute(notebook, timestamp, employee, comment);
                if (!createNoteResult.Success)
                {
                    return(createNoteResult.ConvertTo((Notebook)null));
                }
            }

            return(new SuccessResult <Notebook>(notebook));
        }