コード例 #1
0
        public IHttpActionResult PrimeiroAcesso(UsuarioDTO usuario)
        {
            if (usuario == null)
            {
                return(BadRequest("Usuário não informado!"));
            }
            usuario.Login = usuario.Login.ToLower();
            bool        usuarioExiste = usuariosService.UsuarioExiste(usuario.Login);
            Funcionario funcionario;

            if (!usuarioExiste)
            {
                if (!funcionariosService.FuncionarioExiste(usuario.MatriculaFuncionario, usuario.CodigoEmpresa))
                {
                    return(BadRequest($"Matrícula {usuario.MatriculaFuncionario} não cadastrada!"));
                }

                funcionario       = funcionariosService.GetFuncionario(usuario.MatriculaFuncionario, usuario.CodigoEmpresa);
                funcionario.Email = usuario.Email;
                funcionariosService.AddOrUpdateFuncionario(funcionario);

                Usuario novoUsuario = new Usuario
                {
                    Login         = usuario.Login,
                    FuncionarioId = funcionario.Id,
                    Nome          = funcionario.Nome,
                    Perfil        = Perfil.ELEITOR,
                    Senha         = CryptoGraph.Encrypt(usuario.Senha)
                };
                usuariosService.AddOrUpdateUsuario(novoUsuario);

                return(Ok());
            }

            if (!funcionariosService.FuncionarioExiste(usuario.MatriculaFuncionario, usuario.CodigoEmpresa))
            {
                return(BadRequest($"Matrícula {usuario.MatriculaFuncionario} não cadastrada!"));
            }

            funcionario       = funcionariosService.GetFuncionario(usuario.MatriculaFuncionario, usuario.CodigoEmpresa);
            funcionario.Email = usuario.Email;
            funcionariosService.AddOrUpdateFuncionario(funcionario);

            Usuario usuarioDB = usuariosService.GetUsuario(usuario.Login);

            usuarioDB.Senha = CryptoGraph.Encrypt(usuario.Senha);
            usuariosService.AddOrUpdateUsuario(usuarioDB);
            return(Ok());
        }