public async Task <IActionResult> Edit(int id, [Bind("ID,User,Password,FKEmpEmpleado,FKUsuCatRol,FKUsuCatEstado")] UsuUsuario usuUsuario)
        {
            if (id != usuUsuario.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(usuUsuario);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UsuUsuarioExists(usuUsuario.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FKEmpEmpleado"]  = new SelectList(_context.EmpEmpleado, "ID", "ClaveEmpleado", usuUsuario.FKEmpEmpleado);
            ViewData["FKUsuCatEstado"] = new SelectList(_context.UsuCatEstado, "ID", "Valor", usuUsuario.FKUsuCatEstado);
            ViewData["FKUsuCatRol"]    = new SelectList(_context.UsuCatRol, "ID", "Valor", usuUsuario.FKUsuCatRol);
            return(View(usuUsuario));
        }
        public async Task <IActionResult> Index([Bind("User,Password")] UsuUsuario usuUsuario)
        {
            try
            {
                var validaUser = await _context.UsuUsuario.SingleOrDefaultAsync(m => m.User == usuUsuario.User);

                if (validaUser != null)
                {
                    if (validaUser.Password != usuUsuario.Password)
                    {
                        ViewData["error"] = "Contraseña incorrecta.";
                        return(View());
                    }
                    if (validaUser.FKUsuCatEstado != 1)
                    {
                        ViewData["error"] = "Cuenta inactiva.";
                        return(View());
                    }
                    if (validaUser.User == usuUsuario.User &&
                        validaUser.Password == usuUsuario.Password &&
                        validaUser.FKUsuCatEstado == 1)
                    {
                        ViewData["idUser"]  = validaUser.ID;
                        ViewData["usName"]  = validaUser.User;
                        ViewData["usRol"]   = validaUser.FKUsuCatRol;
                        ViewData["usState"] = validaUser.FKUsuCatEstado;
                        return(View("About"));
                    }
                }
                ViewData["error"] = "La cuenta no existe.";
                return(View());
            }
            catch (Exception ex)
            {
                var message = new MimeMessage();
                message.From.Add(new MailboxAddress("Credimar Exceptions", "*****@*****.**"));
                message.To.Add(new MailboxAddress("Reception", "*****@*****.**"));
                message.Subject = "Exceptions";
                message.Body    = new TextPart("plain")
                {
                    Text = "Excepción encontrada: " + ex.StackTrace
                };

                using (var client = new SmtpClient())
                {
                    client.Connect("smtp.gmail.com", 587, false);
                    client.Authenticate("*****@*****.**", "PruebaExcepciones123");
                    client.Send(message);
                    client.Disconnect(true);
                }
                return(null);
            }
        }
        public async Task <IActionResult> Create([Bind("ID,User,Password,FKEmpEmpleado,FKUsuCatRol,FKUsuCatEstado")] UsuUsuario usuUsuario)
        {
            if (ModelState.IsValid)
            {
                _context.Add(usuUsuario);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FKEmpEmpleado"]  = new SelectList(_context.EmpEmpleado, "ID", "ClaveEmpleado", usuUsuario.FKEmpEmpleado);
            ViewData["FKUsuCatEstado"] = new SelectList(_context.UsuCatEstado, "ID", "Valor", usuUsuario.FKUsuCatEstado);
            ViewData["FKUsuCatRol"]    = new SelectList(_context.UsuCatRol, "ID", "Valor", usuUsuario.FKUsuCatRol);
            return(View(usuUsuario));
        }