Example #1
0
        public void TestMethod1()
        {
            var connectionString =
                "Data Source=mn-dev-db13;Initial Catalog=ornticcorprulespecification;Integrated Security=True";
            var repository = new UowRuleSpecificationRepository(connectionString);

            var testResult = repository.GetSpecificationRules("CPLAgentDisplay", "CPL");

            Assert.IsNotNull(testResult);
        }
Example #2
0
        private List <SpecificationInfo <T> > GetSpecificationList(string property, string domain)
        {
            var connectionString =
                "Data Source=mn-dev-db13;Initial Catalog=ornticcorprulespecification;Integrated Security=True";

            ICollection <RuleSpecificationComposite> specificationRules;
            var specificationsList = new List <SpecificationInfo <T> >();

            using (var repository = new UowRuleSpecificationRepository(connectionString))
            {
                specificationRules = repository.GetSpecificationRules(property, domain);
            }

            foreach (var(specificationInfoComposite, specificationInfo) in from specificationInfoComposite in specificationRules
                     let specificationInfo = new SpecificationInfo <T>()
                                             select(specificationInfoComposite, specificationInfo))
            {
                specificationInfo.ProcessingRuleId = (int)specificationInfoComposite.Id;
                if (!Enum.TryParse(specificationInfoComposite.EvaluationOperator, true, out Operator operation))
                {
                    continue;
                }

                var rule = new Rule(specificationInfoComposite.EvaluationProperty, operation
                                    , specificationInfoComposite.EvaluationValue
                                    , (int)specificationInfoComposite.Id);

                var compiledRule = CompileRule <T>(rule);

                var ruleSpecication = new ExpressionSpecification <T>(compiledRule);

                specificationInfo.DefaultValue     = specificationInfoComposite.DefaultValue;
                specificationInfo.EvalProperty     = specificationInfoComposite.EvaluationProperty;
                specificationInfo.MainGroup        = specificationInfoComposite.MainGroup;
                specificationInfo.MainJoin         = specificationInfoComposite.MainJoin;
                specificationInfo.ProcessingRuleId = (int)specificationInfoComposite.Id;
                specificationInfo.RuleProperty     = specificationInfoComposite.RuleSpecificationName;
                specificationInfo.RuleValue        = specificationInfoComposite.SpecificationValue;
                specificationInfo.Specification    = ruleSpecication;
                specificationInfo.SubGroup         = specificationInfoComposite.SubGroup;
                specificationInfo.SubJoin          = specificationInfoComposite.SubJoin;

                specificationsList.Add(specificationInfo);
            }

            return(specificationsList);
        }