public MergeTheRequestCommandHandler( ICurrentUser currentUser, INoteChecker noteChecker, IAggregateRepository aggregateRepository) { _currentUser = currentUser; _noteChecker = noteChecker; _aggregateRepository = aggregateRepository; }
public void Reopen(INoteChecker noteValidatorService, Guid userId) { if (_status != MergeRequestStatus.Closed) { throw new MergeRequestStatusChangeException(_status, MergeRequestStatus.Open); } if (!noteValidatorService.IsPublishedNote(_destinationNoteId)) { throw new NoteHaveNotBeenPublishedException(); } ApplyChange(new MergeRequestReopenedEvent(Id, GetNextVersion(), userId)); }
public MergeRequest CreateMergeRequest(INoteChecker noteChecker, IMergeRequestChecker mergeRequestChecker, Guid userId, string title, string description) { CheckDelete(); if (!_cloneFormId.HasValue) { throw new OnlyCloneNoteCanBeMergedException(); } if (!noteChecker.IsPublishedNote(_cloneFormId.Value)) { throw new NoteHaveNotBeenPublishedException(); } return(MergeRequest.Initialize(mergeRequestChecker, userId, Id, _cloneFormId.Value, title, description)); }