private IEnumerable <ResultadoImportacaoDTO> IncluirNoAD(IEnumerable <UsuarioDTO> paraIncluir, string dominio, string diretorio, string usuario, string senha, IConsultaOU ouDestino) { List <ResultadoImportacaoDTO> resultados = new List <ResultadoImportacaoDTO>(); Console.WriteLine($"Confirma a inserção de {paraIncluir.Count()} confirma [Sim, Nao]?"); var confirmacao = Console.ReadLine(); if (confirmacao == "Sim") { Stopwatch crono = Stopwatch.StartNew(); int i = 0; foreach (var item in paraIncluir) { ResultadoImportacaoDTO resultado = new ResultadoImportacaoDTO() { Usuario = item }; try { var ouUsuario = ouDestino.MontarOUUsuario(item.Login, item.OU); if (!string.IsNullOrWhiteSpace(ouUsuario)) { var repositorio = new SME.SyncADxCoreSSO.ADSync.SMEADSync(dominio, $"{ouUsuario},{diretorio}", usuario, senha); resultado.Resultado = repositorio.CriarUsuario(item) ? ResultadoImportacao.Sucesso : ResultadoImportacao.FalhaNaoIdentificada; } else { resultado.Resultado = ResultadoImportacao.NaoFoiPossivelIdentificarOU; } } catch (Exception ex) { resultado.Resultado = ResultadoImportacao.Erro; resultado.MensagemErro = ex.ToString(); } resultados.Add(resultado); i++; if (i % 100 == 0) { Console.WriteLine($"Foram processados {i} itens - {crono.ElapsedMilliseconds / 1000} segundos"); crono.Restart(); } } } return(resultados); }
public void IncluirUsuariosADOrigemCoreSSO() { var registrosInclusao = from i in comparador.ObterDiferenca(ModoComparacao.OrientadoPeloLadoA) where i.LadoA != null && i.Resultado == ResultadoComparacao.SomenteLadoA select i.LadoA; foreach (var item in registrosInclusao) { ResultadoImportacaoDTO resultado = new ResultadoImportacaoDTO() { Usuario = item }; try { var ouUsuario = consultaOU.MontarOUUsuario(item.Login, item.OU); if ((TipoCriptografia)item.Criptografia != TipoCriptografia.TripleDES) { repositorioCoreSSO.ResetarSenhaParaPadrao(item); } if (!string.IsNullOrWhiteSpace(ouUsuario)) { resultado.Resultado = repositorioAD.CriarUsuario(item) ? ResultadoImportacao.Sucesso : ResultadoImportacao.FalhaNaoIdentificada; } else { resultado.Resultado = ResultadoImportacao.NaoFoiPossivelIdentificarOU; } AtualizarSincronizacao(item); } catch (Exception ex) { resultado.Resultado = ResultadoImportacao.Erro; resultado.MensagemErro = ex.ToString(); } repositorioADSync.IncluirResultadoSincronizacao(resultado); } }