public IEnumerable <ResultadoComparacaoUsuarioDTO> ObterDiferenca(ModoComparacao mode) { List <ResultadoComparacaoUsuarioDTO> resultado = new List <ResultadoComparacaoUsuarioDTO>(); switch (mode) { case ModoComparacao.Total: resultado.AddRange(ObterDiferenca(ladoA, ladoB)); resultado.AddRange(ObterDiferenca(ladoB, ladoA, resultado.Where(x => x.Resultado == ResultadoComparacao.AmbosLados).Select(x => x.LadoA))); break; case ModoComparacao.OrientadoPeloLadoA: resultado.AddRange(ObterDiferenca(ladoA, ladoB)); break; case ModoComparacao.OrientadoPeloLadoB: resultado.AddRange(ObterDiferenca(ladoB, ladoA)); break; } return(resultado); }
protected virtual void ConstruirLados(string connectionString, string dominio, string diretorio, string usuario, string senha, ModoComparacao tipo, ref IRepositorio ladoA, ref IRepositorio ladoB) { if (tipo != ModoComparacao.Total) { Console.WriteLine("Qual o lado A [AD, CoreSSO]?"); var lado = Console.ReadLine(); if (lado == "AD") { ladoA = new ADSync.SMEADSync(dominio, diretorio, usuario, senha); ladoB = new RepositorioCoreSSO(connectionString); } else if (lado == "CoreSSO") { ladoA = new RepositorioCoreSSO(connectionString); ladoB = new ADSync.SMEADSync(dominio, diretorio, usuario, senha); } } else { ladoA = new RepositorioCoreSSO(connectionString); ladoB = new ADSync.SMEADSync(dominio, diretorio, usuario, senha); } }
internal IEnumerable <ResultadoComparacaoUsuarioDTO> Comparar(string connectionString, string dominio, string diretorio, string usuario, string senha, ModoComparacao tipo) { IRepositorio ladoA = null; IRepositorio ladoB = null; ConstruirLados(connectionString, dominio, diretorio, usuario, senha, tipo, ref ladoA, ref ladoB); if (ladoA != null && ladoB != null) { return(new Comparador(ladoA, ladoB).ObterDiferenca(tipo)); } else { return(Enumerable.Empty <ResultadoComparacaoUsuarioDTO>()); } }
protected override void ConstruirLados(string connectionString, string dominio, string diretorio, string usuario, string senha, ModoComparacao tipo, ref IRepositorio ladoA, ref IRepositorio ladoB) { Console.WriteLine("Informar o arquivo base para comparação"); var caminho = Console.ReadLine(); List <ImportacaoManualDTO> oqImportar = new List <ImportacaoManualDTO>(); if (File.Exists(caminho)) { ladoA = new RepositorioImportacaoManual(caminho); ladoB = new ADSync.SMEADSync(dominio, diretorio, usuario, senha); } else { Console.WriteLine("Arquivo não encontrado"); } }