Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
            }
        }