public void AtualizarUsuariosAD() { var usuarios = repositorioCoreSSO.ObterParaComparacao(); foreach (var usuario in usuarios) { if (usuario.Eh_Gestor.Equals('S') || (usuario.Eh_Professor.Equals('S') && usuario.DataCriacao.Date > usuario.HojeMenos40Meses.Date)) { var sincronizacao = repositorioADSync.ObterSincronizacao(usuario.Id); if (sincronizacao == null || usuario.DataAlteracao > sincronizacao.DataUltimaSincronizacao) { var resultado = new ResultadoSincronismoDTO() { Usuario = usuario }; try { if (usuario.Situacao.Equals(3)) { repositorioAD.DesativarUsuario(usuario.Login); } else if ((TipoCriptografia)usuario.Criptografia != TipoCriptografia.TripleDES) { repositorioAD.ResetarSenhaParaPadrao(usuario); repositorioCoreSSO.ResetarSenhaParaPadrao(usuario); } else { repositorioAD.AtualizarSenha(usuario.Login, new MSTech.Security.Cryptography.SymmetricAlgorithm(MSTech.Security.Cryptography.SymmetricAlgorithm.Tipo.TripleDES).Decrypt(usuario.Senha)); } if (sincronizacao == null) { repositorioADSync.IncluirSincronizacao(new SincronizacaoDTO() { UsuarioIdCoreSSO = usuario.Id, DataUltimaSincronizacao = DateTime.Now, Ativo = !usuario.Situacao.Equals(3) }); } else { sincronizacao.DataUltimaSincronizacao = DateTime.Now; repositorioADSync.AtualizarSincronizacao(sincronizacao); } resultado.Sucesso = true; } catch (Exception ex) { resultado.Sucesso = false; resultado.MensagemErro = ex.Message; } repositorioADSync.IncluirResultadoSincronizacao(resultado); } } } }
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); } }