public async Task <PedidoItemFornecedor> AtualizarItemAsync(PedidoItemStatusDto item, int id) { if (await Task.Run(() => !_fornecedorRepository.Exists(x => x.FornecedorId == id))) { throw new ArgumentException("Fornecedor não encontrado"); } if (await Task.Run(() => !_pedidoItemFornecedorRepository.Exists(x => x.CodPedidoItemFornec == item.CodPedidoFornec && x.FornecedorId == id))) { throw new ArgumentException("Item do pedido não encontrado"); } if (await Task.Run(() => !_statusRepository.Exists(x => x.StatusId == item.Status))) { throw new ArgumentException("Status não encontrado"); } var pedidoItem = await _pedidoItemFornecedorRepository.GetAsync(id, item.CodPedidoFornec); pedidoItem.StatusId = item.Status; pedidoItem.Observacao = item.Observacao; _pedidoItemFornecedorRepository.Update(pedidoItem); pedidoItem = await _pedidoItemFornecedorRepository.GetAsync(id, item.CodPedidoFornec); return(await Task.Run(() => pedidoItem)); }
public async Task <ActionResult> AtualizarItemAsync([FromBody] PedidoItemStatusDto item) { try { var id = ExtensionsController.GetId(this); var pedido = await _pedidoItemFornecedorBusiness.AtualizarItemAsync(item, id); return(Ok("Pedido " + pedido.CodPedidoItemFornec + " atualizado! Novo status: " + pedido.Status.Nome)); } catch (ArgumentException ex) { LogarErro(ex); return(StatusCode(400, ex.Message)); } catch (Exception ex) { LogarErro(ex); return(StatusCode(500, "Internal server error")); } }