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); } } } }
private void AtualizarSincronizacao(UsuarioDTO item) { var sincronizacaoDto = new SincronizacaoDTO() { UsuarioIdCoreSSO = item.Id, DataUltimaSincronizacao = DateTime.Now, Ativo = item.Situacao.Equals(3) }; if (repositorioADSync.ObterSincronizacao(item.Id) != null) { repositorioADSync.AtualizarSincronizacao(sincronizacaoDto); } else { repositorioADSync.IncluirSincronizacao(sincronizacaoDto); } }