예제 #1
0
        public ActionResult Adiciona(Produto produto)
        {
            int idInformatica = 1;

            if (produto.CategoriaId.Equals(idInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.Invalido", "Informática com preço abaixo de R$ 100,00");
            }
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO dao = new CategoriasDAO();
                IList <CategoriaDoProduto> categorias = dao.Lista();

                ViewBag.Categorias = categorias;
                return(View("Form"));
            }
        }
예제 #2
0
        [ValidateAntiForgeryToken] // se for valido, então passa a requisição
        public ActionResult Adicionar(Produto produto)
        {
            int idDaInformatica = 1;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.Invalido", "Informatica com preco abaixo de 100 reais");
            }
            if (produto.Preco < 0)
            {
                ModelState.AddModelError("produto.Preco", "Preço inválido!");
            }
            if (ModelState.IsValid)// modelo obedece as regras de validação
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);
                return(RedirectToAction("Index", "Produto")); // redirecionado para Index da View Produto
            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form")); // retorna para o formulário
            }
        }
        public ActionResult AdicionaProduto(Produtos produtos)
        {
            var dao = new ProdutosDAO();

            dao.Adiciona(produtos);
            return(View());
        }
예제 #4
0
        public ActionResult Adiciona(Produto produto)
        {
            int idInformatica = 1;

            if (produto.CategoriaId.Equals(idInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.precoInformaticaInvalido", "O preço para o produto de informática é abaixo de 100");
            }

            if (ModelState.IsValid)
            {
                ProdutosDAO pDAO = new ProdutosDAO();
                pDAO.Adiciona(produto);

                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                ViewBag.produto = produto;
                CategoriasDAO categoria = new CategoriasDAO();
                ViewBag.categorias = categoria.Lista();

                return(View("Form"));
            }
        }
        public ActionResult Adiciona(Produto produto)
        {
            // Validação personalizada
            // Produtos da categoria 1 devem valer mais de 100 reias
            if (produto.CategoriaId.Equals(1) && produto.Preco < 100)
            {
                // Adicionando novo erro
                ModelState.AddModelError("produto.Invalido", "Informatica com preço abaixo de 100 reais!");
            }
            // ModelState.IsValid - verifica se o modelo obedece as regras de validação
            // Nesse caso, as regras de validação contidas na classe Produto
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                // Redirecionando para o metodo Index, Controller Produto
                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                // Caso de erro de validação retornar formulario com dados digitados
                ViewBag.Produto = produto;
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form"));
            }
        }
예제 #6
0
        public ActionResult Adiciona(Produto produto)
        {
            ProdutosDAO dao = new ProdutosDAO();

            dao.Adiciona(produto);
            return(RedirectToAction("Index", "Home"));
        }
예제 #7
0
        [ValidateAntiForgeryToken] // Se o token for valido adiona o produto, validando token.
        //Protegido contra o Cross Site Request Forgey

        public ActionResult Adiciona(Produto produto)// Recebe todas as informções do tipo produto, para funcionar o "name" do cshtml tem que ter as propriedade do "Produto".
        {
            // Model Binder pega as requisições e transfoma no obejto que foi passado para a action.

            //Minhas próprias validações personalizadas.
            int idInformatica = 1; // Regra customizada para informatica

            if (produto.CategoriaId.Equals(idInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.Invalido", "Informatica com o preço abaixo de R$100,00");
                // ModelState, contem todos erros de validação. Para adionar o novo erro usa o AddModelError.
                //Dentro dos ("qual o nome do erro para recuperar a mensagem","Mensagem para o usuario")
            }


            if (ModelState.IsValid) // ModelState.IsValid verifica se obdece as regras de validação.
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index", "Produto")); // Informar para action deve ser redirecinada. Action Index do ProdutoControler
            }
            else // Mesmo assim a lista de categorias deve ser mostrada no formulario.
            {
                ViewBag.Produto = produto; // Caso de errado, o formulario deve mostrar os dados preenchidos pelo o usuario.
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form")); // Retorna o fomularios, no formulario irei colocar as regras de validação que foram violadas.
            }
        }
