public async Task <IActionResult> NovaSenhaPut([FromBody] CadastroUsuarioViewModel loginUsuario)
        {
            if (loginUsuario == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var usuario = new Usuario
            {
                Login       = loginUsuario.Login,
                Email       = loginUsuario.Login,
                Senha       = loginUsuario.Senha,
                CodigoEmail = loginUsuario.CodigoResetSenha
            };

            var response = await _userRepo.ResetarSenhaAsync(usuario);

            if (response.HasError)
            {
                return(BadRequest(response.ErrorMessages));
            }
            else
            {
                return(Ok(new { Nome = response.Return.Nome, Login = response.Return.Login }));
            }
        }
        public async Task <IActionResult> Put([FromBody] CadastroUsuarioViewModel loginUsuario)
        {
            if (loginUsuario == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (String.IsNullOrEmpty(loginUsuario.Nome))
            {
                ModelState.AddModelError("Nome", "Campo obrigatório");
                return(BadRequest(ModelState));
            }

            var usuario = new Usuario
            {
                Login       = loginUsuario.Login.ToLower(),
                Nome        = loginUsuario.Nome,
                Email       = loginUsuario.Login.ToLower(),
                Senha       = loginUsuario.Senha,
                TipoUsuario = TipoUsuario.Assinante
            };

            var response = await _userRepo.ObterUsuarioAsync(usuario);

            if (response.HasError)
            {
                return(BadRequest(response.ErrorMessages));
            }

            if (response.Return == null)
            {
                ModelState.AddModelError("Usuario", "Usuário não encontrado");
                return(BadRequest(ModelState));
            }

            usuario.Id    = response.Return.Id;
            usuario.Email = response.Return.Email;
            var salvarResponse = await _userRepo.SalvarAsync(usuario);

            if (salvarResponse.HasError)
            {
                return(BadRequest(salvarResponse.ErrorMessages));
            }

            return(await EnviarEmailConfirmacaoAsync(response.Return, hasPasswordChanged : true));
        }
        public async Task <IActionResult> Post([FromBody] CadastroUsuarioViewModel cadastroUsuario)
        {
            if (cadastroUsuario == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (String.IsNullOrEmpty(cadastroUsuario.Nome))
            {
                ModelState.AddModelError("Nome", "Campo obrigatório");
                return(BadRequest(ModelState));
            }

            var user = new Usuario
            {
                Login       = cadastroUsuario.Login.ToLower(),
                Nome        = cadastroUsuario.Nome,
                Email       = cadastroUsuario.Login.ToLower(),
                Senha       = cadastroUsuario.Senha,
                TipoUsuario = TipoUsuario.Assinante
            };

            var response = await _userRepo.ObterUsuarioAsync(user);

            if (response.HasError)
            {
                return(BadRequest(response.ErrorMessages));
            }

            if (response.Return == null)
            {
                response = await _userRepo.SalvarAsync(user);

                if (response.HasError)
                {
                    return(BadRequest(response.ErrorMessages));
                }
            }
            else
            {
                ModelState.AddModelError("Login", $"O login '{response.Return.Email}' já existe.");
                return(BadRequest(ModelState));
            }

            return(await EnviarEmailConfirmacaoAsync(response.Return, hasPasswordChanged : false));
        }
예제 #4
0
        public async Task <IActionResult> Patch([FromBody] CadastroUsuarioViewModel loginUsuario)
        {
            if (loginUsuario == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new Usuario
            {
                Nome  = loginUsuario.Login,
                Login = loginUsuario.Login,
                Senha = loginUsuario.Senha
            };

            var response = await _userRepo.ObterUsuarioAsync(user);

            if (response.HasError)
            {
                return(BadRequest(response.ErrorMessages));
            }

            if (response.Return == null)
            {
                return(BadRequest(response.ErrorMessages));
            }
            else
            {
                user.Id = response.Return.Id;

                var saveResponse = await _userRepo.SalvarAsync(user);

                if (saveResponse.HasError)
                {
                    return(BadRequest(saveResponse.ErrorMessages));
                }
            }

            return(Ok());
        }