Beispiel #1
0
        static string CreatePoem()
        {
            Dictionary <string, Rule> rules      = RulesFactory.GetDictionaryOfRules("rules.txt");
            RulesInterpreter          intepreter = new RulesInterpreter(rules);
            string poem = intepreter.GetTextForRule("POEM");

            return(poem);
        }
Beispiel #2
0
    /**
     * Check if the dot can be selected
     */
    bool ProcessSelectionRules(GameObject dot)
    {
        foreach (RulesFactory.AvailableRules rule in Enum.GetValues(typeof(RulesFactory.AvailableRules)))
        {
            IRule newRule = new RulesFactory().Create(rule);
            if (!newRule.Validate(dot, selectedDots[selectedDots.Count - 1]))
            {
                return(false);
            }
        }

        return(true);
    }
        // include configuration
        private static void RunTool(string sourceFile, string targetFile)
        {
            Log.Info("Conversion Tool is now running.");

            // Define the type of Rules by language type
            sourceRules = RulesFactory.GenerateRule(sourceFile);
            targetRules = RulesFactory.GenerateRule(targetFile);

            ConvertSourceFile();
            CreateTargetFile();

            // Convert target file to Desired file.
            Log.Success($"File is converted. Please check {Path.GetFileName(targetFile)}.");
        }
Beispiel #4
0
        public static async Task RunTestWithConfig(ILogger logger, string logFilePath, string configDir)
        {
            //string rootPath = configDir;
            string repositoryConfigPath     = $"{configDir}{Path.DirectorySeparatorChar}repository.xml.config";
            string machineSubscriptionsPath = $"{configDir}{Path.DirectorySeparatorChar}machines.xml.config";


            string _loggingPath = $"{logFilePath}{Path.DirectorySeparatorChar}RulesEngine{Path.DirectorySeparatorChar}";

            ILogger sublogger = new LoggerConfiguration()
                                .WriteTo.Async(a => a.Logger(logger))
                                .WriteTo.Async(a => a.File($"{_loggingPath}Log_{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}.log").MinimumLevel.Verbose())
                                .MinimumLevel.Verbose()
                                .CreateLogger();

            sublogger.Information("{Class}.{Method} is Starting...", $"{nameof(RAL)}{nameof(RulesEngine)}{nameof(ConsoleTest)}{nameof(Program)}", nameof(RunTestNonConfig));

            RulesManager rulesManager = new RulesManager();

            var RepositoryConfig = new RepositoryFactory().LoadFrom(repositoryConfigPath).Config;


            var rulesFactory = new RulesFactory(sublogger)
                               .LoadFromFile(machineSubscriptionsPath)
                               .WithLogger(sublogger)
                               .WithRepository(
                new RepositoryForRules(
                    new MachineRepository(
                        RepositoryConfig.DatabaseIPaddress,
                        RepositoryConfig.DatabaseName,
                        Convert.ToInt32(RepositoryConfig.DatabasePort)
                        )
                    )
                );

            var rules = rulesFactory.Build();

            rules = rulesManager.Rules = rules;


            await rulesManager.StartAsync();


            sublogger.Information("{Class}.{Method} Waiting Indefinitely...", $"{nameof(RAL)}{nameof(RulesEngine)}{nameof(ConsoleTest)}{nameof(Program)}", nameof(RunTestNonConfig));
            await Task.Run(() => rulesManager.WaitForStop());

            //await rulesManager.StopAsync();
            sublogger.Information("{Class}.{Method} Closing...", $"{nameof(RAL)}{nameof(RulesEngine)}{nameof(ConsoleTest)}{nameof(Program)}", nameof(RunTestNonConfig));
        }
Beispiel #5
0
        public void CreateTest(int[] expectedRuleIds)
        {
            var services      = new ServiceCollection();
            var expectedRules = CreateFakeRules(expectedRuleIds).ToList();
            var count         = expectedRules.Count();

            for (var i = 0; i < count; i++)
            {
                services.AddScoped(typeof(IBaseRule <FakeRequest, FakeResponse>), expectedRules[i].GetType());
            }

            var serviceProvider = services.BuildServiceProvider();
            var factory         = new RulesFactory <FakeRequest, FakeResponse>(serviceProvider);
            var actualRules     = factory.Create().ToList();

            for (var i = 0; i < count; i++)
            {
                Assert.IsInstanceOfType(actualRules[i], expectedRules[i].GetType());
            }
        }
Beispiel #6
0
        public async Task <bool> Save(Policy policy)
        {
            var type = await _policyTypeRepository.GetById(policy.PolicyTypeId);

            var rules = await _ruleRepository.GetAll();


            rules.Where(x => x.RiskTypeId == policy.RiskTypeId).ToList()
            .ForEach(r =>
            {
                var rule = RulesFactory.Build(r.Type, r.Value);

                var x = rule.Invoke(type.Coverage);

                if (x)
                {
                    throw new PolicyInvalidException($"{r.Type} {r.Value}");
                }
            });


            return(await _policyRepository.Save(policy));
        }
Beispiel #7
0
 public Dealer(RulesFactory rulesFactory)
 {
     newGameRule = rulesFactory.GetNewGameRule();
     hitRule     = rulesFactory.GetHitRule();
     winRule     = rulesFactory.GetWinRule();
 }