示例#1
0
        public IDataEntity ExecuteSession(IDataEntity globalEntity)
        {
            Session session;

            using (Stream stream = _rulebaseProvider.GetStream())
            {
                session = _sessionBuilder.CreateOPASession(stream, globalEntity);
            }

            // XDS PRE
            if (ProduceXDS)
            {
                if (!XDSDirectorySetup)
                {
                    XDSFilePath = XDSFolder + session.GetRulebase().GetBaseFileName();
                    Directory.CreateDirectory(XDSFilePath);
                    XDSDirectorySetup = true;
                }

                // Format : XDSFolder\RulebaseName\file.xds
                var xdsFile =
                    XDSFilePath
                    + "\\PRE_"
                    + globalEntity.Children
                    .Where(c => c.EntityName == "Learner")
                    .Select(g => g.Attributes.Single(k => k.Key == LearnRefNumberAttribute).Value.Value.ToString())
                    .SingleOrDefault()
                    + ".xds";

                using (FileWriter fileWriter = new FileWriter(xdsFile))
                {
                    SessionUtils.ExportSession(session, fileWriter);
                }
            }

            session.Think();

            var outputGlobalInstance = session.GetGlobalEntityInstance();
            var outputEntity         = _dataEntityBuilder.CreateOPADataEntity(outputGlobalInstance, null);

            return(outputEntity);
        }