Esempio n. 1
0
        /*  public HttpResponseMessage ObtenerTokenReseteoPassword(string email)
         * {
         *    try
         *    {
         *        if (!String.IsNullOrEmpty(email) && Regex.IsMatch(email, "^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})$"))
         *        {
         *            usuario usuario = mgr.FindByEmail(email);
         *            if (usuario == null)
         *            {
         *                resp.Codigo = (int)Codigos.REGISTRO_NO_ENCONTRADO;
         *                resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.REGISTRO_NO_ENCONTRADO);
         *                resp.Mensaje_error = Errores.error4;
         *                return resp.ObjectoRespuesta();
         *            }
         *            var token = mgr.GeneratePasswordResetToken(usuario.Id);
         *            avisosemail.ResetPassword(usuario.Id, token);
         *            resp.Codigo = (int)Codigos.OK;
         *            resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.OK);
         *            return resp.ObjectoRespuesta();
         *        }
         *        else
         *        {
         *            resp.Codigo = (int)Codigos.ERROR_DE_VALIDACION;
         *            resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION);
         *            resp.Objetoerror = new string[] { Errores.error5 };
         *            return resp.ObjectoRespuesta();
         *        }
         *
         *    }
         *    catch (Exception ex)
         *    {
         *        resp.Codigo = (int)Codigos.ERROR_DE_SERVIDOR;
         *        resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_SERVIDOR);
         *        resp.Excepcion = Excepcion.Create(ex);
         *        return resp.ObjectoRespuesta();
         *    }
         * }*/

        /* public HttpResponseMessage RenovarPassword(RenovacionPasswordModel datos, ModelStateDictionary modelo)
         * {
         *   try
         *   {
         *       if(modelo.IsValid)
         *       {
         *           datos.Token = datos.Token.Replace(" ", "+");
         *           IdentityResult result = mgr.ResetPassword(datos.Userid, datos.Token, datos.Password);
         *           if (result.Succeeded)
         *           {
         *               resp.Codigo = (int)Codigos.OK;
         *               resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.OK);
         *               return resp.ObjectoRespuesta();
         *           }
         *           else
         *           {
         *               resp.Codigo = (int)Codigos.ERROR_RESETEANDO_PASSWORD;
         *               resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_RESETEANDO_PASSWORD);
         *               resp.Mensaje_error = result.Errors.First();
         *               return resp.ObjectoRespuesta();
         *           }
         *       }
         *       else
         *       {
         *           resp.Codigo = (int)Codigos.ERROR_DE_VALIDACION;
         *           resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION);
         *           resp.Objetoerror = modelo;
         *           return resp.ObjectoRespuesta();
         *       }
         *   }
         *   catch (Exception ex)
         *   {
         *       resp.Codigo = (int)Codigos.ERROR_DE_SERVIDOR;
         *       resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_SERVIDOR);
         *       resp.Excepcion = Excepcion.Create(ex);
         *       return resp.ObjectoRespuesta();
         *   }
         * }*/

        public HttpResponseMessage ResetPassword(string email)
        {
            try
            {
                var user = mgr.FindByEmail(email);
                if (user == null)
                {
                    resp.Codigo        = (int)Codigos.REGISTRO_NO_ENCONTRADO;
                    resp.Mensaje       = Enum.GetName(typeof(Codigos), (int)Codigos.REGISTRO_NO_ENCONTRADO);
                    resp.Mensaje_error = Errores.error4;
                    return(resp.ObjectoRespuesta());
                }
                var newpassword = NewPassword();
                var aux         = mgr.PasswordHasher.HashPassword(newpassword);
                user.PasswordHash = aux;
                IdentityResult result = mgr.Update(user);
                if (result.Succeeded)
                {
                    Task.Run(() => avisosemail.ResetPassword(user.Id, newpassword));
                    resp.Codigo  = (int)Codigos.OK;
                    resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.OK);
                    return(resp.ObjectoRespuesta());
                }
                else
                {
                    resp.Codigo        = (int)Codigos.ERROR_RESETEANDO_PASSWORD;
                    resp.Mensaje       = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_RESETEANDO_PASSWORD);
                    resp.Mensaje_error = result.Errors.First();
                    return(resp.ObjectoRespuesta());
                }
            }
            catch (Exception ex)
            {
                resp.Codigo    = (int)Codigos.ERROR_DE_SERVIDOR;
                resp.Mensaje   = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_SERVIDOR);
                resp.Excepcion = Excepcion.Create(ex);
                return(resp.ObjectoRespuesta());
            }
        }
        public HttpResponseMessage Actualizar(proveedor Entidad, ModelStateDictionary modelo)
        {
            DbContextTransaction tran = null;

            try
            {
                if (modelo.IsValid)
                {
                    usuario aux = mgr.FindById(Entidad.usuario.Id);
                    if (aux != null)
                    {
                        contexto.Entry(aux).State             = EntityState.Detached;
                        Entidad.usuario_id                    = Entidad.usuario.Id;
                        contexto.Entry(Entidad).State         = EntityState.Modified;
                        contexto.Entry(Entidad.usuario).State = EntityState.Modified;
                        tran = contexto.Database.BeginTransaction();
                        Entidad.usuario.PasswordHash         = aux.PasswordHash;
                        Entidad.usuario.EmailConfirmed       = aux.EmailConfirmed;
                        Entidad.usuario.SecurityStamp        = aux.SecurityStamp;
                        Entidad.usuario.PhoneNumberConfirmed = aux.PhoneNumberConfirmed;
                        Entidad.usuario.TwoFactorEnabled     = aux.TwoFactorEnabled;
                        Entidad.usuario.LockoutEnabled       = aux.LockoutEnabled;
                        Entidad.usuario.LockoutEndDateUtc    = aux.LockoutEndDateUtc;
                        Entidad.usuario.AccessFailedCount    = aux.AccessFailedCount;
                        IdentityResult result = mgr.Update(Entidad.usuario);
                        if (!result.Succeeded)
                        {
                            if (contexto.Database.CurrentTransaction != null)
                            {
                                tran.Rollback();
                            }

                            resp.Codigo      = (int)Codigos.ERROR_DE_VALIDACION;
                            resp.Mensaje     = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION);
                            resp.Objetoerror = result.Errors;
                            return(resp.ObjectoRespuesta());
                        }
                        contexto.Entry(Entidad.usuario).State = EntityState.Detached;
                        contexto.SaveChanges();
                        tran.Commit();
                        resp.Codigo  = (int)Codigos.OK;
                        resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.OK);
                        return(resp.ObjectoRespuesta());
                    }
                    else
                    {
                        resp.Codigo        = (int)Codigos.REGISTRO_NO_ENCONTRADO;
                        resp.Mensaje       = Enum.GetName(typeof(Codigos), (int)Codigos.OK);
                        resp.Mensaje_error = String.Format(Errores.error1, Entidad.usuario.Id);
                        return(resp.ObjectoRespuesta());
                    }
                }
                else
                {
                    resp.Codigo      = (int)Codigos.ERROR_DE_VALIDACION;
                    resp.Mensaje     = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION);
                    resp.Objetoerror = modelo;
                    return(resp.ObjectoRespuesta());
                }
            }
            catch (Exception ex)
            {
                if (contexto.Database.CurrentTransaction != null)
                {
                    tran.Rollback();
                }

                resp.Codigo    = (int)Codigos.ERROR_DE_SERVIDOR;
                resp.Mensaje   = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_SERVIDOR);
                resp.Excepcion = Excepcion.Create(ex);
                return(resp.ObjectoRespuesta());
            }
        }