/// <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"); } }
/// <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); } }
public void SortRules() { CustomRules = CustomRules.OrderByDescending(OrderWeight).ToList(); }
public void ClearRules() { Rules.Clear(); CustomRules.Clear(); }
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);