示例#1
0
        public ActionResult ExibirPedido(int?id)
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Pedido pedido = db.Pedido.Find(id);

                if (pedido == null)
                {
                    return(HttpNotFound());
                }

                if (pedido.UsuarioID == Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString()))
                {
                    pedido.Cliente = db.Cliente.Find(pedido.UsuarioID);

                    foreach (var item in pedido.Itens)
                    {
                        item.Produto = db.Produto.Find(item.ProdutoID);
                    }

                    return(View(pedido));
                }
                else
                {
                    return(RedirectToAction("MeusPedidos", "Pedidos"));
                }
            }

            return(null);
        }
示例#2
0
        public ActionResult Create([Bind(Include = "UsuarioID, Nome, Email, Login, Senha, ConfirmacaoSenha, Ativo")] Cliente cliente)
        {
            if (!GestaoUsuarios.VerificarDisponibilidadeEmail(cliente.Email))
            {
                ModelState.AddModelError("Email", "Este e-mail já está cadastrado no sistema.");
            }

            if (!GestaoUsuarios.VerificarDisponibilidadeLogin(cliente.Login))
            {
                ModelState.AddModelError("Login", "Este login já está sendo utilizado.");
            }

            if (ModelState.IsValid)
            {
                cliente.Senha            = CalculateMD5String(cliente.Senha);
                cliente.ConfirmacaoSenha = CalculateMD5String(cliente.ConfirmacaoSenha);
                cliente.CriadoEm         = DateTime.Now;
                cliente.ModificadoEm     = DateTime.Now;

                db.Cliente.Add(cliente);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cliente));
        }
示例#3
0
        public ActionResult ManageAccount([Bind(Include = "UsuarioID, Nome, Email, Login")] Cliente cliente)
        {
            string emailAtual = db.Cliente.Find(cliente.UsuarioID).Email;
            string loginAtual = db.Cliente.Find(cliente.UsuarioID).Login;

            if (!GestaoUsuarios.VerificarDisponibilidadeEmail(cliente.Email) && !emailAtual.Equals(cliente.Email))
            {
                ModelState.AddModelError("Email", "Este e-mail já está cadastrado no sistema.");
            }

            if (!GestaoUsuarios.VerificarDisponibilidadeLogin(cliente.Login) && !loginAtual.Equals(cliente.Login))
            {
                ModelState.AddModelError("Login", "Este login já está sendo utilizado.");
            }

            if (ModelState.IsValid)
            {
                string novoNome  = cliente.Nome;
                string novoEmail = cliente.Email;
                string novoLogin = cliente.Login;

                cliente = db.Cliente.Find(cliente.UsuarioID);

                cliente.Nome         = novoNome;
                cliente.Email        = novoEmail;
                cliente.Login        = novoLogin;
                cliente.ModificadoEm = DateTime.Now;

                db.Entry(cliente).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", "Home"));
            }

            return(View(cliente));
        }
示例#4
0
        public ActionResult Register([Bind(Include = "UsuarioID, Nome, Email, Login, Senha, ConfirmacaoSenha")] Administrador administrador)
        {
            if (!GestaoUsuarios.VerificarDisponibilidadeEmail(administrador.Email))
            {
                ModelState.AddModelError("Email", "Este e-mail já está cadastrado no sistema.");
            }

            if (!GestaoUsuarios.VerificarDisponibilidadeLogin(administrador.Login))
            {
                ModelState.AddModelError("Login", "Este login já está sendo utilizado.");
            }

            if (ModelState.IsValid)
            {
                administrador.Senha            = CalculateMD5String(administrador.Senha);
                administrador.ConfirmacaoSenha = CalculateMD5String(administrador.ConfirmacaoSenha);
                administrador.Ativo            = true;
                administrador.CriadoEm         = DateTime.Now;
                administrador.ModificadoEm     = DateTime.Now;

                db.Administrador.Add(administrador);
                db.SaveChanges();
                return(RedirectToAction("Login", "Home"));
            }

            return(View(administrador));
        }
