public async Task <long> Create(PedidoInput pedidoInput, CancellationToken cancellationToken) { return(await Task.Run(() => { pedidoInput.Validar(); Pedido pedido = new Pedido(); pedido.DataCriacao = DateTime.Now; //pedido.UsuarioCriacao = Thread.CurrentPrincipal.Identity; foreach (var itemInput in pedidoInput.Itens) { ItemPedido item = new ItemPedido(); Produto produto = ProdutoRepository.GetById(itemInput.ProdutoId); if (produto == null) { throw new Exception("Produto não encontrado"); } item.Produto = produto; item.Quantidade = itemInput.Qtd; pedido.Itens.Add(item); } PedidoRepository.Add(pedido); return pedido.Id; }, cancellationToken)); }
public async Task <IActionResult> Post([FromBody] PedidoInput input) { var id = await _pedidoApplicationService.AddAsync(input); if (id <= 0) { return(BadRequest()); } return(Created(Request.Path, input)); }
public async Task <IActionResult> Post([FromBody] PedidoInput pedido) { var login = User.Identity.Name; var usuario = await _usuarioRepository.Get(login); var result = await _mediator.Send(new NewPedidoCommand(pedido.Pizzas, usuario.Id, null)); if (result.Ok) { return(Ok(result.Data)); } return(BadRequest(result.Errors)); }
public async Task <IActionResult> Put(int id, [FromBody] PedidoInput input) { try { await _pedidoApplicationService.UpdateAsync(id, input); return(Ok()); } catch (Exception ex) { return(BadRequest(ex)); } }
public async Task Edit(long pedidoId, PedidoInput pedidoInput, CancellationToken cancellationToken) { await Task.Run(() => { pedidoInput.Validar(); Pedido pedido = PedidoRepository.GetById(pedidoId); var itensRemovidos = pedido.Itens.Where(i => !pedidoInput.Itens.Any(ii => ii.ProdutoId == i.Produto.Id)); foreach (var item in itensRemovidos) { pedido.Itens.Remove(item); } foreach (var itemInput in pedidoInput.Itens) { var item = pedido.Itens.FirstOrDefault(i => i.Produto.Id == itemInput.ProdutoId); if (item == null) { Produto produto = ProdutoRepository.GetById(itemInput.ProdutoId); if (produto == null) { throw new Exception("Produto não encontrado"); } item.Produto = produto; item.Quantidade = itemInput.Qtd; pedido.Itens.Add(item); } else { item.Quantidade = itemInput.Qtd; } } PedidoRepository.Update(pedido); }, cancellationToken); }
public async Task <IActionResult> Create(PedidoInput peditoInput, CancellationToken cancellationToken) { long pedidoId = await PedidoService.Create(peditoInput, cancellationToken); return(Ok(pedidoId)); }
public async Task <IHttpActionResult> Post([FromBody] PedidoInput input) { await _serviceBase.AddAsync(input); return(Created(Request.RequestUri + "/", input)); }
public async Task <IActionResult> Post([FromBody] PedidoInput obj) { await _appService.AdicionarPedido(obj.IdCliente, obj.Itens); return(StatusCode(201)); }