public void Fill_original_synonym_for_second_created_exclude()
        {
            var expression = new TestUnrecExp("Полыни горькой трава" + new Random().Next(), "Тестовый производитель" + new Random().Next(), price);

            expression.Save();
            var product = Pharmacie().First();

            Load();
            Resolve(expression, product);
            resolver.ExcludeProducer(GetRow(expression));
            Save();

            var product2 = Pharmacie().First(p => p.Id != product.Id);

            resolver = new ProducerSynonymResolver(price.Id);
            Load();
            Resolve(expression, product2);
            resolver.ExcludeProducer(GetRow(expression));
            Save();

            var exlcudes = TestExclude.Queryable.Where(e => e.Price == price).ToList();

            Assert.That(exlcudes.Count, Is.EqualTo(2), "не создали исключение");
            var exclude = exlcudes[0];

            Assert.That(exclude.OriginalSynonym, Is.Not.Null);
            exclude = exlcudes[1];
            Assert.That(exclude.OriginalSynonym, Is.Not.Null);
        }
        public void After_unresolve_product_clear_exclude()
        {
            var exp = new TestUnrecExp("ПОЛЫНИ ГОРЬКОЙ ТРАВА сырье 75 г N1", "Кентавр ХФК", price);

            exp.Save();
            //исключения работают только для фармацевтики
            var products = Pharmacie().Take(2).ToList();
            var product  = products[0];
            var product2 = products[1];

            Load();
            var row = GetRow(exp);

            Resolve(exp, product);
            resolver.ExcludeProducer(row);
            resolver.UnresolveProduct(row);

            Resolve(exp, product2);
            Save();

            var excludes = TestExclude.Queryable.Where(e => e.Price == price);

            Assert.That(excludes.Count(), Is.EqualTo(0), excludes.Implode());
        }