Exemplo n.º 1
0
 public CreateMergeRequestCommandHandler(
     ICurrentUser currentUser,
     INoteChecker noteChecker,
     IMergeRequestChecker mergeRequestChecker,
     IAggregateRepository aggregateRepository)
 {
     _currentUser         = currentUser;
     _noteChecker         = noteChecker;
     _mergeRequestChecker = mergeRequestChecker;
     _aggregateRepository = aggregateRepository;
 }
Exemplo n.º 2
0
    internal static MergeRequest Initialize(IMergeRequestChecker mergeRequestValidatorService, Guid userId,
                                            Guid sourceNoteId, Guid destinationNoteId, string title, string description)
    {
        if (mergeRequestValidatorService.HasOpenMergeRequest(sourceNoteId, destinationNoteId))
        {
            throw new MergeRequestHasBeenExistsException();
        }

        var mergeRequest = new MergeRequest(Guid.NewGuid());

        mergeRequest.ApplyChange(new MergeRequestCreatedEvent(mergeRequest.Id, mergeRequest.GetNextVersion(), userId,
                                                              sourceNoteId, destinationNoteId, title, description));

        return(mergeRequest);
    }
Exemplo n.º 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));
    }