示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        //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);
        }
示例#4
0
        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));
        }
示例#5
0
 public Pedido AlterPedido(InputPedido pedido)
 {
     return(_pedidoBusiness.AlterPedido(pedido));
 }
示例#6
0
        //Altera informações do pedido caso cliente necessite
        public Pedido AlterPedido(InputPedido pedido)
        {
            var total = CalcularValorTotal(pedido);

            return(_pedidoRepository.AlterPedido(pedido, total));
        }