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)); }
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)); }