Beispiel #1
0
        public async Task <Usuario> BuscarPorId(int Id)
        {
            try
            {
                var usuario = await repository.BuscarPorId(Id);

                if (usuario == null)
                {
                    throw new Exception("Usuário não encontrado.");
                }

                return(usuario);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #2
0
        public async Task <Pedido> Gravar(PedidoDto pedidoDto)
        {
            try
            {
                var pedido = new Pedido();

                var itens = new List <ItemPedido>();

                foreach (ItemPedidoDto item in pedidoDto.Itens)
                {
                    var itemPedido = new ItemPedido
                    {
                        IdProduto1 = item.IdProduto1,
                        IdProduto2 = item.IdProduto2,
                    };

                    pedido.Itens.Add(itemPedido);
                }

                if (pedidoDto.IdUsuario.HasValue)
                {
                    pedido.Usuario = await usuarioRepo.BuscarPorId(pedidoDto.IdUsuario.Value);
                }

                if (pedido.Usuario != null)
                {
                    pedido.Endereco = new Endereco
                    {
                        Logradouro  = pedido.Usuario.Endereco.Logradouro,
                        Complemento = pedido.Usuario.Endereco.Complemento,
                        Numero      = pedido.Usuario.Endereco.Numero
                    };
                }
                else if (pedidoDto.enderecoDto != null)
                {
                    pedido.Endereco = new Endereco
                    {
                        Logradouro  = pedidoDto.enderecoDto.Logradouro,
                        Complemento = pedidoDto.enderecoDto.Complemento,
                        Numero      = pedidoDto.enderecoDto.Numero
                    }
                }
                ;

                //pedido.Itens.AddRange(itens);

                pedido.IsValid();

                foreach (ItemPedido item in pedido.Itens)
                {
                    item.Produto1 = await produtoRepo.BuscarPorId(item.IdProduto1);

                    item.Produto2 = await produtoRepo.BuscarPorId(item.IdProduto2);

                    item.Nome = string.Format("{0}{1}", item.Produto1.Nome, item.Produto2 != null ? " X " + item.Produto2.Nome : "");

                    pedido.Valor += Math.Round(item.Total, 2);
                }

                pedido.Data  = DateTime.Now;
                pedido.Valor = Math.Round(pedido.Valor, 2);
                return(await repository.Gravar(pedido));
            }
            catch (Exception e)
            {
                throw e;
            }
        }