public Pedido AlterPedido(InputPedido pedido, decimal total) { using (var transaction = _context.Database.BeginTransaction()){ try{ var model = _context.Pedidos.Where(p => p.Id.Equals(pedido.Id)).FirstOrDefault(); model.Cliente = pedido.Cliente; model.ValorTotalPedido = total; model.TamanhoId = pedido.Tamanho.Id; model.SaborId = pedido.Sabor.Id; var adiconaisEscluir = _context.PedidosAdicionais.Where(p => p.PedidoId == model.Id); _context.PedidosAdicionais.RemoveRange(adiconaisEscluir); foreach (var adicional in pedido.Adicionais) { var modelPedidoAdicional = new PedidoAdicional(); modelPedidoAdicional.AdicionalId = adicional.Id; modelPedidoAdicional.PedidoId = model.Id; _context.PedidosAdicionais.Add(modelPedidoAdicional); } _context.SaveChanges(); transaction.Commit(); return(model); }catch (Exception ex) { transaction.Rollback(); Console.WriteLine($"Error ao alterar pedido. Detalhe{ex.Message}"); return(null); } } }
public Pedido AddPedido(InputPedido pedido, decimal total) { using (var transaction = _context.Database.BeginTransaction()){ try{ Pedido entidadePedido = new Pedido(); entidadePedido.Cliente = pedido.Cliente; entidadePedido.ValorTotalPedido = total; entidadePedido.TamanhoId = pedido.Tamanho.Id; entidadePedido.SaborId = pedido.Sabor.Id; var resultado = _context.Pedidos.Add(entidadePedido); foreach (var adicional in pedido.Adicionais) { var modelPedidoAdicional = new PedidoAdicional(); modelPedidoAdicional.AdicionalId = adicional.Id; modelPedidoAdicional.PedidoId = resultado.Entity.Id; _context.PedidosAdicionais.Add(modelPedidoAdicional); } _context.SaveChanges(); transaction.Commit(); return(resultado.Entity); }catch (Exception ex) { transaction.Rollback(); Console.WriteLine($"Error ao gravar pedido. Detalhe{ex.Message}"); return(null); } } }
//Calcula o valor total do pedido private decimal CalcularValorTotal(InputPedido pedido) { decimal valorTotal = 0m; valorTotal += pedido.Tamanho.Valor; foreach (var adicional in pedido.Adicionais) { valorTotal += adicional.Valor; } return(valorTotal); }
public IActionResult AddPedido([FromBody] InputPedido pedido) { if (pedido == null || pedido.Sabor == null || pedido.Tamanho == null) { return(BadRequest()); } if (!_tamanhoService.TamanhoExists(pedido.Tamanho.Id) || !_saborService.SaborExists(pedido.Sabor.Id)) { return(NotFound()); } var resultadoPedido = _pedidoService.AddPedido(pedido); if (resultadoPedido == null) { return(Ok("Erro o gravar registro, Verique os parâmetros")); } var resultado = _pedidoBusiness.ResumoPedido(resultadoPedido); return(Ok(resultado)); }
public Pedido AlterPedido(InputPedido pedido) { return(_pedidoBusiness.AlterPedido(pedido)); }
//Altera informações do pedido caso cliente necessite public Pedido AlterPedido(InputPedido pedido) { var total = CalcularValorTotal(pedido); return(_pedidoRepository.AlterPedido(pedido, total)); }