private async Task RemoverAlunoCursoNoGoogle(UsuarioCursoGoogleDto alunoCursoGoogle, ClassroomService servicoClassroom)
        {
            var existeUsuarioCurso = servicoClassroom.Courses.Students.Get(alunoCursoGoogle.CursoId.ToString(), alunoCursoGoogle.UsuarioId).Execute();

            if (existeUsuarioCurso != null)
            {
                var requestCreate = servicoClassroom.Courses.Students.Delete(alunoCursoGoogle.CursoId.ToString(), alunoCursoGoogle.UsuarioId);
                await requestCreate.ExecuteAsync();
            }
        }
        private async Task RemoverProfessorCursoNoGoogle(UsuarioCursoGoogleDto professorCursoGoogle, ClassroomService servicoClassroom)
        {
            var existeUsuarioCurso = servicoClassroom.Courses.Teachers.Get(professorCursoGoogle.CursoId.ToString(), professorCursoGoogle.UsuarioId).Execute();

            if (existeUsuarioCurso != null)
            {
                var requestCreate = servicoClassroom.Courses.Teachers.Delete(professorCursoGoogle.CursoId.ToString(), professorCursoGoogle.UsuarioId);
                await requestCreate.ExecuteAsync();
            }
        }
        public async Task <bool> Executar(MensagemRabbit mensagemRabbit)
        {
            if (mensagemRabbit?.Mensagem is null)
            {
                throw new NegocioException("Não foi possível gerar a carga de dados para a remoção de cursos do usuário GSA.");
            }

            var filtro = mensagemRabbit?.ObterObjetoMensagem <CursoUsuarioRemoverDto>();

            if (filtro is null)
            {
                throw new NegocioException("A mensagem enviada é inválida.");
            }

            try
            {
                // Incluir UsuarioRemovido
                var tipoUsuario = (UsuarioTipo)filtro.TipoUsuario;
                await mediator.Send(new IncluirCursoUsuarioRemovidoCommand(filtro.UsuarioId, filtro.CursoId, tipoUsuario));

                // Usuario Curso GSA
                var tipoGsa                 = (UsuarioCursoGsaTipo)filtro.TipoGsa;
                var usuarioCursoGsa         = new UsuarioCursoGsa(filtro.UsuarioGsaId, filtro.CursoId.ToString(), tipoGsa);
                var usuarioCursoGsaRemovido = await mediator.Send(new RemoverUsuarioCursoGsaCommand(usuarioCursoGsa));

                // Usuario Curso
                var usuarioCurso = await mediator.Send(new RemoverCursoUsuarioCommand(filtro.CursoUsuarioId));

                // Google API
                var usuarioCursoGoogle         = new UsuarioCursoGoogleDto(filtro.CursoId, filtro.UsuarioGsaId, filtro.TipoGsa);
                var usuarioCursoGoogleRemovido = await mediator.Send(new RemoverUsuarioCursoGoogleCommand(usuarioCursoGoogle));

                if (usuarioCursoGoogleRemovido == false)
                {
                    throw new NegocioException("Não foi possível remover a associação de Curso x Usuário no Google API");
                }
            }
            catch (Exception ex)
            {
                SentrySdk.CaptureException(ex);
                await InserirMensagemErroIntegracaoAsync(filtro, ex.Message);
            }
            return(true);
        }
예제 #4
0
 public RemoverUsuarioCursoGoogleCommand(UsuarioCursoGoogleDto usuarioCursoGoogle)
 {
     UsuarioCursoGoogle = usuarioCursoGoogle;
 }