示例#1
0
        public ActionResult ActivarCuenta(CodigoDeActivacion cda)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(cda));
                }

                //activo usuario
                Usuario user = _usuarioService.ActivateAccount(cda);

                /*Si el usuario no se activo (código incorrecto).
                 * Agrego un error y te devuelvo a la vista*/
                if (user.Activo == 0)
                {
                    ModelState.AddModelError("CodigoInvalido", "El código no es correcto.");
                    return(View(cda));
                }

                //Creo carpeta general
                _usuarioService.CrearCarpetaGeneral(user);

                return(RedirectToAction("Login"));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public Usuario ActivateAccount(CodigoDeActivacion cda)
        {
            Usuario usuario = _usuarioRepository.FindByEmail(cda.Email);

            //HAGO ESTO PARA PODER ACTUALIZAR EL USUARIO EN EL MISMO CONTEXTO DEL QUE SE BUSCA, SI NO TIRA ERROR MULTIPLES INSTANCIAS
            usuario = _generalRepository.Get(usuario.IdUsuario);

            if (usuario.CodigoActivacion == cda.CodigoActivacion)
            {
                if (usuario.Activo == 1)
                {
                    return(usuario);
                }

                usuario.Activo          = 1;
                usuario.FechaActivacion = DateTime.Now;

                _generalRepository.Update(usuario);
            }

            return(usuario);
        }