public void Processar(List <Comum.ProdutoModel> produtosSeller) { var corEntityManager = new CorEntityManager(); foreach (var produtoSeller in produtosSeller) { Comum.ProdutoModel produtoAjustado; var validacaoDaCor = new AjusteCor(); var validacaoDaMarca = new AjusteMarca(); var validacaoTamanho = new AjusteTamanho(); produtoAjustado = validacaoDaCor.Ajustar(produtoSeller); produtoAjustado = validacaoDaMarca.Ajustar(produtoAjustado); //produtoAjustado = validacaoTamanho.Ajustar(produtoAjustado); //if (validacaoDaCor.Bom && validacaoDaMarca.Bom && validacaoTamanho.Bom) if (validacaoDaCor.Bom && validacaoDaMarca.Bom) { new ProdutoEntityManager().SalvarDadosBom(produtoAjustado); } else { new ProdutoEntityManager().SalvarDadosRuim(produtoAjustado); } } }
public override ProdutoModel Ajustar(ProdutoModel produto) { var corEntityManager = new CorEntityManager(); var cores = corEntityManager.GetAll(); //if (cores.Contains(produto.Cor.ToLower())) if (corEntityManager.ExisteEssaCor(produto.Cor.ToLower())) { //tem a cor exata, bola para frente this.Bom = true; return(produto); } else { //nao casou, arrumar essa bagaça Dictionary <string, int> corValorCombinacao = new Dictionary <string, int>(); foreach (var cor in cores) { int distancia = StringDistance.GetDamerauLevenshteinDistance(cor, produto.Cor.ToLower()); corValorCombinacao.Add(cor, distancia); } int numeroMaisProximoDeZero = corValorCombinacao.Min(x => x.Value); if (numeroMaisProximoDeZero <= 3) { produto.Cor = corValorCombinacao.Where(u => u.Value == numeroMaisProximoDeZero).FirstOrDefault().Key; Bom = true; } else { Bom = false; } return(produto); } }