Пример #1
0
        public AddressAddOperationTest()
        {
            _fixture = new Fixture();
            _fixture.Behaviors.Remove(new ThrowingRecursionBehavior());
            _fixture.Behaviors.Add(new OmitOnRecursionBehavior());

            _store     = Substitute.For <IUserAggregateStore>();
            _logger    = Substitute.For <ILogger <AddressAddOperation> >();
            _mapper    = Substitute.For <IMapper <Domain.Common.Address, Address> >();
            _operation = new AddressAddOperation(_store, _logger, _mapper);
        }
Пример #2
0
        public async Task <IActionResult> AddAddress([FromRoute] Guid id, [FromBody] AddressResponse address, [FromServices] AddressAddOperation operation)
        {
            var result = await operation.ExecuteAsync(new AddressAdd
            {
                UserId   = id,
                Number   = address.Number,
                Line     = address.Line,
                PostCode = address.PostCode
            });

            if (result is OkResult <AddressResponse> ok)
            {
                return(Ok(ok.Value));
            }

            if (result is ErrorResult error && error.ErrorCode.StartsWith("USR"))
            {
                if (error.ErrorCode == DomainError.UserError.UserNotFound.ErrorCode)
                {
                    return(NotFound(error));
                }

                return(UnprocessableEntity(error));
            }

            return(BadRequest(result));
        }