public IActionResult _RemoverDoCarrinho(string codBar)
        {
            Carrinho c     = GetCarrinho();
            Livro    livro = _facade.Query <Livro>(l => l.CodigoBarras == codBar,
                                                   l => l).FirstOrDefault();

            if (livro == null)
            {
                return(Json(new { valor = false, ex = "Algo deu errado.\n" }));
            }

            CarrinhoLivro carrinhoLivro = c.CarrinhoLivro.Where(c => c.LivroId == livro.Id).FirstOrDefault();

            if (carrinhoLivro == null)
            {
                return(Json(new { valor = false, ex = "O livro não está no carrinho.\n" }));
            }

            livro.EstoqueBloqueado -= carrinhoLivro.Quantia;
            c.CarrinhoLivro.Remove(carrinhoLivro);

            string msg = _daoCarrinhoLivro.Remove(carrinhoLivro);

            msg += _facade.Editar(livro);

            if (msg == "")
            {
                return(Json(new { valor = true }));
            }
            return(Json(new { valor = false, ex = msg }));
        }
        public IActionResult _AlterarQuantiaNoCarrinho(string codBar, string op)
        {
            Carrinho      c             = GetCarrinho();
            CarrinhoLivro carrinhoLivro = c.CarrinhoLivro.Where(l => l.Livro.CodigoBarras == codBar).FirstOrDefault();

            IDictionary <string, int> operacoes = new Dictionary <string, int>
            {
                ["+"] = 1,
                ["-"] = -1
            };

            if (carrinhoLivro == null)
            {
                return(Json(new { valor = false, ex = "Livro não está no carrinho.\n" }));
            }

            if (carrinhoLivro.Livro.EstoqueBloqueado == carrinhoLivro.Livro.Estoque && op == "+")
            {
                return(Json(new { valor = false, ex = "Estoque insuficiente.\n" }));
            }

            carrinhoLivro.Quantia += operacoes[op];
            carrinhoLivro.Livro.EstoqueBloqueado += operacoes[op];

            string msg = _facade.Editar(c);

            //INSERIR MÉTODO DE DESATIVAÇÃO AUTOMÁTICA AQUI

            if (msg == "")
            {
                return(Json(new { valor = true }));
            }
            return(Json(new { valor = false, ex = msg }));
        }
        public IActionResult _AddToCarrinho(string codBar, int quantia = 1)
        {
            Carrinho c     = GetCarrinho();
            Livro    livro = _facade.GetAllInclude(new Livro {
                CodigoBarras = codBar
            });
            IEnumerable <CarrinhoLivro> carrinhoLivro = c.CarrinhoLivro.Where(c => c.LivroId == livro.Id);

            if (quantia > livro.Estoque - livro.EstoqueBloqueado)
            {
                return(Json(new { valor = false, ex = "Estoque insuficiente.\n" }));
            }

            if (carrinhoLivro.Count() == 0)
            {
                CarrinhoLivro livroNovo = new CarrinhoLivro
                {
                    Livro    = _facade.GetEntidade(livro),
                    Carrinho = c,
                    Quantia  = quantia
                };

                c.CarrinhoLivro.Add(livroNovo);
            }
            else
            {
                carrinhoLivro.FirstOrDefault().Quantia += 1;
            }

            livro.EstoqueBloqueado += quantia;

            string msg = _facade.Editar(c);

            msg += _facade.Editar(livro);

            //INSERIR MÉTODO DE DESATIVAÇÃO AUTOMÁTICA AQUI

            if (msg == "")
            {
                return(Json(new { valor = true }));
            }
            return(Json(new { valor = false, ex = msg }));
        }