Example #1
0
        public async Task <bool> ResetarSenha(NovaSenhaUsuario novaSenhaUsuario)
        {
            var usuario = await _usuarioRepository.ObterUsuarioPorId(novaSenhaUsuario.Id);

            if (usuario == null)
            {
                Notificar("Usuario inválido");
                return(false);
            }

            var codigoConfirmacao = await _usuarioRepository.ObterConfirmacaoUsuario(usuario.Id);

            if (codigoConfirmacao == null)
            {
                Notificar("Código de confirmação inválido");
                return(false);
            }

            if (!codigoConfirmacao.CodigoValido() || codigoConfirmacao.Codigo != novaSenhaUsuario.Codigo)
            {
                await AplicarValidacao(codigoConfirmacao);

                return(false);
            }

            AtualizarInformacoesUsuario(usuario, codigoConfirmacao);

            var hash = _bcrypt.GetHashPassword(novaSenhaUsuario.Senha);

            usuario.AdicionarHashSenha(hash);

            await _usuarioRepository.Commit();

            return(true);
        }
Example #2
0
        private async void BtRedefinirSenha_Clicked(object sender, EventArgs e)
        {
            //string usuario = Settings.Login.Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty);
            string usuario = Settings.Login;

            btRedefinirSenha.IsEnabled = false;
            var            token    = Settings.Token;
            DatabaseHelper ds       = new DatabaseHelper();
            Usuario        _usuario = new Usuario();

            if (CrossConnectivity.Current.IsConnected)
            {
                if (string.IsNullOrEmpty(txtSenhaAtual.Text))
                {
                    await DisplayAlert("Campo Obrigatório", "Senha Atual", "Ok");

                    txtSenhaAtual.Focus();
                }
                else if (string.IsNullOrEmpty(txtNovaSenha.Text))
                {
                    await DisplayAlert("Campo Obrigatório", "Nova Senha", "Ok");

                    txtNovaSenha.Focus();
                }
                else if (string.IsNullOrEmpty(txtConfirmaNovaSenha.Text))
                {
                    await DisplayAlert("Campo Obrigatório", "Confirmação de Senha", "Ok");

                    txtConfirmaNovaSenha.Focus();
                }
                else if (txtNovaSenha.Text != txtConfirmaNovaSenha.Text)
                {
                    await DisplayAlert("", "Senhas informadas não conferem.", "Ok");

                    txtNovaSenha.Focus();
                }
                else if (txtNovaSenha.Text.Length < 6)
                {
                    await DisplayAlert("", "A nova senha deve ter no mínimo 6 caracteres.", "Ok");

                    txtNovaSenha.Focus();
                }
                else
                {
                    string     resp   = string.Empty;
                    HttpClient client = new HttpClient();
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                    var loginuser = new NovaSenhaUsuario
                    {
                        login      = usuario,
                        senhaAtual = txtSenhaAtual.Text,
                        novaSenha  = txtNovaSenha.Text
                    };
                    try
                    {
                        string        jsonRequest = JsonConvert.SerializeObject(loginuser);
                        StringContent httpContent = new StringContent(jsonRequest, Encoding.UTF8, "application / json");
                        client.BaseAddress = new Uri("http://milenio-app.tst.sistemas.intranet.mpba.mp.br/api/");
                        var url    = string.Format("usuario/alterar-senha");
                        var result = await client.PutAsync(url, httpContent);

                        if (!result.IsSuccessStatusCode)
                        {
                            throw new Exception(result.RequestMessage.Content.ToString());
                        }
                        resp = await result.Content.ReadAsStringAsync();
                    }
                    catch (Exception ex)
                    {
                        await DisplayAlert("", ex.Message, "Ok");
                    }
                    NovaSenhaUsuario user = JsonConvert.DeserializeObject <NovaSenhaUsuario>(resp);
                    if (user.success)
                    {
                        _usuario.login = usuario;
                        _usuario.senha = txtNovaSenha.Text;
                        ds.UpdateUsuario(_usuario);
                        await DisplayAlert("", "Operação efetuada com sucesso.", "Ok");

                        await Navigation.PushAsync(new MainPage(), true);
                    }
                    else
                    {
                        await DisplayAlert("", "Senha atual não confere.", "Ok");
                    }
                }
            }
            else
            {
                await DisplayAlert("", "Verifique sua conexão com a internet.", "OK");
            }
            btRedefinirSenha.IsEnabled = true;
        }