Exemple #1
0
        /// <summary>
        /// Deserializes the given <paramref name="yaml"/> into a collection of <see cref="IsIdentifiableRule"/>
        /// which are added to <see cref="CustomRules"/>
        /// </summary>
        /// <param name="yaml"></param>
        public void LoadRules(string yaml)
        {
            _logger.Info("Loading Rules Yaml");
            _logger.Debug("Loading Rules Yaml:" + Environment.NewLine + yaml);
            var deserializer = GetDeserializer();
            var ruleSet      = deserializer.Deserialize <RuleSet>(yaml);

            if (ruleSet.BasicRules != null)
            {
                CustomRules.AddRange(ruleSet.BasicRules);
            }

            if (ruleSet.SocketRules != null)
            {
                CustomRules.AddRange(ruleSet.SocketRules);
            }

            if (ruleSet.ConsensusRules != null)
            {
                CustomRules.AddRange(ruleSet.ConsensusRules);
            }

            if (ruleSet.WhiteListRules != null)
            {
                CustomWhiteListRules.AddRange(ruleSet.WhiteListRules);
            }
        }
        public void TestDateTimeColumnWithoutScale7()
        {
            string[] scripts = new[]
            {
                "CREATE TABLE t1 (c1 DATETIME2(2) NOT NULL)"
            };

            using (TSqlModel model = new TSqlModel(SqlServerVersion.SqlAzure, new TSqlModelOptions()))
            {
                // Adding objects to the model. 
                foreach (string script in scripts)
                {
                    model.AddObjects(script);
                }

                var ruleSettings = new CodeAnalysisRuleSettings()
                {
                    new RuleConfiguration(DateTimeColumnsWith7ScaleRule.RuleId)
                };
                ruleSettings.DisableRulesNotInSettings = true;
                
                CodeAnalysisService service = new CodeAnalysisServiceFactory().CreateAnalysisService(model.Version,
                    new CodeAnalysisServiceSettings()
                    {
                        RuleSettings = ruleSettings
                    });
                CodeAnalysisResult analysisResult = service.Analyze(model);

                Assert.AreEqual(0, analysisResult.Problems.Count, "Expect 1 problems to be found");
            }
        }
Exemple #3
0
    /// <summary>Updatet den Zellenzustand nach selbst festgelegten Regeln ändert diesen aber nicht</summary>
    /// <param name="_rules">Struct mit den selber festgelegten Regeln</param>
    /// <remarks>Holt sich die Anzahl der aktuell Lebenden Nachbarszellen. Je nach Anzahl wird die Zelle geboren, überlebt oder stirbt</remarks>
    public void CellUpdate(CustomRules _rules)
    {
        //Sich die aktuelle Anzahl der 8 möglich Lebenden Nachbarszellen holen
        int LifingNeighborsCount = LifingNeighbors();

        //Sich die aktuelle Anzahl an Lebenden Nachbarszellen holen die den übergebenen Altersgruppen entsprechen
        int AgeGroupNeighborsCount = AgeGroupNeighbors(_rules.MinAgeReproductions, _rules.MaxAgeReproductions);

        //Den aktuellen Zustand der Zelle speichern
        m_NewState = m_CurrentState;

        //Überprüfen ob das aktuelle Zellenalter älter oder gleich ist als das Alter das in den eigenen Regeln für "Sterben an Altersschwäche" festgelegt wurde
        if (_rules.AgeWeaknessesOfOld != 0 && m_Age >= (ulong)_rules.AgeWeaknessesOfOld)
        {
            m_NewState = STATES.DEAD;                                                                        //Die Zelle stirbt an Altersschwäche -> Der neue Zustand der Zelle wird "Gestorben" sein
        }
        else if (m_CurrentState == STATES.DEAD && AgeGroupNeighborsCount == 3)                               //Überprüfen ob der aktuelle Zustand "Gestorben" ist und ob es 3 Lebende Nachbarszellen in der festgelegten Altersgruppe gibt
        {
            m_NewState = STATES.ALIVE;                                                                       //Die Zelle wird neugeboren -> Der neue Zustand der Zelle wird "Lebend" sein
        }
        else if (m_CurrentState == STATES.ALIVE && LifingNeighborsCount < 2)                                 //Überprüfen der aktuelle Zustand "Lebend" ist und ob es weniger als 2 Lebende Nachbarszellen in der festgelegten Altersgruppe gibt
        {
            m_NewState = STATES.DEAD;                                                                        //Die Zelle stirbt an Vereinsamung -> Der neue Zustand der Zelle wird  "Gestorben" sein
        }
        else if (m_CurrentState == STATES.ALIVE && (LifingNeighborsCount == 2 || LifingNeighborsCount == 3)) //Überprüfen der aktuelle Zustand "Lebend" ist und ob es genau 2 oder 3 lebende Nachbarszellen in der festgelegten Altersgruppe gibt
        {
            return;                                                                                          //Der neue Zustand wird gleich dem aktuellen Zustand der Zelle sein
        }
        else if (m_CurrentState == STATES.ALIVE && LifingNeighborsCount > 3)                                 //Überprüfen der aktuelle Zustand "Lebend" ist und ob es mehr wie 3 Lebende Nachbarszellen in der festgelegten Altersgruppe gibt
        {
            m_NewState = STATES.DEAD;                                                                        //Die Zelle stirbt an Überbevölkerung -> Der neue Zustand der Zelle wird "Gestorben" sein
        }
    }
 private void PerformBuyFundDriverCustomRule(Item fundDriver)
 {
     if (fundDriver.CustomRuleInfo != null && CustomRules.ContainsKey(fundDriver.CustomRuleInfo.CustomRule.Id))
     {
         CustomRules[fundDriver.CustomRuleInfo.CustomRule.Id].PerformRuleWhenBuyFundDriver(this,
                                                                                           fundDriver.CustomRuleInfo);
     }
 }
Exemple #5
0
 public void SortRules()
 {
     CustomRules = CustomRules.OrderByDescending(OrderWeight).ToList();
 }
Exemple #6
0
 public void ClearRules()
 {
     Rules.Clear();
     CustomRules.Clear();
 }
Exemple #7
0
 public void AddNewRule(IRule rule) => CustomRules.Add(rule);
 //Parola için yazılan kurallar MyCustomRules'tan çekildi.
 private bool ConfirmPwd(string arg) => CustomRules.RuleForPassword(arg);