示例#5
0
        public ActionResult Edit([Bind(Include = "UsuarioID, Nome, Email, Login, Senha, ConfirmacaoSenha, Ativo")] Administrador administrador)
        {
            string emailAtual = db.Administrador.Find(administrador.UsuarioID).Email;
            string loginAtual = db.Administrador.Find(administrador.UsuarioID).Login;

            if (!GestaoUsuarios.VerificarDisponibilidadeEmail(administrador.Email) && !emailAtual.Equals(administrador.Email))
            {
                ModelState.AddModelError("Email", "Este e-mail já está cadastrado no sistema.");
            }

            if (!GestaoUsuarios.VerificarDisponibilidadeLogin(administrador.Login) && !loginAtual.Equals(administrador.Login))
            {
                ModelState.AddModelError("Login", "Este login já está sendo utilizado.");
            }

            if (ModelState.IsValid)
            {
                administrador.Senha            = CalculateMD5String(administrador.Senha);
                administrador.ConfirmacaoSenha = CalculateMD5String(administrador.ConfirmacaoSenha);
                administrador.CriadoEm         = DateTime.Now; // Não conseguimos ajustar isto.
                administrador.ModificadoEm     = DateTime.Now;

                db.Entry(administrador).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(administrador));
        }
示例#6
0
        public JsonResult CancelarPedido(int id)
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                var idUsuario = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());

                Pedido pedido = db.Pedido.Find(id);

                if (pedido.UsuarioID == idUsuario)
                {
                    DateTime dataAtual  = DateTime.Now;
                    DateTime dataPedido = Convert.ToDateTime(pedido.DataPedido);

                    double horas = (dataAtual - dataPedido).TotalHours;

                    if (horas <= 6)
                    {
                        if (pedido.Ativo)
                        {
                            // Desativar o Pedido
                            pedido.Ativo = false;
                            db.Pedido.AddOrUpdate(pedido);
                            int resultado = db.SaveChanges();

                            if (resultado > 0)
                            {
                                foreach (var item in pedido.Itens)
                                {
                                    Produto produto = db.Produto.Find(item.ProdutoID);
                                    produto.Quantidade += item.Quantidade;
                                    db.Produto.AddOrUpdate(produto);
                                    db.SaveChanges();
                                }

                                return(Json(new { OK = true, Mensagem = "Pedido cancelado com sucesso." }, JsonRequestBehavior.AllowGet));
                            }
                            else
                            {
                                return(Json(new { OK = false, Mensagem = "Erro ao cancelar o pedido." }, JsonRequestBehavior.AllowGet));
                            }
                        }
                        else
                        {
                            return(Json(new { OK = false, Mensagem = "Este pedido já foi cancelado anteriormente." }, JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(new { OK = false, Mensagem = "Após seis horas o pedido não pode ser mais cancelado." }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { OK = false, Mensagem = "Não é possível cancelar um pedido de outro usuário." }, JsonRequestBehavior.AllowGet));
                }
            }

            return(null);
        }
示例#7
0
 // GET: Administradores/Create
 public ActionResult Create()
 {
     if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         return(View());
     }
     return(null);
 }
示例#8
0
 // GET: Produtos/Create
 public ActionResult Create()
 {
     if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         ViewBag.CategoriaID  = new SelectList(db.Categoria, "CategoriaID", "Nome");
         ViewBag.FornecedorID = new SelectList(db.Fornecedor, "FornecedorID", "Nome");
         return(View());
     }
     return(null);
 }
示例#9
0
        public ActionResult MeusPedidos()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                var id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                var pedidos = db.Pedido.Where(p => p.UsuarioID == id).Include(p => p.Cliente);
                return(View(pedidos.ToList()));
            }

            return(null);
        }
 public JsonResult AutenticarUsuario(string login, string senha)
 {
     if (GestaoUsuarios.Autenticar(login, senha))
     {
         var corpoResposta = new { OK = true, Mensagem = "Usuario encontrado, Redirecionando..." };
         return(Json(corpoResposta, JsonRequestBehavior.AllowGet));
     }
     else
     {
         var corpoResposta = new { OK = false, Mensagem = "Usuario não encontrado" };
         return(Json(corpoResposta, JsonRequestBehavior.AllowGet));
     }
 }
