コード例 #1
0
 public MergeTheRequestCommandHandler(
     ICurrentUser currentUser,
     INoteChecker noteChecker,
     IAggregateRepository aggregateRepository)
 {
     _currentUser         = currentUser;
     _noteChecker         = noteChecker;
     _aggregateRepository = aggregateRepository;
 }
コード例 #2
0
    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));
    }
コード例 #3
0
    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));
    }