예제 #8
0
        public ActionResult Incluir(Produto produto)
        {
            var categorias = new CategoriasDAO().Lista();
            var cAlimento  = categorias.Where(c => c.Nome.Contains("Alimento")).FirstOrDefault();

            if (cAlimento != null && produto.CategoriaId.Equals(cAlimento.Id) &&
                produto.Preco < 0.10)
            {
                ModelState.AddModelError("alimentos", "O preço de produtos de alimentação devem ser maiores ou iguais a R$ 0.10 !");
            }

            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Categorias = categorias;
                ViewBag.Produto    = produto;

                return(View("Cadastrar"));
            }
        }
예제 #9
0
        public ActionResult Adiciona(Produto produto)
        {
            CategoriaDoProduto categoriaInformatica = new CategoriasDAO().BuscaPorNome("Informática");

            if (categoriaInformatica != null)
            {
                int idDadInformatica = categoriaInformatica.Id;

                if (produto.CategoriaId.Equals(idDadInformatica) && produto.Preco < 100)
                {
                    ModelState.AddModelError("produto.PrecoInvalido", "Informática com preço abaixo de 100 reais");
                }
            }

            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();

                return(View("Form"));
            }
        }
예제 #10
0
        [ValidateAntiForgeryToken] //usado junto com o token gerado no html
        public ActionResult Adiciona(Produto produto)
        {
            int idDaInformatica = 1;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                // colocando novo erro de validação
                ModelState.AddModelError("produto.Invalido", "Informática com preço abaixo de R$100,00");
            }

            /*
             * O cara responsável por criar o modelo que será armazenado no banco de dados é chamado de Model Binder
             */

            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                // redirecionando o usuário para o método index do controller produto. Posso omitir o controller, caso o método esteja invocando o próprio
                // Para redirecionar o usuário para uma action de outro controller, devemos utilizar a versão do RedirectToAction que recebe duas Strings, o nome da action e o nome do controller. Nesse caso, RedirectToAction("Index","Home").
                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                // retornando os dados que o usuário preencheu no campo. Assim, ao recarregar a página para mostrar os erros, os campos virão com os mesmos dados que foram preenchido pelo usuário
                ViewBag.Produto = produto;
                CategoriasDAO dao = new CategoriasDAO();
                ViewBag.Categorias = dao.Lista();
                return(View("Form"));
            }
        }
예제 #11
0
      [ValidateAntiForgeryToken]                    // cria um token de validação
      public ActionResult Adiciona(Produto produto) // adiciona no bd um produto do tipo Produto, vindo da view;
      {
          int idInformatica = 1;

          if (produto.CategoriaId.Equals(idInformatica) && produto.Preco < 100)
          {
              ModelState.AddModelError("produto.Invalido", "Informática com preço abaixo de 100 reais");   // crio minha propria modelstate e passando como parametro a mensagem de erro
                                                                                                           // e a chave do erro no primeiro parametro para passar na view
          }

          if (ModelState.IsValid)
          {   // o modelo obedece as regras de validação na model E PODE SER ATRIBUIDA
              ProdutosDAO dao = new ProdutosDAO();

              dao.Adiciona(produto);             // adiciona no banco

              return(RedirectToAction("Index")); // manda para a controller index que irá mostrar os produtos e depois irá chamar a view
                                                 //return RedirectToAction("Index","HomeController"); para acessar a view index e da home controller.
          }
          else
          {
              ViewBag.Produto = produto;                  // adicionando denovo o produto
              CategoriasDAO categoriasDAO = new CategoriasDAO();
              ViewBag.Categorias = categoriasDAO.Lista(); // PRECISO PREENCHER DENOVO AS CATEGORIAS
              return(View("Form"));
          }
      }
예제 #12
0
        public ActionResult Adiciona(Produto produto)
        {
            int Idinformatica = 1;

            //se produto da categoria Id for igual ao Id da informatica e preço for menor que sem
            if (produto.CategoriaId.Equals(Idinformatica) && produto.Preco < 100)
            {
                //Messagem de erro de validação, tm como primeiro parâmetro a chave e como segundo a menssagem
                ModelState.AddModelError("produto.invalido", "informatica com preço abaixo de R$ 100");
            }
            //verifica se os dados preenchidos obedece a forma de validação das anotações do models
            if (ModelState.IsValid)
            {
                //instancia o dao
                ProdutosDAO dao = new ProdutosDAO();

                //chama o metodo de adicionar o objeto
                dao.Adiciona(produto);

                //retorna a view, para a camada de visualização

                //faz o redirecionamento para o Produto onde esta a listagem da tabela de dados
                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                //caso else pega o produto que veio da camada de visualização e adiciona em uma viewBag
                ViewBag.produto = produto;

                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.categorias = categoriasDAO.Lista();
                //se a requisição acima não for de acordo, mostra novamente o formulaio para o usuário
                return(View("Form"));
            }
        }
