private async Task InserirFuncionarioIndiretoGoogleAsync(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle) { try { var funcionarioSincronizado = await mediator.Send(new InserirFuncionarioIndiretoGoogleCommand(funcionarioIndiretoGoogle)); if (!funcionarioSincronizado) { await mediator.Send(new IncluirUsuarioErroCommand(null, funcionarioIndiretoGoogle?.Email, $"Não foi possível incluir o funcionário no Google Classroom. {funcionarioIndiretoGoogle}", UsuarioTipo.Funcionario, ExecucaoTipo.FuncionarioAdicionar)); return; } await InserirFuncionarioIndiretoAsync(funcionarioIndiretoGoogle); } catch (GoogleApiException gEx) { if (gEx.EhErroDeDuplicidade()) { await mediator.Send(new AtualizarFuncionarioIndiretoGoogleCommand(funcionarioIndiretoGoogle)); await InserirFuncionarioIndiretoAsync(funcionarioIndiretoGoogle); } else { throw; } } }
public void Valida_Tratamento_Da_Formatacao_De_Nomes_Passandos_Os_Resultados_Esperados(string nome, string sobrenomeEsperado, string nomeEsperado) { // Arrange var funcionarioIndireto = new FuncionarioIndiretoGoogle("28541640086", nome, "email", "organizationPath"); // Assert Assert.NotNull(funcionarioIndireto); Assert.Equal(sobrenomeEsperado, funcionarioIndireto.Sobrenome); Assert.Equal(nomeEsperado, funcionarioIndireto.Nome); }
private async Task AtualizarFuncionarioNoGoogle(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle, DirectoryService diretorioClassroom) { var usuarioParaIncluirNoGoogle = new User { Name = new UserName { FamilyName = funcionarioIndiretoGoogle.Sobrenome, GivenName = funcionarioIndiretoGoogle.PrimeiroNome, FullName = funcionarioIndiretoGoogle.Nome }, OrgUnitPath = funcionarioIndiretoGoogle.OrganizationPath, Suspended = false }; var requestPatch = diretorioClassroom.Users.Patch(usuarioParaIncluirNoGoogle, funcionarioIndiretoGoogle.Email); await requestPatch.ExecuteAsync(); }
private async Task IncluirFuncionarioIndiretoNoGoogle(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle, DirectoryService diretorioClassroom) { var usuarioParaIncluirNoGoogle = new User { Name = new UserName { FamilyName = funcionarioIndiretoGoogle.Sobrenome, GivenName = funcionarioIndiretoGoogle.PrimeiroNome, FullName = funcionarioIndiretoGoogle.Nome }, PrimaryEmail = funcionarioIndiretoGoogle.Email, OrgUnitPath = funcionarioIndiretoGoogle.OrganizationPath, Password = configuration["GoogleClassroomConfig:PasswordPadraoParaUsuarioNovo"], ChangePasswordAtNextLogin = true }; var requestCreate = diretorioClassroom.Users.Insert(usuarioParaIncluirNoGoogle); var usuarioIncluido = await requestCreate.ExecuteAsync(); if (usuarioIncluido is null) { throw new NegocioException("Não foi possível obter o funcionário indireto incluído no Google Classroom."); } funcionarioIndiretoGoogle.GoogleClassroomId = usuarioIncluido.Id; }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { if (mensagemRabbit.Mensagem is null) { throw new NegocioException("Não foi possível incluir o funcionário indireto. A mensagem enviada é inválida."); } var funcionarioIndiretoParaIncluir = JsonConvert.DeserializeObject <FuncionarioIndiretoEol>(mensagemRabbit.Mensagem.ToString()); if (funcionarioIndiretoParaIncluir is null) { return(true); } try { var funcionarioIndiretoGoogle = new FuncionarioIndiretoGoogle(funcionarioIndiretoParaIncluir.Cpf, funcionarioIndiretoParaIncluir.Nome, funcionarioIndiretoParaIncluir.Email, funcionarioIndiretoParaIncluir.OrganizationPath); var funcionarioJaIncluido = await mediator.Send(new ExisteFuncionarioIndiretoPorCpfQuery(funcionarioIndiretoParaIncluir.Cpf)); if (funcionarioJaIncluido) { return(true); } await InserirFuncionarioIndiretoGoogleAsync(funcionarioIndiretoGoogle); return(true); } catch (Exception ex) { await mediator.Send(new IncluirUsuarioErroCommand(null, funcionarioIndiretoParaIncluir?.Email, $"ex.: {ex.Message} <-> msg rabbit: {mensagemRabbit}. StackTrace:{ex.StackTrace}.", UsuarioTipo.Funcionario, ExecucaoTipo.FuncionarioAdicionar)); throw; } }
private async Task InserirFuncionarioIndiretoAsync(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle) { funcionarioIndiretoGoogle.Indice = await mediator.Send(new IncluirUsuarioCommand(funcionarioIndiretoGoogle)); }
public InserirFuncionarioIndiretoGoogleCommand(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle) { FuncionarioIndiretoGoogle = funcionarioIndiretoGoogle; }
public AtualizarFuncionarioIndiretoGoogleCommand(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle) { FuncionarioIndiretoGoogle = funcionarioIndiretoGoogle; }
public IncluirUsuarioCommand(FuncionarioIndiretoGoogle funcionarioIndiretoGoogle) : this(usuarioGoogle : funcionarioIndiretoGoogle) { Cpf = funcionarioIndiretoGoogle.Cpf; }