Как выбрать объект списка, сравнивая другой с NRules? - PullRequest
0 голосов
/ 22 июня 2019

Мы должны выбрать данные, которые в списке, сравнивая другой объект списка, но мы можем к тому же

мы отправляем один объект за раз, который проходит по всем данным, что приводит к проблемам с производительностью, поэтому кто-нибудь может помочь нам с этим.

        foreach (DataRow row in DtProc.Tables[0].Rows)
        {
            objClassModelProc.ACCOUNT_NUM = row["ACCOUNT_NUM"].ToString();
            objClassModelProc.PX = row["CODE"].ToString();
            objClassModelProc.CodeClass = row["CODE_CLASS"].ToString();
            objClassModelProc.SpecialityName = row["SpecialityName"].ToString();
            lstClassModelProc.Add(objClassModelProc);
            var ClassModelProcList = new List<ClassModelProc>();
            ClassModelProcList = lstClassModelProc;

            var repositoryDenominator = new RuleRepository();
            repositoryDenominator.Load(x => x.From(typeof(PreferredRuleDenominator).Assembly));
            var factoryDenominator = repositoryDenominator.Compile();
            var sessionDenominator = factoryDenominator.CreateSession();
            sessionDenominator.Insert(objClassModelProc);
            sessionDenominator.Fire();
        }
        PushDATAINTOMAINTABLE(DtProc.Tables[0].Rows.Count, "Final");

NRule

        IEnumerable<ClassModelProc> classModelProc = null;
        //ClassModelDenominator objClassModelDenominator = null;
        GetMaster(DtSet, "REGetMaster");
        System.Data.DataTable dt = DtSet.Tables[0];
        List<string> list = dt.Rows.OfType<System.Data.DataRow>().Select(dr => (string)dr["Denominator"]).ToList();
        List<string> CodeClass = new List<string> { "CPT4", "HCPC4" };
        When()
          .Query(() => classModelProc, x => x
          .Match<ClassModelProc>(
            o => list.Contains(o.PX)
            , o => CodeClass.Contains(o.CodeClass)
            )
          .Collect());

        Then()
            .Do(ctx => SetCount(classModelProc, "Denominator"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...