예제 #13
0
        public ActionResult Adiciona(Produto produto)
        {
            //IsValid Mostra se o modelo obedece ou nao as regras de validações

            int idDaInformatica = 1;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.Invalido", "Informatica com preco abaixo de 100 reais");
            }

            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form"));
            }
        }
예제 #14
0
        [ValidateAntiForgeryToken] ///validando token para adicionar produto
        public ActionResult Adiciona(Produto produto)
        {
            // Validação Mais complexa(Produtos com preços maior 100 reais)
            int idDainformatica = 1;

            if (produto.CategoriaId.Equals(idDainformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.Invalido", "Informatica com preço abaixo de 100 reais"); //adicionar novo erro a lista
                //produto.Invalido é a chave que será passado para o helper na view
            }

            /// (Validação padrao mvc)fazendo validação com base na anotaçãpo da classe produto
            if (ModelState.IsValid)
            {
                var dao = new ProdutosDAO();
                dao.Adiciona(produto);
                return(RedirectToAction("Index", "Produto")); //para evitar que usuário de f5 e duplique a requisição no banco
            }
            else
            {
                //para quando der else, não voltar com o formulario vazio
                ViewBag.Produto = produto;
                //
                var categoriaDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriaDAO.Lista();
                return(View("Form"));
            }
        }
예제 #15
0
        public ActionResult Adiciona(Produto produto)
        {
            int idDaInformatica = 1;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.InformaticaComPrecoInvalido", "Produtos da categoria informática devem ter preço maior do que 100");
            }

            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Produto = produto;

                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();

                return(View("Form"));
            }
        }
예제 #16
0
        [HttpPost]                                    //Da mesma forma que podemos utilizar o HttpPostAttribute para aceitar apenas requisições do tipo post
        public ActionResult Adiciona(Produto produto) // Metado adiciona  será responsável por receber as informações que foram enviadas pelo formulário Produto produto...
        {
            int idDaInformatica = 1;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.InformaticaComPrecoInvalido", "Produtos da categoria informática devem ter preço maior do que 100"); //o método AddModelError do ModelState.
                //Esse método recebe como argumento duas strings, a primeira indica o nome do erro de validação e a segunda a mensagem de erro que deve ser exibida.
                //O nome do erro pode ser utilizado na view para se recuperar a mensagem de erro através do método ValidationMessage do HtmlHelper.
            }

            //O ModelState guarda todas as regras de validação que foram violadas. Para verificar se todas as regras de validação foram obedecidas utiliza-se o
            //atributo IsValid do ModelState.
            if (ModelState.IsValid)
            {                                                 // O Modelo foi validado corretamente, então pode ser gravado no banco de dados.
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);                        //utilizaremos o DAO para adicionar o produto no banco de dados:
                return(RedirectToAction("Index", "Produto")); //O RedirectToAction redirecionará o usuário para o método Index do controller atual (ProdutoController).
            }
            else  // O Modelo não foi validado corretamente.
            {
                // produto inválido então vamos guardá-lo na ViewBag
                ViewBag.Produto = produto;
                // envia o usuário para o formulário de cadastro
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form"));
            }
        }
예제 #17
0
 public ActionResult Adiciona(Produto produto)
 {
     if (produto.Categoria.Id == 0)
     {
         produto.Categoria = null;
     }
     dao.Adiciona(produto);
 }
 public ActionResult Adiciona(Produto produto)
 {
     //ISession session = NHibernateHelper.AbreSession();
     //ProdutosDAO dao = new ProdutosDAO(session);
     dao.Adiciona(produto);
     return(RedirectToAction("Visualiza", new { id = produto.Id }));
     //return RedirectToAction("Index");
 }
예제 #19
0
        [ValidateAntiForgeryToken] //validando se o token do usuário logado é valido para adicionar um produto.
        public ActionResult Adiciona(Produtos produto)
        {
            ProdutosDAO dao = new ProdutosDAO();

            dao.Adiciona(produto);

            //return View();
            return(RedirectToAction("Index", "Produto")); //retornando para o usuario uma action especifica
        }
