public async Task <ResultEntity <ItemPedido> > Add(ItemPedido itemPedido)
        {
            try
            {
                var itensPedido = await _repository.GetByPedidoId(itemPedido.PedidoID);

                if (itensPedido.Count() == 10)
                {
                    return(ResultEntity <ItemPedido> .Fail(itemPedido, $"Só é permitido 10 itens por pedido - {itemPedido.CodPedido}"));
                }

                var pizzas = await _pizzaRepository.GetAll();

                if (!pizzas.Any())
                {
                    throw new ArgumentNullException(nameof(itemPedido), "Nenhuma pizza cadastrada!");
                }

                itemPedido = new ItemPedido(1, itemPedido.QuantidadeSabores, itemPedido.PizzaID1, itemPedido.PizzaID2, pizzas.ToList(), itemPedido.PedidoID);

                itemPedido = await _repository.Create(itemPedido);

                return(ResultEntity <ItemPedido> .Success(itemPedido));
            }
            catch (Exception e)
            {
                return(ResultEntity <ItemPedido> .Fail(itemPedido, $"Ocorreu algum erro na criação do ItemPedido - {e.Message}"));
            }
        }
        public ResultEntity <Cliente> Update(Cliente clinete)
        {
            try
            {
                _repository.Update(clinete);

                return(ResultEntity <Cliente> .Success(clinete));
            }
            catch (Exception e)
            {
                return(ResultEntity <Cliente> .Fail(clinete, $"Ocorreu algum erro na alteração do Cliente - {e.Message}"));
            }
        }
Exemplo n.º 3
0
        public ResultEntity <Pizza> Update(Pizza pizza)
        {
            try
            {
                pizza.Update(pizza.Id, pizza.Sabor, pizza.Valor);

                _repository.Update(pizza);

                return(ResultEntity <Pizza> .Success(pizza));
            }
            catch (Exception e)
            {
                return(ResultEntity <Pizza> .Fail(pizza, $"Ocorreu algum erro na alteração da pizza - {e.Message}"));
            }
        }
        public ResultEntity <ItemPedido> Update(ItemPedido itemPedido)
        {
            try
            {
                //pedido.Update(pedido.Id, pedido.Sabor, pedido.Valor);

                _repository.Update(itemPedido);

                return(ResultEntity <ItemPedido> .Success(itemPedido));
            }
            catch (Exception e)
            {
                return(ResultEntity <ItemPedido> .Fail(itemPedido, $"Ocorreu algum erro na alteração do item pedido - {e.Message}"));
            }
        }
Exemplo n.º 5
0
        public ResultEntity <Pizza> Add(Pizza pizza)
        {
            try
            {
                var _pizza = _repository.GetBySabor(pizza.Sabor);

                if (_pizza != null)
                {
                    return(ResultEntity <Pizza> .Fail(pizza, $"Já existe uma pizza com o sabor - {pizza.Sabor}"));
                }

                _repository.Add(pizza);

                return(ResultEntity <Pizza> .Success(pizza));
            }
            catch (Exception e)
            {
                return(ResultEntity <Pizza> .Fail(pizza, $"Ocorreu algum erro na criação da pizza - {e.Message}"));
            }
        }
        public ResultEntity <Cliente> Create(Cliente cliente)
        {
            try
            {
                var _cliente = _repository.GetByTelefone(cliente.Telefone);

                if (_cliente != null)
                {
                    return(ResultEntity <Cliente> .Fail(cliente, $"Já existe uma Cliente com o telefone - {cliente.Telefone}"));
                }

                _repository.Add(cliente);

                return(ResultEntity <Cliente> .Success(cliente));
            }
            catch (Exception e)
            {
                return(ResultEntity <Cliente> .Fail(cliente, $"Ocorreu algum erro na criação da Cliente - {e.Message}"));
            }
        }
        public async Task <ResultEntity <ItemPedido> > Delete(int id)
        {
            try
            {
                var itemPedido = await _repository.GetById(id);

                if (itemPedido == null)
                {
                    return(ResultEntity <ItemPedido> .Fail(itemPedido, $"Item Pedido não existe"));
                }

                _repository.Delete(itemPedido);

                return(ResultEntity <ItemPedido> .Success(itemPedido));
            }
            catch (Exception e)
            {
                return(ResultEntity <ItemPedido> .Fail(new ItemPedido(), $"Ocorreu algum erro na exclusão do Item Pedido - {e.Message}"));
            }
        }
