コード例 #1
0
        public void OnApplicationCommand(IApplicationCommandingContext context, CreateApplicationCommand command)
        {
            _logger.LogInformation($"The application command: {nameof(command)}[Payload: {command.Payload}] handled.");

            var create = new CreateDomainCommand(command.Payload);

            _domainCommandPublisher.Publish(create);
        }
コード例 #2
0
        public async Task <Domain> CreateAsync(CreateDomainCommand createDomainCommand, CancellationToken cancellationToken = default)
        {
            _logger.CreateNewDomain(createDomainCommand.DomainName);

            var domain = await _domainRepository.CreateAsync(createDomainCommand.DomainName, cancellationToken);

            return(domain);
        }
コード例 #3
0
        public async void GivenCommand_WhenCreatingADomain_ShouldBeAddedToRepository(
            [Frozen] Mock <IDomainRepository> domainRepository,
            CreateDomainCommand command,
            CreateDomainUseCase sut)
        {
            await sut.CreateAsync(command);

            domainRepository
            .Verify(repo => repo.CreateAsync(command.DomainName, It.IsAny <CancellationToken>()), Times.Once);
        }
コード例 #4
0
        public async void GivenCommand_WhenCreatingADomain_UseCaseShouldReturnCreatedDomain(
            [Frozen] Mock <IDomainRepository> domainRepository,
            Domain domain,
            CreateDomainCommand command,
            CreateDomainUseCase sut)
        {
            domainRepository.Setup(repo => repo.CreateAsync(command.DomainName, It.IsAny <CancellationToken>())).ReturnsAsync(domain);

            var result = await sut.CreateAsync(command);

            result.Should().Be(domain);
        }
コード例 #5
0
        public async Task OnApplicationCommandAsync(
            IApplicationCommandingContext context,
            CreateApplicationCommand command,
            CancellationToken token = default)
        {
            _logger.LogInformation($"The application command: {nameof(command)}[Payload: {command.Payload}] handled.");

            var create = new CreateDomainCommand(command.Payload);

            _domainCommandPublisher.Publish(create);

            await Task.CompletedTask;
        }
コード例 #6
0
        public async Task <IActionResult> Create([FromHeader(Name = "x-requestid")] string requestId, [FromBody] CreateDomainCommand command)
        {
            bool commandResult = false;

            if (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty)
            {
                var identified = new IdentifiedCommand <CreateDomainCommand, bool>(command, guid);
                commandResult = await _mediator.Send(identified);
            }
            return(commandResult ? (IActionResult)Ok() : (IActionResult)BadRequest());
        }