示例#11
0
        public ActionResult EmitirPedido()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                Pedido            novoPedido = new Pedido();
                List <ItemPedido> listaItens = new List <ItemPedido>();

                var carrinho = GestaoCarrinho.RetornarCarrinho();

                if (carrinho.Count > 0)
                {
                    // Cria novo pedido
                    novoPedido.DataPedido    = DateTime.Now;
                    novoPedido.UsuarioID     = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                    novoPedido.Cliente       = db.Cliente.Find(novoPedido.UsuarioID);
                    novoPedido.Ativo         = true;
                    novoPedido.ModificadoEm  = null;
                    novoPedido.ModificadoPor = null;

                    db.Pedido.Add(novoPedido);
                    db.SaveChanges();

                    // Adiciona os itens do pedido
                    foreach (var item in carrinho)
                    {
                        ItemPedido itemPedido = new ItemPedido
                        {
                            ProdutoID  = item.Key.ProdutoID,
                            PedidoID   = novoPedido.PedidoID,
                            Quantidade = item.Value
                        };

                        db.ItemPedido.Add(itemPedido);
                        db.SaveChanges();

                        // Remove produtos do estoque
                        Produto produto = db.Produto.Find(itemPedido.ProdutoID);
                        produto.Quantidade -= itemPedido.Quantidade;
                        db.Produto.AddOrUpdate(produto);
                        db.SaveChanges();
                    }
                }

                // Limpa o carrinho
                GestaoCarrinho.LimparCarrinho();

                return(RedirectToAction("ExibirPedido", new { id = novoPedido.PedidoID }));
            }

            return(null);
        }
示例#12
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            var action     = filterContext.ActionDescriptor.ActionName;

            if (controller != "Home" && controller != "Autenticacao" && action != "ConsultaUnica")
            {
                if (GestaoUsuarios.RecuperarUsuarioLogado() == null)
                {
                    filterContext.RequestContext.HttpContext.Response.Redirect("Home/Login");
                }
            }

            base.OnActionExecuting(filterContext);
        }
示例#13
0
 public JsonResult VerificarAutenticacao()
 {
     if (GestaoUsuarios.VerificarStatusCliente() != null)
     {
         return(Json(new { OK = true, Nivel = "Cliente" }, JsonRequestBehavior.AllowGet));
     }
     else if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         return(Json(new { OK = true, Nivel = "Administrador" }, JsonRequestBehavior.AllowGet));
     }
     else
     {
         return(Json(new { OK = false, Nivel = "Visitante" }, JsonRequestBehavior.AllowGet));
     }
 }
示例#14
0
        // GET: Clientes/ManageAccount
        public ActionResult ManageAccount()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                int     id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                Cliente cliente = db.Cliente.Find(id);

                if (cliente == null)
                {
                    return(HttpNotFound());
                }

                return(View(cliente));
            }

            return(null);
        }
示例#15
0
 // GET: Categorias/Edit/5
 public ActionResult Edit(int?id)
 {
     if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         Categoria categoria = db.Categoria.Find(id);
         if (categoria == null)
         {
             return(HttpNotFound());
         }
         return(View(categoria));
     }
     return(null);
 }
 // GET: Fornecedores/Edit/5
 public ActionResult Edit(int?id)
 {
     if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         Fornecedor fornecedor = db.Fornecedor.Find(id);
         if (fornecedor == null)
         {
             return(HttpNotFound());
         }
         return(View(fornecedor));
     }
     return(null);
 }
