public async Task <bool> SalvarAsync(UsuarioGsa usuarioComparativo) { const string insertQuery = @"insert into public.usuarios_gsa (id, nome, email, data_inclusao, data_ultimo_login, eh_admin, organization_path, inserido_manualmente_google) values (@id, @nome, @email, @dataInclusao, @dataUltimoLogin, @EhAdmin, @OrganizationPath, @inseridoManualmenteGoogle) RETURNING id"; var parametros = new { usuarioComparativo.Id, usuarioComparativo.Nome, usuarioComparativo.Email, usuarioComparativo.DataInclusao, usuarioComparativo.DataUltimoLogin, usuarioComparativo.EhAdmin, usuarioComparativo.OrganizationPath, usuarioComparativo.InseridoManualmenteGoogle }; using var conn = ObterConexao(); await conn.ExecuteAsync(insertQuery, parametros); return(true); }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { if (mensagemRabbit?.Mensagem is null) { throw new NegocioException("Não foi possível processaor o usuário GSA. A mensagem enviada é inválida."); } var usuarioGsaDto = JsonConvert.DeserializeObject <UsuarioGsaDto>(mensagemRabbit.Mensagem.ToString()); try { if (usuarioGsaDto is null) { throw new NegocioException("Não foi possível processaor o usuário GSA. A mensagem enviada é inválida."); } var existeUsuarioGsa = await mediator.Send(new ExisteUsuarioGsaPorIdQuery(usuarioGsaDto.Id)); if (existeUsuarioGsa) { usuarioGsaDto.MensagemErro = $"O usuario '{usuarioGsaDto.Id}' já existe na usuario_gsa."; await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaUsuarioIncluirErro, usuarioGsaDto)); await mediator.Send(new SalvarLogViaRabbitCommand($"{RotasRabbit.FilaGsaUsuarioIncluir} - {usuarioGsaDto.MensagemErro}", LogNivel.Critico, LogContexto.FormacaoCidade, mensagemRabbit.Mensagem.ToString())); } else { var usuarioExiste = await mediator.Send(new ExisteUsuarioPorGoogleClassroomIdQuery(usuarioGsaDto.Id)); var usuarioGsa = new UsuarioGsa(usuarioGsaDto.Id, usuarioGsaDto.Email, usuarioGsaDto.Nome, usuarioGsaDto.DataUltimoLogin, usuarioGsaDto.EhAdmin, usuarioGsaDto.OrganizationPath, !usuarioExiste, usuarioGsaDto.DataInclusao); var retorno = await mediator.Send(new IncluirUsuarioGsaCommand(usuarioGsa)); if (usuarioGsaDto.UltimoItemDaFila) { await IniciarValidacaoAsync(); } } return(true); } catch (Exception ex) { usuarioGsaDto.MensagemErro = $"{ex.Message}"; await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaUsuarioIncluirErro, usuarioGsaDto)); await mediator.Send(new SalvarLogViaRabbitCommand($"{RotasRabbit.FilaGsaUsuarioIncluir} - {ex.Message}", LogNivel.Critico, LogContexto.UsuarioGsa, mensagemRabbit.Mensagem.ToString())); return(false); } }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { var filtro = JsonConvert.DeserializeObject <AlunoCursoEol>(mensagemRabbit.Mensagem.ToString()); try { var alunoCursoGoogle = new AlunoCursoGoogle(); var aluno = await mediator.Send(new ObterUsuariosPorCodigosQuery(filtro.CodigoRF, (int)UsuarioTipo.Professor)); if (aluno is null || !aluno.Any()) { var professorEol = new ProfessorEol(filtro.CodigoRF, filtro.NomePessoa, filtro.NomeSocial ?? string.Empty, filtro.OrganizationPath); var professorGoogle = new ProfessorGoogle(filtro.CodigoRF, professorEol.Nome, professorEol.Email, filtro.OrganizationPath); var indiceInserido = await InserirProfessorGoogleAsync(professorGoogle); if (indiceInserido > 0) { var usuarioGsa = new UsuarioGsa(filtro.CodigoRF.ToString(), professorEol.Email, filtro.NomePessoa, null, false, filtro.OrganizationPath, false, DateTime.Now); var usuarioGsaInserido = await mediator.Send(new IncluirUsuarioGsaCommand(usuarioGsa)); alunoCursoGoogle = new AlunoCursoGoogle(indiceInserido, filtro.CursoId); await InserirAlunoCursoGoogleAsync(alunoCursoGoogle, professorEol.Email); } else { filtro.MensagemErro += $" Inserido: {indiceInserido}"; await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaFormacaoCidadeTurmasTratarAlunoErro, filtro)); } } else { var alunoFirst = aluno.FirstOrDefault(); alunoCursoGoogle = new AlunoCursoGoogle(alunoFirst.Indice, filtro.CursoId); await InserirAlunoCursoGoogleAsync(alunoCursoGoogle, alunoFirst.Email); } }
public IncluirUsuarioGsaCommand(UsuarioGsa usuarioGsa) { UsuarioGsa = usuarioGsa; }