示例#1
0
        public BaseResponse <string> CambioPasswordXCorreoExterno(string secredId, string password)
        {
            BaseResponse <string> result = new BaseResponse <string>();

            using (MesaDineroContext context = new MesaDineroContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Guid sid = Guid.NewGuid();
                        try
                        {
                            sid = Guid.Parse(secredId);
                        }
                        catch (Exception)
                        {
                            throw new Exception("Ocurrio un error con el servicio, puede ser que su key de sesión no sea correcta.");
                        }

                        Tb_MD_RecuperarPassword recuperar = null;
                        recuperar = context.Tb_MD_RecuperarPassword.FirstOrDefault(x => x.SecredId == sid);

                        if (recuperar == null)
                        {
                            throw new Exception("La operacion que intenta realizar no cuenta con autorización para hacerla.");
                        }

                        Tb_MD_ClienteUsuario usuario = null;
                        usuario = context.Tb_MD_ClienteUsuario.FirstOrDefault(x => x.IdUsuario == recuperar.IdUsuario);

                        if (usuario == null)
                        {
                            throw new Exception("No se encontro el usuario.");
                        }

                        string clave = Encrypt.EncryptKey(password);
                        usuario.Password = clave;

                        context.SaveChanges();
                        transaction.Commit();


                        result.success = true;
                    }
                    catch (Exception ex)
                    {
                        result.success = false;
                        result.error   = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                        transaction.Rollback();
                    }
                }
            }

            return(result);
        }
示例#2
0
        public Tb_MD_ClienteUsuario getUsuarioAutorizadoBySecredId(Guid secredId)
        {
            Tb_MD_ClienteUsuario entity = null;

            using (MesaDineroContext context = new MesaDineroContext())
            {
                entity = context.Tb_MD_ClienteUsuario.Where(y => y.SecredId == secredId).FirstOrDefault();
            }
            return(entity);
        }
示例#3
0
        public BaseResponse <string> sendCorreoRecuperarPassword(string email)
        {
            BaseResponse <string> result = new BaseResponse <string>();

            using (MesaDineroContext context = new MesaDineroContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Guid                 SecredId = Guid.NewGuid();
                        DateTime             ahora    = DateTime.Now;
                        Tb_MD_ClienteUsuario usuario  = null;
                        usuario = context.Tb_MD_ClienteUsuario.FirstOrDefault(x => x.EstadoREgistro == EstadoRegistroTabla.Activo && x.Email.Equals(email));

                        if (usuario == null)
                        {
                            throw new Exception("No se encontro un cliente de LMD con este Email");
                        }

                        Tb_MD_RecuperarPassword entity = new Tb_MD_RecuperarPassword
                        {
                            Email           = usuario.Email,
                            FechaCreacion   = ahora,
                            FechaExpiracion = ahora.AddDays(1),
                            IdUsuario       = usuario.IdUsuario,
                            SecredId        = SecredId,
                            TipoUsuario     = "CL"
                        };

                        context.Tb_MD_RecuperarPassword.Add(entity);
                        context.SaveChanges();
                        transaction.Commit();

                        result.success = true;
                        CorreoHelper.SedCorreoRecuperarContrasenha(usuario.Email, SecredId.ToString(), usuario.NombreCliente);
                    }
                    catch (Exception ex)
                    {
                        result.success = false;
                        result.error   = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                        transaction.Rollback();
                    }
                }
            }

            return(result);
        }