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); }
public async Task <IActionResult> Post([FromBody] TransientAccountModel model) { var result = await _service.Create(model); return(Created($"{result.Id}", result)); }