public IActionResult EnviarTokenSenha([Bind("CPF,NomeJornaleiro,EmailJornaleiro,SenhaJornaleiro,TelefoneJornaleiro")] Jornaleiro jornaleiro)
 {
     try
     {
         var jornaleiroExists = _context.Jornaleiros.Where(j => j.CPF == jornaleiro.CPF).Select(j => j).FirstOrDefault();
         if (jornaleiroExists != null)
         {
             if (jornaleiroExists.TelefoneJornaleiro.Substring(4, 5) == jornaleiro.TelefoneJornaleiro && jornaleiroExists.CPF == jornaleiro.CPF)
             {
                 CPFparaReset = Convert.ToInt64(jornaleiro.CPF);
                 return(RedirectToAction("ResetSenha"));
             }
             else
             {
                 TempData["msgSucesso"] = "Os dados enviados não coincidem com os dados cadastrados";
                 return(RedirectToAction("EnviarTokenSenha"));
             }
         }
         else
         {
             TempData["msgSucesso"] = "CPF não encontrado em nossa base de dados";
             return(RedirectToAction("EnviarTokenSenha"));
         }
     }
     catch (Exception ex)
     {
         TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!" + ex;
         return(RedirectToAction("EnviarTokenSenha"));
     }
 }
        public IActionResult Login([Bind("CPF,NomeJornaleiro,EmailJornaleiro,SenhaJornaleiro")] Jornaleiro jornaleiro)
        {
            var    jornaleiroOk = _context.Jornaleiros.Include(j => j.tipo).Where(j => j.EmailJornaleiro.ToLower() == jornaleiro.EmailJornaleiro.ToLower() && j.SenhaJornaleiro == jornaleiro.SenhaJornaleiro && j.StatusId == 1).Select(j => j).FirstOrDefault();
            String variavelDif  = "";

            if (jornaleiroOk == null)
            {
                variavelDif = "a";
            }
            if (variavelDif != "a")
            {
                if (jornaleiroOk.tipo.NomeTipo.ToLower() == "admin")
                {
                    var option2 = new CookieOptions();
                    Response.Cookies.Append("admin", "admin", option2);
                }
                else
                {
                    var option2 = new CookieOptions();
                    Response.Cookies.Append("admin", "false", option2);
                }
                var option = new CookieOptions();
                Response.Cookies.Append("idDoUser", jornaleiroOk.CPF.ToString(), option);
                return(RedirectToAction("Index"));
            }
            else
            {
                TempData["alertColor"] = "alert-danger";
                TempData["msgSucesso"] = "E-mail ou senha inválida / Usuário inativo";
                return(RedirectToAction("Login"));
            }
        }
        public async Task <IActionResult> Create([Bind("CPF,NomeJornaleiro,EmailJornaleiro,TelefoneJornaleiro,SenhaJornaleiro,StatusId, TipoId")] Jornaleiro jornaleiro)
        {
            ModelState.Remove("CPF");
            try
            {
                if (ModelState.IsValid)
                {
                    var emailOrName = _context.Jornaleiros.Where(j => j.EmailJornaleiro == jornaleiro.EmailJornaleiro || j.NomeJornaleiro == jornaleiro.NomeJornaleiro && j.StatusId == 1).Select(j => j.EmailJornaleiro).FirstOrDefault();
                    if (emailOrName == null)
                    {
                        jornaleiro.CPF = cpfUser;
                        _context.Add(jornaleiro);
                        await _context.SaveChangesAsync();

                        return(RedirectToAction(nameof(Index)));
                    }
                    else
                    {
                        TempData["msgSucesso"] = "E-mail ou nome de jornaleiro já cadastrado!";
                    }
                }
                ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", jornaleiro.StatusId);
                ViewData["TipoId"]   = new SelectList(_context.Tipos, "TipoId", "NomeTipo");

                return(View(jornaleiro));
            }
            catch (Exception ex)
            {
                TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!";
                ViewData["StatusId"]   = new SelectList(_context.Status, "StatusId", "NomeStatus", jornaleiro.StatusId);
                ViewData["TipoId"]     = new SelectList(_context.Tipos, "TipoId", "NomeTipo");

                return(View(jornaleiro));
            }
        }
        public async Task <IActionResult> Edit(long id, [Bind("CPF,NomeJornaleiro,EmailJornaleiro,TelefoneJornaleiro,SenhaJornaleiro,StatusId,TipoId")] Jornaleiro jornaleiro)
        {
            ModelState.Remove("CPF");
            ModelState.Remove("SenhaJornaleiro");
            try
            {
                if (id != jornaleiro.CPF)
                {
                    return(NotFound());
                }

                if (ModelState.IsValid)
                {
                    try
                    {
                        var emailOrName = _context.Jornaleiros.Where(j => (j.EmailJornaleiro == jornaleiro.EmailJornaleiro || j.NomeJornaleiro == jornaleiro.NomeJornaleiro && j.StatusId == 1 && j.CPF != jornaleiro.CPF) && j.CPF != jornaleiro.CPF).Select(j => j.EmailJornaleiro).FirstOrDefault();
                        if (emailOrName == null)
                        {
                            jornaleiro.SenhaJornaleiro = _context.Jornaleiros.Where(j => j.CPF == id).Select(j => j.SenhaJornaleiro).FirstOrDefault();
                            _context.Update(jornaleiro);
                            await _context.SaveChangesAsync();
                        }
                        else
                        {
                            TempData["msgSucesso"] = "E-mail ou nome de jornaleiro já cadastrado!";
                            ViewData["StatusId"]   = new SelectList(_context.Status, "StatusId", "NomeStatus", jornaleiro.StatusId);
                            ViewData["TipoId"]     = new SelectList(_context.Tipos, "TipoId", "NomeTipo");

                            return(View(jornaleiro));
                        }
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!JornaleiroExists(jornaleiro.CPF))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }
                    if (jornaleiro.TipoId == 1)
                    {
                        var option2 = new CookieOptions();
                        Response.Cookies.Delete("admin");
                        Response.Cookies.Append("admin", "admin", option2);
                    }
                    else
                    {
                        var option2 = new CookieOptions();
                        Response.Cookies.Delete("admin");
                        Response.Cookies.Append("admin", "false", option2);
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                ViewData["StatusId"]   = new SelectList(_context.Status, "StatusId", "NomeStatus", jornaleiro.StatusId);
                ViewData["TipoId"]     = new SelectList(_context.Tipos, "TipoId", "NomeTipo");
                TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!";

                return(View(jornaleiro));
            }
            catch (Exception ex)
            {
                TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!";

                ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", jornaleiro.StatusId);
                ViewData["TipoId"]   = new SelectList(_context.Tipos, "TipoId", "NomeTipo");

                return(View(jornaleiro));
            }
        }