示例#17
0
 public JsonResult AutenticarUsuario(string login, string senha)
 {
     if (GestaoUsuarios.VerificarClienteBD(login, senha))
     {
         return(Json(new { OK = true, Nivel = "Cliente", Mensagem = "Redirecionando..." },
                     JsonRequestBehavior.AllowGet));
     }
     else if (GestaoUsuarios.VerificarAdministradorBD(login, senha))
     {
         return(Json(new { OK = true, Nivel = "Administrador", Mensagem = "Redirecionando..." },
                     JsonRequestBehavior.AllowGet));
     }
     else
     {
         return(Json(new { OK = false, Mensagem = "Dados incorretos." },
                     JsonRequestBehavior.AllowGet));
     }
 }
示例#18
0
 // GET: Produtos/Edit/5
 public ActionResult Edit(int?id)
 {
     if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         Produto produto = db.Produto.Find(id);
         if (produto == null)
         {
             return(HttpNotFound());
         }
         ViewBag.CategoriaID  = new SelectList(db.Categoria, "CategoriaID", "Nome", produto.CategoriaID);
         ViewBag.FornecedorID = new SelectList(db.Fornecedor, "FornecedorID", "Nome", produto.FornecedorID);
         return(View(produto));
     }
     return(null);
 }
示例#19
0
        public override void OnActionExecuting(ActionExecutingContext filtroContexto)
        {
            var controller = filtroContexto.ActionDescriptor.ControllerDescriptor.ControllerName;
            var action     = filtroContexto.ActionDescriptor.ActionName;

            if ((controller != "Home") &&
                (controller != "Clientes" || action != "Register") &&
                (controller != "Administradores" || action != "Register") &&
                (controller != "Produtos" || action != "Search"))
            {
                if ((controller == "Clientes" && action == "ManageAccount") ||
                    (controller == "Clientes" && action == "ChangePassword") ||
                    (controller == "Pedidos" && action == "EmitirPedido") ||
                    (controller == "Pedidos" && action == "ExibirPedido") ||
                    (controller == "Pedidos" && action == "MeusPedidos") ||
                    (controller == "Pedidos" && action == "CancelarPedido"))
                {
                    if (GestaoUsuarios.VerificarStatusCliente() == null)
                    {
                        if (controller == "Pedidos" && action == "EmitirPedido")
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/Carrinho");
                        }
                        else if ((controller == "Pedidos" && action == "ExibirPedido") || (controller == "Pedidos" && action == "CancelarPedido"))
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/Pedidos/MeusPedidos");
                        }
                        else
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/" + controller + "/" + action);
                        }
                    }
                }
                else
                {
                    if (GestaoUsuarios.VerificarStatusAdministrador() == null)
                    {
                        HttpContext.Current.Response.Redirect("/Home/Login?redir=/" + controller + "/" + action);
                    }
                }
            }
        }
示例#20
0
        // GET: Clientes/ChangePassword
        public ActionResult ChangePassword()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                int     id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                Cliente cliente = db.Cliente.Find(id);

                cliente.Senha            = null;
                cliente.ConfirmacaoSenha = null;

                if (cliente == null)
                {
                    return(HttpNotFound());
                }

                return(View(cliente));
            }

            return(null);
        }
示例#21
0
        // GET: Administradores/Edit/5
        public ActionResult Edit(int?id)
        {
            if (GestaoUsuarios.VerificarStatusAdministrador() != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Administrador administrador = db.Administrador.Find(id);
                administrador.Senha            = null;
                administrador.ConfirmacaoSenha = null;

                if (administrador == null)
                {
                    return(HttpNotFound());
                }
                return(View(administrador));
            }
            return(null);
        }
示例#22
0
        // GET: Clientes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (GestaoUsuarios.VerificarStatusAdministrador() != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Cliente cliente = db.Cliente.Find(id);
                cliente.Senha            = null;
                cliente.ConfirmacaoSenha = null;

                if (cliente == null)
                {
                    return(HttpNotFound());
                }

                return(View(cliente));
            }
            return(null);
        }