예제 #20
0
 public ActionResult Adiciona(Produto produto)
 {
     if (produto.Categoria.Id.Equals(0))
     {
         produto.Categoria = null;
     }
     dao.Adiciona(produto);
     return(RedirectToAction("Index"));
 }
 //public ActionResult Adiciona(string nome, float preco, int quantidade, string descricao, int categoriaId)
 public ActionResult Adiciona(Produto produto)//<- Model Binder faz a criação do produto no cliente antes de enviar para o servidor
 {
     if (ModelState.IsValid)
     {
         ProdutosDAO dao = new ProdutosDAO();
         dao.Adiciona(produto);
         return(RedirectToAction("Index", "Produto"));
     }
     ViewBag.Categorias = new CategoriasDAO().Lista();
     return(View("Form", produto));
 }
        public ActionResult Adiciona(Produto produto)
        {
            //gravando no bd
            var dao = new ProdutosDAO();

            dao.Adiciona(produto);

            //modelbinder cria o obj para aspnetmvc

            return(RedirectToAction("Index")); //se for contr diferente, eh soh passar como arg
        }
예제 #23
0
        public ActionResult Adiciona(Produto produto)
        {
            if (produto.Categoria.Id == 0)
            {
                produto.Categoria = null;
            }

            session     = NHibernateHelper.AbreSession();
            produtosdao = new ProdutosDAO(session);
            produtosdao.Adiciona(produto);
            return(RedirectToAction("Visualiza", new { id = produto.Id }));
        }
예제 #24
0
 public ActionResult Adiciona(Produto produto)
 {
     if (ModelState.IsValid)
     {
         produtosDAO.Adiciona(produto);
         return(RedirectToAction("Index"));
     }
     else
     {
         return(View("Form", produto));
     }
     //nem todos os valores retornam um valor :/
 }
        [ValidateAntiForgeryToken]//verifica token de segurança
        public ActionResult Adiciona(Produto produto)
        {
            if (ModelState.IsValid)
            {
                ProdutosDAO produtosDAO = new ProdutosDAO();
                produtosDAO.Adiciona(produto);
            }
            else
            {
                return(RedirectToAction("FormAdd", "Produto"));
            }


            return(RedirectToAction("Index", "Produto"));
        }
예제 #26
0
 public ActionResult Adiciona(Produto produto)
 {
     if (ModelState.IsValid)
     {
         ProdutosDAO dao = new ProdutosDAO();
         dao.Adiciona(produto);
         RegistrarLog(produto, "Registrou");
         return(RedirectToAction("Index", "Produto"));
     }
     else
     {
         FamiliaProdutoDAO familiaDao = new FamiliaProdutoDAO();
         ViewBag.Familias = familiaDao.Lista();
         return(View("Form"));
     }
 }
        public ActionResult Adicionar(Produto produto)
        {
            if (ModelState.IsValid)
            {
                dao.Adiciona(produto);
                return(RedirectToAction("Index"));
            }

            ViewBag.Produto = produto;
            CategoriasDAO dao = new CategoriasDAO();
            IList <CategoriaDoProduto> categorias = dao.Lista();

            ViewBag.Categorias = categorias;

            return(RedirectToAction("Form"));
        }
        public ActionResult Adiciona(Produto produto)
        {
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);

                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form"));
            }
        }
예제 #29
0
        public ActionResult CadastrarProduto(Produto produto)
        {
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);
                return(RedirectToAction("ListarProdutos", "Produto"));
            }
            else
            {
                CategoriasDAO dao = new CategoriasDAO();
                IList <CategoriaDoProduto> categorias = dao.Lista();
                ViewBag.Categorias = categorias;


                ViewBag.Produto = produto;
                return(View("FormCadastroProduto"));
            }
        }
예제 #30
0
        public ActionResult Adiciona(Produto produto)
        {
            int idDaInformatica = 4;

            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
            {
                ModelState.AddModelError("produto.InformaticaComPrecoInvalido", "Produto de informática com preço abaixo de 100 reais");//ModelState funciona como se fosse uma lista de erros possíveis, os quais você também pode adicionar;
            }
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);
                return(RedirectToAction("Index", "Produto"));
            }
            else
            {
                CategoriasDAO categoriasDAO = new CategoriasDAO();
                ViewBag.Categorias = categoriasDAO.Lista();
                return(View("Form"));
            }
        }