예제 #1
0
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] TransientAccountModel model)
        {
            var result = await _service.Replace(id, model);

            if (ControllerContext.HttpContext.Request.Headers["representation"] == "minimal")
            {
                return(NoContent());
            }

            return(Ok(result));
        }
        public async Task <AccountModel> Create(TransientAccountModel model)
        {
            var account = _factory.Build(model.HolderFirstName, model.HolderLastName);

            _repository.UnitOfWork.Add(account);
            await _repository.UnitOfWork.CommitAsync();

            var result = _mapper.Map(account);

            await _bus.Queue(result, "AccountCreated");

            return(result);
        }
        public async Task <AccountModel> Replace(int id, TransientAccountModel model)
        {
            if (id <= 0)
            {
                throw new BadRequestException("Id must be greater than 0");
            }

            var target = await _repository.FindAsync(new GetAccountById(new AccountId(id)));

            if (target == null)
            {
                throw new NotFoundException("No account found by that id");
            }

            target.AccountHolder = new AccountHolder(new FirstName(model.HolderFirstName), new LastName(model.HolderLastName));

            await _repository.UnitOfWork.CommitAsync();

            var result = _mapper.Map(target);

            await _bus.Queue(result, "AccountUpdated");

            return(result);
        }
예제 #4
0
        public async Task <IActionResult> Post([FromBody] TransientAccountModel model)
        {
            var result = await _service.Create(model);

            return(Created($"{result.Id}", result));
        }