Exemplo n.º 8
0
        public async Task <ResultEntity <Pedido> > Create(Pedido pedido)
        {
            try
            {
                var _pedido = await _repository.GetByCodigo(pedido.CodPedido);

                if (_pedido != null)
                {
                    return(ResultEntity <Pedido> .Fail(pedido, $"Já existe um pedido com esse código - {pedido.CodPedido}"));
                }

                if (!pedido.ItensPedido.Any())
                {
                    throw new ArgumentNullException(nameof(pedido), "Necessário pelo menos 1 item de pedido.");
                }

                if (pedido.ItensPedido.Count() > 10)
                {
                    throw new ArgumentNullException(nameof(pedido.ItensPedido), "Máximo de items por pedido é 10");
                }

                var pizzas = await _pizzaRepository.GetAll();

                if (!pizzas.Any())
                {
                    throw new ArgumentNullException(nameof(pedido.ItensPedido), "Nenhuma pizza cadastrada!");
                }

                pedido.ItensPedido = (from item in pedido.ItensPedido
                                      select new ItemPedido().AtualizarValorUnitario(item, pizzas.ToList())).ToList();

                pedido = await _repository.Add(pedido);

                return(ResultEntity <Pedido> .Success(pedido));
            }
            catch (Exception e)
            {
                return(ResultEntity <Pedido> .Fail(pedido, $"Ocorreu algum erro na criação do pedido - {e.Message}"));
            }
        }
Exemplo n.º 9
0
        public ResultEntity <Pizza> Delete(int id)
        {
            var pizza = new Pizza();

            try
            {
                pizza = _repository.GetById(id);

                if (pizza == null)
                {
                    return(ResultEntity <Pizza> .Fail(pizza, $"Pizza não existe"));
                }

                _repository.Delete(pizza);

                return(ResultEntity <Pizza> .Success(pizza));
            }
            catch (Exception e)
            {
                return(ResultEntity <Pizza> .Fail(pizza, $"Ocorreu algum erro na exclusão da pizza - {e.Message}"));
            }
        }
Exemplo n.º 10
0
        public ResultEntity <Cliente> Delete(int id)
        {
            var Cliente = new Cliente();

            try
            {
                Cliente = _repository.GetById(id);

                if (Cliente == null)
                {
                    return(ResultEntity <Cliente> .Fail(Cliente, $"Cliente não existe"));
                }

                _repository.Delete(Cliente);

                return(ResultEntity <Cliente> .Success(Cliente));
            }
            catch (Exception e)
            {
                return(ResultEntity <Cliente> .Fail(Cliente, $"Ocorreu algum erro na exclusão da Cliente - {e.Message}"));
            }
        }
        public async Task <ResultEntity <ItemPedido> > AddRange(List <ItemPedido> pedidos)
        {
            try
            {
                var pedidoId  = pedidos.FirstOrDefault().PedidoID;
                var codPedido = pedidos.FirstOrDefault().CodPedido;

                var itensPedido = await _repository.GetByPedidoId(pedidoId);

                if (itensPedido.Count() == 10)
                {
                    return(ResultEntity <ItemPedido> .Fail(pedidos.FirstOrDefault(), $"Só é permitido 10 itens por pedido - {codPedido}"));
                }

                _repository.AddRange(pedidos);

                return(ResultEntity <ItemPedido> .Success(pedidos.FirstOrDefault()));
            }
            catch (Exception e)
            {
                return(ResultEntity <ItemPedido> .Fail(pedidos.FirstOrDefault(), $"Ocorreu algum erro na criação do ItemPedido - {e.Message}"));
            }
        }